grenache-nodejs-link-simple v0.1.2
grenache-nodejs-link-simple
In Grenache, grenache-nodejs-link-simple communicates with the DHT.
Changes compared to regular link
This repo takes the original grenache-nodejs-link and
- removes the need to run
start(). - Removes the need to run
stop()in case no announcements have been made.
This simplified the api because lookups can now be done directly without any setup/shutdown methods.
Install with:
npm i grenache-nodejs-link-simpleRequirements
Install Grenache Grape: https://github.com/bitfinexcom/grenache-grape:
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 linkgrape<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 cachelruMaxAgeLookup<Number> Maximum cache age in ms.
link.start() is deprecated.
link.stop()
Stops all current announces. Doesn't need to be called if no announce has been made.
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.
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)
datav: <String> value to store
callback<function>
Puts a value into the DHT. Example.
link.putMutable(data, opts, callback)
datav: <String> value to stores: <Number> sequence number
optskeys: <Object> containsed25519-supercopprivate and public keypublicKey: <Buffer> public keysecretKey: <Buffer> private key
callback<function>
Provides sugar for storing mutable, signed data in the DHT.
Example raw put Example with putMutable
link.get(hash | object, callback)
hash<String> Hash used for lookupobject<Object>hash: <String> Hash used for lookupsalt: <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>.
link.lookup(name, opts, callback)
name<String> Name of the service to lookupoptsretry: <Number> retry count
callback<function>
Retrieves the ports and IPs of a given service name.