Artifact for Verification of Randomized Consensus

Verification of Randomized Consensus Algorithms under Round-Rigid Adversaries

This artifact accompanies the technical report and the paper at CONCUR19.

All of our case studies are available from the github repository. Below we describe the necessary details to reproduce the experiments in the virtual machine.

1. Virtual machine

You can download the virtual machine (VirtualBox, 64-bit, 2.0 GB) from here.

The virtual machine contains Debian GNU/Linux 3.16 with all necessary packages installed. The packages are installed under the user account named ‘user’ with the password ‘user’. If you have to use the root account, the password is ‘root’. Alternatively, you can also use the ‘sudo’ command.

2. Package structure

The artifact files are located in two directories:

  • /home/user/fault-tolerant-benchmarks/random19 contains the benchmarks used in the paper, encoded in generalized threshold automata.
  • /home/user/bymc/ contains the tool (binaries and source code).

3. Platform requirements

We ran the experiments on two systems:

  • a laptop equipped with 16 GB of RAM and Intel® CoreTM i7 processor with 2 cores, 3.5 GHz, and
  • in Grid5000 using 32 nodes of the cluster grvingt, each having 2 CPUs Intel Xeon Gold 6130, 16 cores/CPU, 192GB

To run the experiments in your cluster environment, you have to compile the tool according to the instructions found in ~/bymc/bymc/README.txt.

4. Installation instructions

This virtual machine already contains all the necessary tools and libraries. In case you want to install the tool from scratch, please check the file ~/bymc/bymc/README.txt.

6. Running the individual experiments

In this section, we give the commands to verify the threshold automaton ​n-ben-or.ta. To find the properties, search the code for the section specifications() {...}.

6.1. Single core

The following command runs synthesis on a single CPU core, enumerating all possible solutions:

$ ~/bymc/bymc/verifypa-schema \
   ~/fault-tolerant-benchmarks/random19/n-ben-or.ta agreement0 -O schema.incremental=1

You should see the following lines in the output:

> Spec agreement0 holds
nschemas = 9, min length = 42, max length = 88, avg length = 63
min time = 0.000000, max time = 1.000000, avg time = 0.111111
saving game to bymc.ser...
Bye!

6.2. Multiple cores (MPI)

The following command runs synthesis with MPI, enumerating all possible solutions:

$ mpirun -n $NUM_NODES --output-filename out ~/bymc/bymc/verifypa-schema \
~/fault-tolerant-benchmarks/random19/n-ben-or.ta agreement -O schema.tech=ltl-mpi

(specify the number of MPI nodes by replacing $NUM_NODES with an actual number)

You can check the log file of the master node in out.0 and the log files of the worker nodes in out.i for i > 0.

Latest News

Helmut Veith Stipend

The first recipient of the Helmut Veith Stipend for excellent female master’s students in computer science will be presented on March 14 at the following event: "More female students in computer science. Who cares?" Panel discussion with renowned scientists about diversity in STEM Studies March 14, 5:30pm, TU Wien The Helmut Veith Stipend is dedicated […]

Continue reading

WAIT 2016 in Vienna

The third WAIT workshop on induction is held between 17-18 November at the TU Wien. Details are available on the workshop page.

Continue reading

Two papers at POPL’17

Two papers co-authored by researchers from our group have been accepted for POPL’17: “Coming to Terms with Quantified Reasoning” by Simon Robillard, Andrei Voronkov, and Laura Kovacs; and “A Short Counterexample Property for Safety and Liveness Verification of Fault-tolerant Distributed Algorithms” by Igor Konnov, Marijana Lazic, Helmut Veith, and Josef Widder

Continue reading

Helmut Veith Stipend

Outstanding female students in the field of computer science who pursue (or plan to pursue) one of the master‘s programs in Computer Science at TU Wien taught in English are invited to apply for the Helmut Veith Stipend

Continue reading

Full news archive