The Ziggurat implementation for Algorand's algod
nodes.
Ziggurat is written in stable Rust; you can install the Rust toolchain by following the official instructions here.
- Clone this repository.
- Build go-algorand from source.
- 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 conformance and resistance tests with the following command:
cargo +stable test
Consult the performance tests readme for details on running these tests.
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 |
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 | ✓ |
Test Case | Algod | Additional Information |
---|---|---|
001 | ✓ | |
002 | ✓ |
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 |