+
Skip to content

VSEJGFB/acs

 
 

Repository files navigation

Prototype implementation for the paper Asynchronous Consensus without Trusted Setup or Public-Key Cryptography

Code structure

This repository is based on https://github.com/sourav1547/htadkg and reuses many implementations (network communication, reliable broadcast protocol, group operation, etc.)

Our new asynchronous consensus is mainly in adkg/vaba.py, which includes index cover gather, random rank assignment. A script scripts/vaba_run.py is an example for instantiating a node.

The ASKS scheme in the paper is in adkg/asks.py. We also provide a benchmark tests/test_benchmark_asks.py for it.

Running on local machine

Required tools

  1. Install Docker. (For Linux, see Manage Docker as a non-root user) to run docker without sudo.)

  2. Install docker-compose

Building

  1. The image will need to be built (this will likely take a while). Inside the vaba folder run
$ docker-compose build vaba

Running tests

  1. You need to start a shell session in a container. The first run will take longer if the docker image hasn't already been built:
$ docker-compose run --rm vaba bash
  1. Then, to test the vaba code locally, i.e., multiple thread in a single docker container, you need to run the following command with parameters:

    • num: Number of nodes,
    • ths: fault-tolerance threshold, and

    Note that n>3*t

pytest tests/test_vaba.py -o log_cli=true --num 4 --ths 1

Running locally on multiple processes within a docker image

Note: Required tools and build instructions are same as above

Running tests

  1. Start a docker image by running $docker-compose run --rm vaba bash

Generate the corresponding configuration files using gen_config.py.

  1. Start the VABA instances $bash scripts/run_vaba.sh [NUM_NODES]

Running in AWS instances

Please refer to aws/README.md for detailed information on how to run the protocol using amazon web services

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 65.6%
  • Python 32.5%
  • Cython 0.7%
  • C++ 0.5%
  • Dockerfile 0.3%
  • Shell 0.2%
  • Other 0.2%
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载