Conflux-rust is a Rust-based implementation of the Conflux protocol. It is fast and reliable.
Please follow the Conflux Documentation to install and run Conflux.
For a general overview of the crates, see Project Layout.
Thank you for considering helping out with our source code. We appreciate any contributions, even the smallest fixes. Please read the guidelines on how to submit issues and pull requests. Note that if you want to propose significant changes to the Conflux protocol, please submit a CIP.
The Minimum Supported Rust Version (MSRV) of this project is 1.86
See the doc for detailed instructions on how to build from source.
If you have modified any Rust code, please run the cargo_fmt.sh script before committing to format the code and ensure consistent code style.
Unit tests come together with the Rust code. They can be invoked via cargo test --release --all
. See the
Getting Started
page for more information.
Integration tests are Python test scripts with the _test.py
suffix in the tests
directory and in the integration_tests/tests
directory.
To run these tests:
- Setting up and activating a NEW virtual env via
source ./dev-support/activate_new_venv.sh
. This command will create a new one with Python3.11
to.venv
and activate it each time you run it. Or you can simply run.venv/bin/activate
to activate the created one. - Install the required Python packages using
bash ./dev-support/dep_pip3.sh
in the root directory. - Compile Conflux in release mode using
cargo build --release
- Compile the
consensus_bench binary
usingcd tools/consensus_bench && cargo build --release
- Fetch all submodule using
git submodule update --remote --recursive --init
.
Then, you can run all integration tests using:
python3 tests/test_all.py
for tests in thetests
directorypytest ./integration_tests/tests -vv -n 6 --dist loadscope
for tests in theintegration_tests
directory
As for running tests with coverage, please refer to Coverage.