https://github.com/muxable/chord
https://github.com/muxable/chord
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/muxable/chord
- Owner: muxable
- Created: 2022-06-15T03:12:05.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-07-12T17:24:30.000Z (almost 4 years ago)
- Last Synced: 2024-06-21T18:48:41.419Z (about 2 years ago)
- Language: Go
- Size: 22.5 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# muxable/chord
A minimal implemenation of the Chord distributed hash table datastructure.
The implementation is based on the [original MIT paper](https://pdos.csail.mit.edu/papers/ton:chord/paper-ton.pdf) and the [AT&T paper](https://arxiv.org/pdf/1502.06461.pdf) to improve resiliency.
Inter-node communication is done over HTTP for ease of debugging.
## Example
```
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
```
## Notable differences
- 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 a `sha1.Size`.