Kagome - C++20 implementation of Polkadot Host
KAGOME is a Polkadot Host (former Polkadot Runtime Environment) developed by Quadrivim and funded by a Web3 Foundation grant and Treasury proposals ( 1, 2).
More details of KAGOME development can be found within the supported features section and in projects board
If you are using a Debian Linux system, the following command allows you to build KAGOME:
git clone https://github.com/qdrvm/kagome
cd kagome
sudo chmod +x scripts/init.sh scripts/build.sh
sudo ./scripts/init.sh
./scripts/build.sh
You will get KAGOME binary in the build/node/
folder
Other make commands are:
make docker
make command args="gcc --version"
make release
make release_docker
make debug_docker
make clear
In order to avoid syncing from scratch we are maintaining the most recent snapshot of Polkadot network for KAGOME node available for anyone here: https://drive.google.com/drive/folders/1pAZ1ongWB3_zVPKXvgOo-4aBB7ybmKy5?usp=sharing
After downloading the snapshot you can extract it in the folder where the node will be running:
unzip polkadot-node-1.zip
You can synchronize with Polkadot using KAGOME and obtain an archive node that can be used to query the Polkadot network at any state.
To launch KAGOME Polkadot syncing node execute:
cd examples/polkadot/
PATH=$PATH:../../build/node/
kagome --chain polkadot.json --base-path polkadot-node-1
Note: If you start KAGOME for the first time, you can add the
--sync Fast
flag to synchronize using Fast sync
After this command KAGOME will connect with other nodes in the network and start importing blocks. You may play with your local node using polkadot js apps: https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer
You will also be able to see your node on https://telemetry.polkadot.io/. If you need to identify it more easily you can add --name <node-name>
flag to node's execution command and find your node in telemetry by typing its name.
Run kagome --help
to explore other CLI flags.
The easiest way to get started with KAGOME is to run it in development mode, which is a single node network:
kagome --dev
That executes node with default accounts Alice and Bob. You can read about these accounts here.
To launch with wiping existing data you can do:
kagome --dev-with-wipe
To start the KAGOME validator:
cd examples/first_kagome_chain
PATH=$PATH:../../build/node/
kagome --validator --chain localchain.json --base-path base_path
This command executes a KAGOME full node with an authority role.
Read this tutorial
To run a KAGOME node, you need to provide it with a genesis config, cryptographic keys, and a place to store db files.
examples/first_kagome_chain/localchain.json
examples/first_kagome_chain/base_path
kagome
executable (mind that start with authority role requires keys to start).Please refer to the Contributor Documentation.
You can find more information about the components by checking reference documentation. Check out tutorials and more examples in official documentation: https://kagome.readthedocs.io/