Golang implementation of Viewstamped Replication revisited protocol. Covered under blogpost Implementing Viewstamped Replication
// Build the project
go build
// It's a 5 node cluster starting from port 8000 - 8004. So run the 5 server nodes
./vsrevisited server 8000
./vsrevisited server 8001
./vsrevisited server 8002
./vsrevisited server 8003
./vsrevisited server 8004
// Run the client on any port except 8000 - 8004
./vsrevisited client 7000
- Add optimization for storing state on disk for faster recovery
- Implement the reconfiguration protocol