Operating Instructions ​
Types of Nodes ​
Xian Network has 3 types of nodes
Validator Nodes
- Validators are responsible for creating & validating blocks.
- A block is considered valid when 75% of validators vote for a block.
Full Nodes
- Full nodes keep a copy of the entire history & state of the blockchain.
- They are a key component to keeping the network healthy.
Blockchain Data Service Nodes
Blockchain Data Service (BDS
) nodes improve developer experience by providing :
- Rich data & querying via REST & Websocket interfaces
- Stamp estimation, allowing a dAPP to know how many
stamps
a transaction will cost before submitting it to the network. - A Validator cannot also be a
BDS
- Xian provides access to service nodes free of charge, although this service may be limited in the future, depending on use.
Recommended Server Specs ​
Server Specs
These specs are subject to change depending on network growth & use.
Node Type | RAM | SSD | CPU |
---|---|---|---|
Validator / Full Node | 8GB | 256GB | 4 Cores |
BDS | 8GB | 512GB | 4 Cores |
- OS : Ubuntu 24.02
- Architecture : Intel / AMD x86
Generate a wallet ​
- Create a wallet using the browser wallet
- Export the private key
- Click
Settings
- Click
Export Private Key
- Click
Install prerequisites ​
- Install make
bash
sudo apt update
sudo apt install make
- Install Docker
bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
rm get-docker.sh
Install Xian & Configure Node ​
Install ​
bash
git clone https://github.com/xian-network/xian-stack.git
cd xian-stack
make setup CORE_BRANCH=<branch-name> CONTRACTING_BRANCH=<branch-name>
# for RCNet, use `make setup CORE_BRANCH=rcnet CONTRACTING_BRANCH=rcnet`
# for Testnet, use `make setup CORE_BRANCH=devnet CONTRACTING_BRANCH=devnet`
Build ​
- For a Validator / Regular Full-Node
bash
make core-build
make core-up
make init
make configure CONFIGURE_ARGS='--moniker <your-moniker> --genesis-file-name genesis-rcnet.json --validator-privkey <priv-key> --seed-node 188.68.33.32 --copy-genesis'
- For a Blockchain Data Service Node
bash
make core-bds-build
make core-bds-up
make init
make configure CONFIGURE_ARGS='--moniker <your-moniker> --genesis-file-name genesis-rcnet.json --validator-privkey <priv-key> --seed-node 188.68.33.32 --copy-genesis --service-node'
Starting the Validator Node ​
- Headless Mode
bash
make up
- Interactive Shell
bash
make core-shell
make up
Starting the Full Node / BDS ​
- Headless Mode
bash
make up
- Interactive Shell
bash
make core-bds-shell
make up-bds
- When finished
bash
exit
Viewing Logs ​
bash
make core-shell
pm2 logs
- When finished
bash
exit
Stopping the node ​
- Headless mode
bash
make down
- From Container Shell
bash
make down
Shutting down the node container ​
- Needed if rebuilding the container
bash
make core-down
# or
make core-bds-down
Running tests & developing on xian-core ​
Install xian-stack
as per the instructions above.
sh
# Build the dev environment
make core-dev-build
make core-dev-shell
# from the development container
pytest tests/
# when finished, exit the container
exit
# shut down the container
make core-dev-down