Naxos is an implementation combining Paxos and NDN. It also inculdes some simple testing of functionality and performance.
Say goodbye to my PhD life.
For license information see LICENSE.
The directory structure is as follows:
- /root
- libndnpaxos/ -- Naxos library source code
- waf -- binary waf file
- wscript -- waf instruction file
- config/ -- config files of this project
- waf-tools/ -- additional waf tools
- test/ -- test code
- script/ -- some python scripts
- LICENSE
- README.md
These are prerequisites to build Naxos.
Required:
brew install boost
brew install protobuf
brew install zeromq
brew install libyaml
sudo port install nfd
Install from git https://github.com/named-data/ndn-cxx Follow http://named-data.net/doc/ndn-cxx/current/INSTALL.html
sudo apt-get install clang
sudo apt-get install libboost-all-dev
sudo apt-get install libprotobuf-dev protobuf-compiler python-protobuf
sudo apt-get install libzmq3-dev python-zmq
sudo apt-get install libyaml-cpp-dev
Follow http://named-data.net/doc/NFD/current/INSTALL.html using apt-get install
Install from git https://github.com/named-data/ndn-cxx Follow http://named-data.net/doc/ndn-cxx/current/INSTALL.html
$ ./waf configure -l info $ ./waf
Background need run
$ nfd-start
If we have three nodes, we should run 3 naxos daemon processes or run them in different nodes:
- Terminal 0 -- Node0 (Runing background / Blocking)
$ bin/naxos 0 3 1 0 1 parameters (Node_ID Node_Num Wind_Size Local_or_Not(0/1) Log_Win_Size)
- Terminal 1 -- Node1 (Runing background / Blocking)
$ bin/naxos 1 3 1 0 1 parameters (Node_ID Node_Num Win_Size Local_or_Not(0/1) Log_Win_Size)
- Terminal 2 -- Node2 (Runing background / Blocking)
$ bin/naxos 2 3 1 0 1 parameters (Node_ID Node_Num Win_Size Local_or_Not(0/1) Log_Win_Size)
- Terminal 3 -- Clients (Runing for 20 mins)
$ bin/clients 1 100 parameters (Commit_Win_Size Write_Ratio)
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.