Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryogrid/gossip-overlay
Library for construction of gossip protcol based overlay network which supports machins on NAT
https://github.com/ryogrid/gossip-overlay
distributed distributed-systems gossip gossip-protocol mesh overlay overlay-network
Last synced: about 2 months ago
JSON representation
Library for construction of gossip protcol based overlay network which supports machins on NAT
- Host: GitHub
- URL: https://github.com/ryogrid/gossip-overlay
- Owner: ryogrid
- License: mit
- Created: 2023-11-14T14:06:45.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-06-01T23:15:43.000Z (7 months ago)
- Last Synced: 2024-06-02T00:32:21.379Z (7 months ago)
- Topics: distributed, distributed-systems, gossip, gossip-protocol, mesh, overlay, overlay-network
- Language: Go
- Homepage:
- Size: 169 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# gossip-overlay
## Feature
- Bi-directional reliable stream I/F which hides peers on gossip protcol layer with SCTP
- Any centralized server is not needed
- TCP socket programming style interface (system architecture like a server and clients can be implemented)
- NAT transparent communication## Build (sample program)
$ go build -o streamer main/streamer.go## Usage (sample program)
Message Ping Pong between 2 peers through one intermediate peer
(thid peer-c establishes two connectionns to peer-b on overlay NW and send ping to each connection)Start several peers on the same host.
Tell the second and subsequent peers to connect to the first one.
Procedure below needs shell x 3 :)```
$ ./streamer -hwaddr 00:00:00:00:00:01 -nickname a -mesh :6001
$ ./streamer -side recv -hwaddr 00:00:00:00:00:02 -nickname b -mesh :6002 -peer 127.0.0.1:6001
$ ./streamer -side send -hwaddr 00:00:00:00:00:03 -nickname c -mesh :6003 -peer 127.0.0.1:6001 -destid 2
```Network Topology:
- Peer-b <-> Peer-a <-> Peer-c## Use Cases
- Port forwarding tool between private networks
- [gossip-port-forward](https://github.com/ryogrid/gossip-port-forward)
- DHT based very simple distributed KVS whose nodes run on overlay
- [gord-overlay](https://github.com/ryogrid/gord-overlay)## TODO
- Replace [pion/sctp](https://github.com/pion/sctp) (SCTP) with [hashicorp/yamux](https://github.com/hashicorp/yamux) (QUIC like protcol) and redesign overlay connection establishment sequence...
- [gist (in Japanese)](https://gist.github.com/ryogrid/e78088bc531bc62c10eba1c0d0e0b7fc)