A minimal implemenation of the Chord distributed hash table datastructure.
The implementation is based on the original MIT paper and the AT&T paper to improve resiliency.
Inter-node communication is done over HTTP for ease of debugging.
go run cmd/main.go -addr 127.0.0.1:5001
go run cmd/main.go -addr 127.0.0.1:5002 -join 127.0.0.1:5001
go run cmd/main.go -addr 127.0.0.1:5003 -join 127.0.0.1:5002
- Node id's are not required to be the hash of an ip address. This allows multiple nodes to coexist on a given IP.
- For ease of implementation, we use a
uint64
instead of asha1.Size
.