Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fpaxos/fpaxos-lib
Prototype of FPaxos, built upon LibPaxos3
https://github.com/fpaxos/fpaxos-lib
Last synced: 3 months ago
JSON representation
Prototype of FPaxos, built upon LibPaxos3
- Host: GitHub
- URL: https://github.com/fpaxos/fpaxos-lib
- Owner: fpaxos
- License: other
- Archived: true
- Created: 2016-07-28T15:36:17.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-03-14T14:26:28.000Z (over 4 years ago)
- Last Synced: 2024-07-16T13:04:58.265Z (4 months ago)
- Language: C++
- Homepage:
- Size: 988 KB
- Stars: 49
- Watchers: 5
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# LibFPaxos
LibFPaxos is a extended version of [LibPaxos3](http://libpaxos.sourceforge.net) which draws a distinction between the quorums used for Paxos's two phases. The code is not production ready and should be used for experimentation only.
## LibPaxos3 (Original Readme)
This is LibPaxos3! A complete rewrite of [LibPaxos2][1].
LibPaxos3 has been improved in the following aspects:- Doesn't make use of multicast
- Has a cleaner design
- Has a better build system based on CMake
- Comes with unit testsLibPaxos3 is divided in two libraries: libpaxos and libevpaxos.
Libpaxos (see ```libpaxos/paxos```) implements the core of the Paxos consensus
protocol, and is not cluttered with network specific code. That is, libpaxos
does not depend on any particular networking library.Libevpaxos (see ```libpaxos/evpaxos```) is the actual networked Paxos
implementation. This library is built on top of the libpaxos and [libevent][2].## Building
These are the basic steps required to get and compile LibPaxos3
git clone https://bitbucket.org/sciascid/libpaxos.git
mkdir libpaxos/build
cd libpaxos/build
cmake ..
makeLibPaxos3 depends on [libevent][2] and [msgpack][9]. By default, LibPaxos3 uses
an in-memory storage, with support for a storage backend based on [LMDB][10]
(see ```paxos.conf``` and build options below).LibPaxos3 should compile on Linux and OS X.
### Useful build options
You pass options to cmake as follows: ```cmake -DOPTION=VALUE```
- ```LMDB_ROOT=PATH``` - point it to your installation of LMDB
- ```LIBEVENT_ROOT=PATH``` - point it to your installation of Libevent
- ```MSGPACK_ROOT=PATH``` - point it to your installation of MessagePack## Running the examples
cd libpaxos/build
./sample/acceptor 0 ../paxos.conf > /dev/null &
./sample/acceptor 1 ../paxos.conf > /dev/null &
./sample/proposer 2 ../paxos.conf > /dev/null &
./sample/learner ../paxos.conf > learner.txt &
./sample/client## Configuration
See ```paxos.conf``` for a sample configuration file.
## Unit tests
Unit tests depend on the [Google Test][4] library. Execute the tests using
```make test``` in your build directory, or run ```runtest``` from
```build/unit``` for detailed output.## Feedback
[LibPaxos project page][1]
[LibPaxos3 repository][5]
[Mailing list][6]
## License
LibPaxos3 is distributed under the terms of the 3-clause BSD license.
LibPaxos3 has been developed at the [University of Lugano][7],
by [Daniele Sciascia][8].[1]: http://libpaxos.sourceforge.net
[2]: http://www.libevent.org
[4]: http://code.google.com/p/googletest/
[5]: https://bitbucket.org/sciascid/libpaxos
[6]: https://lists.sourceforge.net/lists/listinfo/libpaxos-general
[7]: http://inf.usi.ch
[8]: http://atelier.inf.usi.ch/~sciascid
[9]: http://www.msgpack.org
[10]: http://symas.com/mdb/