Gossip protocol in Go for Santa Clara University's COEN 317 Distributed Systems course. This is a simple framework to facilitate passing arbitrary messages between networked servers.
The implementation we used is based on the paper by Alberto Montresor, which can be found here. We adapted the sections 1-4, leaving aggregation as a future exercise.
Exact instructions of commands to run in gossip_setup.sh
.
Basically just
- https://us-west-1.console.aws.amazon.com/ec2/v2/home?region=us-west-1#LaunchInstanceWizard:
- Select
Ubuntu Server 18.04 LTS (HVM), SSD Volume Type
, as a t2.micro - -> review and launch -> launch
- Make a new keypair if you don't have one and download and save that
- Launch it, then find its public DNS hostname in the management console: https://us-west-1.console.aws.amazon.com/ec2/v2/home?region=us-west-1#Instances:
- Once it's booted up,
ssh -i "/path/to/keyfile" [email protected]
- Add a new security group that has a bunch of ports exposed to actually run on (we use 8000-8100)
- Run
gossip_setup.sh && source ~/.profile
- NOTE: It's very important to have the source code in
$GOPATH/src/github.com/aneeshsimha/gossip_protocol_golang
, otherwise it will not compile.