Practical overview
When it fits
Use ChainXim when an experiment needs a large simulated blockchain network without deploying each node on separate machines, or when comparing protocol behavior under varied propagation and attack conditions.
Who it is for
- Blockchain developers prototyping applications against simulated networks
- Researchers comparing consensus protocols or network models
- Teams evaluating simulated blockchain performance and robustness
Documented uses
- Compare consensus behavior across network configurations.
- Measure throughput, fork rate and chain quality after a simulation.
- Model attacker behavior to examine blockchain robustness and consensus security properties.
- Develop or extend simulation scenarios with modular consensus and network components.
Requirements & limits
The project is available as a public GitHub repository. Repository metadata does not specify a license.
- The documented setup uses Anaconda, conda, Python 3.10, python-graphviz and dependencies installed from requirements.txt.
- Its simulation architecture separates consensus, network and attack components, with extension points for new consensus and network models.
- The documented beginner example runs from the command line and uses a 10-node topology with selfish mining.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up ChainXim with Python 3.10
Prepare the documented conda environment and install the project dependencies.
Before you start
- Anaconda
- The ChainXim repository cloned or downloaded
Steps
Create and activate a conda environment with Python 3.10 and python-graphviz.
From the project directory, install dependencies with pip install -r requirements.txt.
Expected outcome
A conda environment with the documented Python version and project requirements installed.
Guide limitations
- These steps cover environment setup only; they do not verify that the simulator runs on a particular machine.
Run the documented 10-node selfish-mining example
Start the README's example simulation after completing environment setup.
Before you start
- ChainXim downloaded or cloned
- The documented conda environment activated
Steps
Open a terminal in the ChainXim root directory.
Run python main.py --total_round 3000 --miner_num 10 --average_block_time 400 --network_type network.TopologyNetwork --attack_type SelfishMining --blocksize 8 --no_compact_outputfile --show_label.
Expected outcome
The documented example starts a 10-node simulation with selfish-mining attackers for 3,000 rounds and displays simulation parameters and progress.
Guide limitations
- The README example demonstrates one configuration; results depend on the chosen simulation parameters.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 17 October 2026
- Original website title
- ChainXim-Team/ChainXim · Official homepage title · retained in its source language

