All Projects → flowchain → Node P2p Chord

flowchain / Node P2p Chord

Licence: mit
A light weight Chord protocol and algorithm library that creates a distributed hash table (DHT) for a p2p network.

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Node P2p Chord

Bitchatclient
Technitium Bit Chat, a secure, peer-to-peer, instant messenger!
Stars: ✭ 111 (+825%)
Mutual labels:  dht, p2p
Phpdhtspider
php实现的dht爬虫
Stars: ✭ 248 (+1966.67%)
Mutual labels:  dht, p2p
Chord
Implementation of Chord DHT(Distributed Hash Table) paper
Stars: ✭ 118 (+883.33%)
Mutual labels:  dht, p2p
Spruce Network
Decentralized peer-to-peer mesh network.
Stars: ✭ 61 (+408.33%)
Mutual labels:  dht, p2p
Bluntly
serverless, encrypted, NAT-breaking p2p connections - DEPRECATED
Stars: ✭ 270 (+2150%)
Mutual labels:  dht, p2p
Phpspidermagnetbittorrent
php实现p2p中DHT网络爬虫,并提供搜索下载
Stars: ✭ 64 (+433.33%)
Mutual labels:  dht, p2p
Torrent Discovery
Discover BitTorrent and WebTorrent peers
Stars: ✭ 177 (+1375%)
Mutual labels:  dht, p2p
Bt
BitTorrent library and client with DHT, magnet links, encryption and more
Stars: ✭ 2,011 (+16658.33%)
Mutual labels:  dht, p2p
Layr
A decentralized (p2p) file storage system built atop Kademlia DHT that enforces data integrity, privacy, and availability through sharding, proofs of retrievability, redundancy, and encryption, with smart-contract powered incentive scheme
Stars: ✭ 90 (+650%)
Mutual labels:  p2p, dht
ipvpn
[WIP] Easy-to-use decentralized secure overlay private network (for any device)
Stars: ✭ 24 (+100%)
Mutual labels:  p2p, dht
Bittorrent Dht
🕸 Simple, robust, BitTorrent DHT implementation
Stars: ✭ 1,004 (+8266.67%)
Mutual labels:  dht, p2p
Kadnode
P2P DNS with content key, crypto key and PKI support. DynDNS alternative.
Stars: ✭ 359 (+2891.67%)
Mutual labels:  dht, p2p
Toxic
An ncurses-based Tox client (please make pull requests on the development fork: https://github.com/toktok/toxic)
Stars: ✭ 987 (+8125%)
Mutual labels:  dht, p2p
Snail
基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)、FTP、HTTP。人家才不要你的⭐⭐呢,哼
Stars: ✭ 102 (+750%)
Mutual labels:  dht, p2p
Blocxxi
Implementation of Kademlia based DHT and a blockchain in C++
Stars: ✭ 21 (+75%)
Mutual labels:  dht, p2p
torrent-spider
基于DHT的p2p网络资源爬虫
Stars: ✭ 65 (+441.67%)
Mutual labels:  p2p, dht
Eiskaltdcpp
File sharing program using DC and ADC protocols
Stars: ✭ 277 (+2208.33%)
Mutual labels:  dht, p2p
Lbry Sdk
The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
Stars: ✭ 7,169 (+59641.67%)
Mutual labels:  dht, p2p
Holochain Proto
Holographic storage for distributed applications -- a validating monotonic DHT "backed" by authoritative hashchains for data provenance (a Ceptr sub-project)
Stars: ✭ 795 (+6525%)
Mutual labels:  dht
Gateway
🏰 Serving distributed Web Annotations from the decentralized web
Stars: ✭ 25 (+108.33%)
Mutual labels:  p2p

node-p2p-chord

node-p2p-chord is a light weight Chord protocol and algorithm library in JavaScript for a peer-to-peer distributed hash table (DHT). It is a sub-project of WoT.City and the underlying component of WoT.City software framework. The technical details can be found at WoT.City white paper.

Usage

To start a virtual node.

$ export HOST=192.168.0.3	; the IP address for this Chord node to listening to
$ export PORT=8000			; the port number for this Chord node to listening to
$ node node0.js				; start the the virtual node

To connect a subsequent node in order to join the existing p2p network.

$ export HOST=192.168.0.100	; the IP address for this Chord node to listening to
$ export PORT=9000			; the port number for this Chord node to listening to
$ node node1.js				; start a Chord node and join the existing node

In the node1.js file that you have to add join property for the connecting node.

// to connect to a subsequent node
server.start({
	onmessage: onmessage,
	join: { 
		address: '192.168.0.3', 
		port: 8000
	}	
});

Quickstart

To create a node and connect to a subsequent node. Add the join property to specify the existing p2p node.

var server = require('./libs/server');

/**
 * Chord network.
 */
var onmessage = function(payload) {
};

/**
 * Join an existing node.
 */
server.start({
	onmessage: onmessage,
	join: { 
		address: '127.0.0.1', 
		port: 8001
	}	
});

To create a new virtual node.

var server = require('./libs/server');

/**
 * Chord network.
 */
var onmessage = function(payload) {
};

/**
 * Create a virtual node (seed node).
 */
server.start({
	onmessage: onmessage,
});

History

v0.5: current

  • Support full stabilization
  • Major bug fixed: [#0ee56e413a8c8bab68da282a445f5705fc34305b], [#c7db7fdfc731c6f103f955b763c1f80862ff66c8]

v0.4: 2016.12.19

  • Major bug fixed
  • FOUND_SUCCESSOR bugs
  • NOTIFY_SUCCESSOR bugs
  • Improve startUpdateFingers()
  • Add a new NOTIFY_JOIN RPC message

v0.3: 2016.08.27

  • Support refreshing finger table entries
  • Support verifying successor's consistency

v0.2: 2016.08.26

  • Support create and join
  • Support stabilize and notify

v0.1: 2016.08.25

  • Chord node prototype
  • Chord node over WebSocket server

Credits

There are existing Chord node.js implementations, and the node-p2p-chord is inspired by them.

License

The MIT License (MIT)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].