IPv8 Datasync Test SuiteIntroduction and manual to the mighty IPv8Datasync Test Suite.
Quick start guide to the galaxyRun
And see them synchronize! Check the testbench2.py section of this page for details List of programs in the suitecreatedb.pycreatedb.py creates a database with IPv8 entries as defined in ipv8model.py. You can create databases of predefined size (with --size) and similar to a percentage with another database (--similarity, --similar-db). You can run the script with --help to get a full list of the supported functionality. All the test need of course to have databases to synchronize, so createdb.py is a important part of the test suite. Example run:
Note: Generation of data can take a long of time. Prefer values up to 50K entries comparedb.pycomparedb.py will take two databases and compare the rows of the IPv8 table as defined in the ipv8model.py. Will output the size of each database, the number of similar entries and the ratio of their similarity. Will also report if an entry exists multiple times in a database. Example run:
Note: Comparison of databases can take a long time. Be patient. server.pyserver.py implements a server node for client to connect to and get database updates. Implements the Tribler Server Protocol as define in Ipv8Datasync. Example run:
Note: The program will run endlessly and can be terminated with ctrl-C. client.pyclient.py implements a client node which connects to a server and gets database updates. Implements the Tribler Client Protocol as define in Ipv8Datasync. Example run:
Note: The program will run endlessly and can be terminated with ctrl-C. node.pynode.py implements a fully working node, acting both as client and server. Example run:
Will bind to 127.0.0.1 and try to connect to hosts 127.0.0.2 - 127.0.0.5 testbench2.pytestbench2.py is an automated tool to test node synchronization. Will create --numberofclients databases and a node for each database and you can see them synchronize! Example run:
Output: The output is the machine output from client.py. For each succesfull sync you get a line with the following format
You can parse the output with parser.py parser.pyparser.py will parse the output of testbench2.py and create a series of PDF files with visual represantation of the connections and status of the node databases per round. Helps you understand and debug the system Example run:
Will create PDFs named 1.pdf, 2.pdf, ..., <lastround>.pdf in /tmp . Each PDF represents a round Work in progress. testbench.pystats-parser.py |