Welcome to the implementation of TARA Framework in go language!
This reference implementation is heavy WIP.
Please use it with due considerations.
-
Get the go-tara repo
go get github.com/TARAFramework/go-tara
-
Enter the go-tara repo in your $GOPATH/src
cd $GOPATH/src/github.com/TARAFramework/go-tara/
-
Run make for the executable
make go-tara
-
Navigate to
go-tara
repo as discussed above -
Open 3 terminals & execute the following commands one for each:
./go-tara -nodeid 1
./go-tara -nodeid 2
./go-tara -nodeid 3
-
The buffer will open on the terminal console for your inputs.
-
If inputs end with a '?' character, the client request is relayed to
Cluster 1
encoded by its key ID 100. -
If inputs do not end with a '?' character, the client request is relayed to
Cluster 2
encoded by its key ID 101.
- Tara Paper - Working Draft by @0zAND1z. Presents the complete concepts, design approaches for a scalable RAFT Architecture that can handle more complex incoming client requests.
- TaraScope - Visual representation of a behavior of triplets.
- TARA.tla - The TLA+ Specification for RAFT along with tests.
The go-tara proof of concept is based on @lni's dragonboat multigroup implementation.
Link for the same is here: https://github.com/lni/dragonboat 💚