PhdLoLi / PurePaxos

Way to Paxos

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PurePaxos

PurePaxos is the very basic version of Multi-Paxos implementation. It also inculdes some simple testing of functionality and performance.

For license information see LICENSE.

Structure

The directory structure is as follows:

  • /root
    • libpaxos/ -- PurePaxos library source code
    • waf -- binary waf file
    • wscript -- waf instruction file
    • config/ -- config files of this project
    • waf-tools/ -- additional waf tools
    • loli_test/ -- test code
    • libzfec/ -- zefc library using for RS code
    • script/ -- some python scripts
    • LICENSE
    • README.md
    • INSTALL.md

Building instructions

Prerequisites

These are prerequisites to build PurePaxos.

Required:

Prerequisites build instructions

Mac OS build considerations

boost

brew install boost

protobuf

brew install protobuf

zeromq

brew install zeromq

yaml-cpp

brew install libyaml

Linux(Ubuntu) build considerations

clang

sudo apt-get install clang

boost

sudo apt-get install libboost-all-dev

protobuf

sudo apt-get install libprotobuf-dev protobuf-compiler python-protobuf

zeromq

sudo apt-get install libzmq3-dev python-zmq

yaml-cpp

sudo apt-get install libyaml-cpp-dev

Build instructions

$ ./waf configure -l info
$ ./waf

Run Test

  • Terminal 1 -- Node1
$ bin/servant 1 3 100000
parameters (node_id node_num total_num)
  • Terminal 2 -- Node2
$ bin/servant 2 3 100000
parameters (ndoe_id node_num total_num)
  • Terminal 0 -- Node0(Master)
$ bin/master 0 3 1 1 100000
parameters (ndoe_id node_num value_size win_size total_num)

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version, with the additional exemption that compiling, linking, and/or using OpenSSL is allowed.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

About

Way to Paxos

License:GNU Lesser General Public License v3.0


Languages

Language:Python 55.3%Language:C++ 41.1%Language:Groff 2.6%Language:C 0.6%Language:Protocol Buffer 0.3%Language:Shell 0.2%