Comments (2)
For 1), from the readme:
arr = dht.toArray()
Returns the nodes in the DHT as an array. This is useful for persisting the DHT
to disk between restarts of a BitTorrent client (as recommended by the spec). Each node in the array is an object with id
(hex string) and addr
(string) properties.
To restore the DHT nodes when instantiating a new DHT
object, simply pass in the array as the value of the bootstrap
option.
var dht1 = new DHT()
// some time passes ...
// destroy the dht
var arr = dht1.toArray()
dht1.destroy()
// some time passes ...
// initialize a new dht with the same routing table as the first
var dht2 = new DHT({ bootstrap: arr })
from bittorrent-dht.
For 2), you can take some of the peers from the tracker and try adding them to the DHT:
dht.addNode(addr, [nodeId])
Manually add a node to the DHT routing table. If there is space in the routing table (or
an unresponsive node can be evicted to make space), the node will be added. If not, the
node will not be added. This is useful to call when a peer wire sends a PORT
message to
share their DHT port.
If nodeId
is undefined, then the peer will be pinged to learn their node id. If the peer does not respond, the will not be added to the routing table.
However, there's a issue right now where nodeId
is actually required, and you obviously won't know that in advance, since "dht node id" is different from "bittorrent peer id". Issue is open here: #26 PR welcome :)
from bittorrent-dht.
Related Issues (20)
- listen() method signature and implementation do not match HOT 1
- Switch from `crypto` module to separate jssha and randombytes
- get mutable value: onreply rely on salt, but its not defined in bep HOT 2
- Optionally supporting custom hash function (and id space size) HOT 1
- mutable put request: wrong test seq !== cas HOT 2
- Action required: Greenkeeper could not be activated 🚨
- encodePeer in client.js doesn't check if port is our of range
- Can I set ROTATE_INTERVAL param? HOT 3
- Option to ignore mutable put value and defer to network value instead HOT 2
- BEP33 HOT 1
- Sodium signatures HOT 2
- An in-range update of standard is breaking the build 🚨 HOT 3
- Node discovery via DHT HOT 1
- dht announce HOT 1
- An in-range update of standard is breaking the build 🚨 HOT 1
- return the data as an array or object with bitorent-dht.lookup()
- dht.lookup() throws uncatchable error HOT 1
- Dependency Dashboard
- BEP 50 - pubsub
- dht.get() error, BEP 44 broken HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bittorrent-dht.