Skip to content

shangchenglumetro/conflux-rust

 
 

Repository files navigation

Conflux-Rust

Conflux-rust is a Rust-based implementation of the Conflux protocol. It is fast and reliable.

For Users

Please follow the Conflux Documentation to install and run Conflux.

For Developers

For a general overview of the crates, see Project Layout.

Contribution

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.

Building

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

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

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:

  1. Setting up and activating a NEW virtual env via source ./dev-support/activate_new_venv.sh. This command will create a new one with Python 3.11 to .venv and activate it each time you run it. Or you can simply run .venv/bin/activate to activate the created one.
  2. Install the required Python packages using bash ./dev-support/dep_pip3.sh in the root directory.
  3. Compile Conflux in release mode using cargo build --release
  4. Compile the consensus_bench binary using cd tools/consensus_bench && cargo build --release
  5. 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 the tests directory
  • pytest ./integration_tests/tests -vv -n 6 --dist loadscope for tests in the integration_tests directory

As for running tests with coverage, please refer to Coverage.

Resources

License

GNU General Public License v3.0

About

The official Rust implementation of Conflux protocol. https://doc.confluxnetwork.org

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 84.4%
  • Python 13.3%
  • C++ 1.4%
  • Solidity 0.7%
  • C 0.1%
  • Shell 0.1%