grenache-nodejs-link
Version:
Granache Node.js Link
91 lines (57 loc) • 2.62 kB
Markdown
# grenache-nodejs-link
<img src="logo.png" width="15%" />
In Grenache, `grenache-nodejs-link` communicates with the DHT.
### Requirements
Install `Grenache Grape`: https://github.com/bitfinexcom/grenache-grape:
```bash
npm i -g grenache-grape
```
```
// Start 2 Grapes
grape --dp 20001 --aph 30001 --bn '127.0.0.1:20002'
grape --dp 20002 --aph 40001 --bn '127.0.0.1:20001'
```
### Class: Link
#### new Link(options)
- `options` <Object> Options for the link
- `grape` <String> Address of the Grenache Grape instance. Communication is done via WebSocket or HTTP.
- `requestTimeout` <Number> Default timeout for requests to Grape,
- `pingTimeout` <Number> Ping connection timeout to Grape (triggers reconnect attempt),
- `lruMaxSizeLookup` <Number> Maximum size of the cache,
checked by applying the length function to all values
in the cache
- `lruMaxAgeLookup` <Number> Maximum cache age in ms.
#### link.start()
Sets up the link.
#### link.stop()
Stops all current requests and announces.
#### link.announce(name)
- `name` <String> Name of the service, used to find the service
from other peers
Used to announce a service, e.g. a [RPC Server](#class-peerrpcserver).
#### link.startAnnouncing(name, port, [opts])
Keep announcing a service every ~2min (default) or specify interval in `opts.interval`
#### link.stopAnnouncing(name, port)
Stop announcing a service
#### link.put(data, callback)
- `data`
- `v`: <String> value to store
- `callback` <function>
Puts a value into the DHT.
[Example](https://github.com/bitfinexcom/grenache-nodejs-link/blob/master/examples/put_get.js).
#### link.get(hash | object, callback)
- `hash` <String> Hash used for lookup
- `object` <Object>
- `hash`: <String> Hash used for lookup
- `salt`: <String> (optional) salt that was used if data was stored with salt. Required in those cases.
- `callback` <function>
Retrieves a stored value from the DHT via a `hash` <String>.
It also supports an object, which is used to pass a previously used salt in order to retrieve the data teh salt was used upon.
Callback returns `err` <Object> and data <Object>.
[Example](https://github.com/bitfinexcom/grenache-nodejs-link/blob/master/examples/put_get.js).
#### link.lookup(name, [opts], callback)
- `name` <String> Name of the service to lookup
- `opts`
- `retry`: <Number> retry count
- `callback` <function>
Retrieves the ports and IPs of a given service name.