SYNOPSIS
An node.js implementation of ethereum's DPT.
EXAMPLE
For a basic example see example/
API
DPT
new DPT(options)
Create a New DPT with the following options
-options
secretKey
- a 32 byte Buffer
from which the pubic key is derivedtimeout
- an Interger specifing the wait period in milliseconds to wait for peers to respondport
- the port external port that this peer is listening to. If not specifed the port that is used in bound
will be usedaddress
- the external address that this peer is listening to. if not specifed the port that is used in bound
will be used
DPT
methods
dpt.bind(port, address, [cb])
Binds the port
port
address
cb
the callback
dpt.close([cb])
Unbinds the port
dpt.bootstrap(introPeers, [cb])
Bootstraps the DPT given an array of peers to connect to.
introPeers
- an Array
of peers to try to connect to. They should be objects in following format.
{
address: String
port: Number
}
dpt.refresh()
Refreshes the nodes and searches for new nodes
DPT
events
The DPT object inherits from Events.EventEmitter and emits the following events.
ping
- Fires when receiving a Ping. Provides a parsed ping packets and the peer it came frompong
- Fires when receiving a pong. Provides a parsed ping packets and the peer it came fromfindNode
- Fires when receiving a findNode. Provides a parsed ping packets and the peer it came fromneighbors
- Fires when receiving a neighbors. Provides a parsed ping packets and the peer it came fromerror
- Provides and error message
CONTRIBUTIONS
Patches welcome! Contributors are listed in the package.json
file.
Please run the tests before opening a pull request and make sure that you are
passing all of them.
If you would like to contribute, but don't know what to work on, check
the issues list or ask on the forms or on IRC.
BUGS
When you find issues, please report them:
You can also look for null_radix in #ethereum-dev on irc://irc.freenode.net.
LISCENCE
GPL3