Skip to content

runziggurat/algorand

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ziggurat x Algorand

dependency status

The Ziggurat implementation for Algorand's algod nodes.

Prerequisites

Ziggurat is written in stable Rust; you can install the Rust toolchain by following the official instructions here.

Getting started

Preconditions

  1. Clone this repository.
  2. Build go-algorand from source.
  3. Run the setup script:
 tools/setup_env.sh

In case algorand files are installed in a specific location, export that location to the ALGORAND_BIN_PATH environment variable and rerun the setup script:

 export ALGORAND_BIN_PATH="$HOME/node"   # example path
 tools/setup_env.sh

Run tests

Run conformance and resistance tests with the following command:

 cargo +stable test

Run performance tests

Consult the performance tests readme for details on running these tests.

Test Status

Short overview of test cases and their current status. In case of failure, the behaviour observed is usually documented in the test case.

These results were obtained by running the test suite against Algorand v3.12.2-stable (181490e3).

Legend
pass
fail
- unimplemented

Conformance

Test Case Algod Additional Information
001
002
003
004
005
006
007
008
009 The PingReply handler doesn't exist anymore in the go-algorand codebase
010 ✓/✖ Only BlockAndCert request is supported, other type requests are unsupported
011
012
013

Performance

Test Case Algod Additional Information
001
002

Resistance

Test Case Algod Additional Information
001 The node doesn't reject the connection in case a small amount of random data is sent
002 ✓/✖ The procedure accepts sometimes invalid requests (should be improved)
003 The node doesn't reject the connection in most scenarios
004 ✓/✖ The node won't reject the connection for enormously long and invalid messages