Skip to content

mwlow/raft-haskell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raft-haskell

This project demonstrates the Raft algorithm, implemented using Haskell. Requirements include:

  • GHC 7.8.4 (broken on 7.10 because of dependencies)
  • cabal-install

Build the program via sh install.sh, which will first install all dependencies into a sandbox located in the root directory of the repository. To run, either:

  • cabal run test [numNodes] to run a randomized test case.
  • cabal run localhost [port] [numNodes] to interact manually with Raft.

The number of nodes should be greater than 2.

CSV files, one per node, will be written to the tmp directory. Each file contains the entries of the node's log that have been applied and thus represents the current state of the node's state machine.

To verify correctness, after each run, compare the CSV files in the tmp directory to ensure that they are all the same. The automated test (i.e. cabal run test [numNodes]) will automatically call diff on all the CSV files.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published