Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

132 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages