All Projects → arriqaaq → Chord

arriqaaq / Chord

Licence: mit
Implementation of Chord DHT(Distributed Hash Table) paper

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Chord

Bluntly
serverless, encrypted, NAT-breaking p2p connections - DEPRECATED
Stars: ✭ 270 (+128.81%)
Mutual labels:  dht, p2p
Node P2p Chord
A light weight Chord protocol and algorithm library that creates a distributed hash table (DHT) for a p2p network.
Stars: ✭ 12 (-89.83%)
Mutual labels:  dht, p2p
Eiskaltdcpp
File sharing program using DC and ADC protocols
Stars: ✭ 277 (+134.75%)
Mutual labels:  dht, p2p
torrent-spider
基于DHT的p2p网络资源爬虫
Stars: ✭ 65 (-44.92%)
Mutual labels:  p2p, dht
Spruce Network
Decentralized peer-to-peer mesh network.
Stars: ✭ 61 (-48.31%)
Mutual labels:  dht, p2p
ipvpn
[WIP] Easy-to-use decentralized secure overlay private network (for any device)
Stars: ✭ 24 (-79.66%)
Mutual labels:  p2p, dht
Lbry Sdk
The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
Stars: ✭ 7,169 (+5975.42%)
Mutual labels:  dht, p2p
Kadnode
P2P DNS with content key, crypto key and PKI support. DynDNS alternative.
Stars: ✭ 359 (+204.24%)
Mutual labels:  dht, p2p
Bittorrent Dht
🕸 Simple, robust, BitTorrent DHT implementation
Stars: ✭ 1,004 (+750.85%)
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 (+736.44%)
Mutual labels:  dht, p2p
Phpdhtspider
php实现的dht爬虫
Stars: ✭ 248 (+110.17%)
Mutual labels:  dht, p2p
Snail
基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)、FTP、HTTP。人家才不要你的⭐⭐呢,哼
Stars: ✭ 102 (-13.56%)
Mutual labels:  dht, p2p
Torrent Discovery
Discover BitTorrent and WebTorrent peers
Stars: ✭ 177 (+50%)
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 (-23.73%)
Mutual labels:  p2p, dht
Bt
BitTorrent library and client with DHT, magnet links, encryption and more
Stars: ✭ 2,011 (+1604.24%)
Mutual labels:  dht, p2p
Blocxxi
Implementation of Kademlia based DHT and a blockchain in C++
Stars: ✭ 21 (-82.2%)
Mutual labels:  dht, p2p
Phpspidermagnetbittorrent
php实现p2p中DHT网络爬虫,并提供搜索下载
Stars: ✭ 64 (-45.76%)
Mutual labels:  dht, p2p
Bitchatclient
Technitium Bit Chat, a secure, peer-to-peer, instant messenger!
Stars: ✭ 111 (-5.93%)
Mutual labels:  dht, p2p
Planetary Ios
An IOS app that doesn't keep your data in the cloud
Stars: ✭ 108 (-8.47%)
Mutual labels:  p2p
Canvas
Peer-to-peer canvas app for Urbit
Stars: ✭ 114 (-3.39%)
Mutual labels:  p2p

Chord

[WIP] Implementation of Chord paper

Paper

https://pdos.csail.mit.edu/papers/ton:chord/paper-ton.pdf

Example Usage

package main

import (
	"github.com/arriqaaq/chord"
	"github.com/arriqaaq/chord/internal"
	"log"
	"os"
	"os/signal"
	"time"
)

func createNode(id string, addr string, joinNode *internal.Node) (*chord.Node, error) {

	cnf := chord.DefaultConfig()
	cnf.Id = id
	cnf.Addr = addr
	cnf.Timeout = 10 * time.Millisecond
	cnf.MaxIdle = 100 * time.Millisecond

	n, err := chord.NewNode(cnf, joinNode)
	return n, err
}


func main() {

	joinNode := chord.NewInode("1", "0.0.0.0:8001")

	h, err := createNode("8", "0.0.0.0:8003", joinNode)
	if err != nil {
		log.Fatalln(err)
		return
	}

	c := make(chan os.Signal, 1)
	signal.Notify(c, os.Interrupt)
	<-c
	h.Stop()
}

References

This implementation helped me a lot in designing the code base https://github.com/r-medina/gmaj

TODO

  • Add more test cases
  • Add stats/prometheus stats
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].