-
Notifications
You must be signed in to change notification settings - Fork 0
Run a ChainX node
The ChainX mainnet has been up and running since May 25, 2019.
Useful links:
- online wallet: https://wallet.chainx.org
- Blockchain explorer: https://scan.chainx.org
- Telemetry: https://stats.chainx.org/#/ChainX and https://telemetry.polkadot.io/#list/ChainX
Currently ChainX is not open source yet. You have two ways to get the ChainX program at present:
- the released binary at https://github.com/chainx-org/ChainX/releases/tag/v1.0.0
- using docker(WIP)
It's highly recommended to use a JSON as the chainx
configuration file by passing --config
. It is not secure to pass arguments from the command line directly, especially for the --key
option.
See all the FLAGS
and OPTIONS
via chainx --help
.
config.json
:
{
"log": "info,runtime=info", // log level, set to "info,runtime=warn" if you don't want the runtime logging
"name": "<Your-Node-Name>", // name displayed at https://stats.chainx.org/#/ChainX and https://telemetry.polkadot.io/#list/ChainX
"port": 20222, // p2p port
"ws-port": 8087, // Websocket port
"rpc-port": 8086, // RPC port
"rpc-external": true, // accessible by external
"ws-external": true, // accessible by external
"base-path": "<Your-DB-Path>", // where is the DB stored
"other-execution": "NativeElseWasm",
"syncing-execution": "NativeElseWasm",
"block-construction-execution": "NativeElseWasm",
"importing-execution": "NativeElseWasm",
"bootnodes": [
]
}
Run a syncing node given the above config:
./chainx --config=$(pwd)/config.json
Then you could see your node at https://stats.chainx.org/#/ChainX and https://telemetry.polkadot.io/#list/ChainX .
Before running a validator node, you ought to make sure the syncing node is fully synced.
Every validator has two keys:
-
validator_key
: key of your node account. -
session_key
: key for block authoring, you can update it as you wish.
To generate a session_key
by creating a keystore interactively:
$ ./chainx --keystore-path=<keystore-path> -i --base-path=<DB-path>
Password:
Repeat again:
......
2019-05-15 11:26:50.510 INFO Roles: FULL
######### This indicates that you have generated the keystore successfully.
2019-05-15 11:26:50.514 INFO Generated a new keypair for keystore: 593a11d6d5930ab2e68fa5d07082ba0102fc7740eee38b79b2793d7d34a2442a (5E5hNNEi...)
......
2019-05-15 11:26:50.610 INFO [runtime|xrml_xdex_spot] [add_trading_pair] currency_pair: CurrencyPair: SDOT/PCX, point_precision: 4, tick_precision: 2, price: 100000, online: true
########## You can stop the process by <Ctrl-C> when you see this line.
2019-05-15 11:26:50.624 INFO Initializing Genesis block/state (state: 0x9499…b6c3, header-hash: 0xdb82…e55d)
....
Ensure you have saved these information:
keystore-path
base-path
- The password you just inputed.
Now, you need to add validator
and validator-name
options to run as a validator node.
{
"validator": true, // true for validator mode
"validator-name": "Your-Validator-Name", // name used when registering your node in https://wallet.chainx.org
"name": "Your-Node-Name", // any nickname displayed at https://stats.chainx.org/#/ChainX and https://telemetry.polkadot.io/#list/ChainX
"rpc-external": false, // false is recommended for validator node
"ws-external": false, // false is recommended for validator node
"log": "info,runtime=info",
"port": 20222,
"ws-port": 8087,
"rpc-port": 8086,
"other-execution": "NativeElseWasm",
"syncing-execution": "NativeElseWasm",
"block-construction-execution": "NativeElseWasm",
"base-path": "<DB-path in the last step>",
"keystore-path": "<keystore-path in the last step>",
"keystore-password": "<password you inputed in the latest step>",
"bootnodes": []
}
Notes:
-
name
: this can be anything you like, used to be displayed in the telemetry only. -
validator-name
: this is the name you used when registering a node from https://wallet.chainx.org
./chainx --config=$(pwd)/config.json
From ChainX
中文 | English