https://github.com/gokul656/raft-consensus
Raft Consensus Algorithm with gRPC & Go
https://github.com/gokul656/raft-consensus
distributed-systems go raft-consensus-algorithm
Last synced: about 1 year ago
JSON representation
Raft Consensus Algorithm with gRPC & Go
- Host: GitHub
- URL: https://github.com/gokul656/raft-consensus
- Owner: gokul656
- License: mit
- Created: 2023-09-23T12:34:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-17T19:23:42.000Z (over 2 years ago)
- Last Synced: 2025-02-07T21:37:27.324Z (over 1 year ago)
- Topics: distributed-systems, go, raft-consensus-algorithm
- Language: Go
- Homepage:
- Size: 41 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Raft Consensus Algorithm with gRPC & Go
This project aims to demonstrate the working of the **Raft consensus** algorithm using gRPC and Go. The primary objective is
to implement a distributed consensus system where peers elect a leader and exchange messages to maintain consistency
in a distributed network. Below are the key components and steps involved in the project:
## Project Setup,
To run the project, follow these steps:
Build the project:
```
$ make build
```
Run the peer
```
$ ./bin/peer
```
## Prerequisites
Before running the project, ensure you have the following prerequisites installed:
* Go v1.21
* Make CLI
* protobuf-compiler
## Install Protobuf Tools
Install the necessary Protobuf tools with the following commands:
```
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
```
## To-Do List
The project is a work in progress, and the following tasks are planned for future development:
* Need to implement Raft election logic
* Implement loggers
* Admin cli to interact with peers
* Containerization