# scuttlebot gossip plugin

Schedule connections randomly with a peerlist constructed from config, multicast UDP announcements, feed announcements, and API-calls.



## peers: sync

Get the current peerlist.

```bash
peers
```

```js
peers(cb)
```



## add: sync

Add an address to the peer table.

```bash
add {addr}
add --host {string} --port {number} --key {feedid}
```

```js
add(addr, cb)
add({ host:, port:, key: }, cb)
```

 - `addr` (address string): An address string, of the following format: `hostname:port:feedid`.
 - `host` (host string): IP address or hostname.
 - `port` (port number)
 - `key` (feedid)

## remove: sync

Remove an address from the peer table.

```bash
remove {addr}
remove --host {string} --port {number} --key {feedid}
```

```js
remove(addr)
remove({ host:, port:, key: })
```

## ping: duplex

used internally by the gossip plugin to measure latency and clock skew

## connect: async

Add an address to the peer table, and connect immediately.

```bash
connect {addr}
connect --host {string} --port {number} --key {feedid}
```

```js
connect(addr, cb)
connect({ host:, port:, key: }, cb)
```

 - `addr` (address string): An address string, of the following format: `hostname:port:feedid`.
 - `host` (host string): IP address or hostname.
 - `port` (port number)
 - `key` (feedid)


## changes: source

Listen for gossip events.

```bash
changes
```

```js
changes()
```

Events come in the following forms:

```
{ type: 'discover', peer:, source: }
{ type: 'connect', peer: }
{ type: 'connect-failure', peer: }
{ type: 'disconnect', peer: }
```

## reconnect: sync

Tell sbot to reinitiate gossip connections now.


## enable: sync

Update the config to enable a gossip type.

```bash
enable {type}
```
```js
enable(type, cb)
```

 - type (string): The type of gossip to enable: local, global, or seed. Default
     global.


## disable: sync

Update the config to disable a gossip type.

```bash
disable {type}
```
```js
disable(type, cb)
```

 - type (string): The type of gossip to enable: local, global, or seed. Default
     global.
