Monitor and analyze the emergent behaviors of Bitcoin networks.
- Launch a bitcoin network with a specified number of nodes connected to each other according to a network topology.
- Run scenarios of network behavior across the network which can be programmed using the Bitcoin Core functional test_framework language.
- Collect and search data from nodes including log files and p2p messages.
- Monitor and visualize performance data from Bitcoin nodes.
- Connect to a large network running in a remote cluster, or a smaller network running locally.
- Add a Lightning Network with its own channel topology and payment activity.
- Design
- Installation
- CLI Commands
- Network configuration with yaml files
- Plugins
- Scenarios
- Monitoring
- Snapshots
- Connecting to local nodes outside the cluster
- Scaling
- Contributing
python3 -m venv .venv
source ./venv/bin/activate
pip install warnet
Warnet will ask which back end you want to use, check that it is working, and install additional client tools into the virtual environment.
warnet setup
Warnet will create a new folder structure containing standard scenario and plugin files, and prompt for details about a network topology to create. Topology details include number of Bitcoin nodes, which release versions or custom images to deploy and how many random graph connections to start each node with.
warnet new /my/work/stuff/projectname
warnet deploy /my/work/stuff/projectname/networks/networkname
For example, you can start mining blocks...
warnet run /my/work/stuff/projectname/scenarios/miner_std.py
... and then observe network connectivity and statistics in your browser:
warnet dashboard
warnet down
Read the docs and learn how to write your own scenarios
or add plugins to your network. Configure individual nodes
in the network by editing the network.yaml
file or configure
defaults for all nodes in the network by editing node-defaults.yaml
. Once
your network is running use Warnet CLI commands to interact with it.