Full node with Docker
This guide will explain how to install the
fxcored mainnet
or fxcored testnet
command line interface (CLI) on your system with Docker
option. With these installed on a server, you can participate on the mainnet or testnet as a Validator.- Pull docker images
if you do not already have docker installed, there will be a prompt for you to install it. Follow the instructions given.
Mainnet
Testnet
docker pull functionx/fx-core:3.1.0
docker pull functionx/fx-core:3.1.0
- Initializing fxcore
Mainnet
Testnet
docker run --rm -v $HOME/.fxcore:/root/.fxcore functionx/fx-core:3.1.0 init fx-zakir
docker run --rm -v $HOME/.fxcore:/root/.fxcore functionx/fx-core:3.1.0 init fx-zakir
- Download genesis (copy and run each line, line by line)
Mainnet
Testnet
wget https://raw.githubusercontent.com/FunctionX/fx-core/release/v3.1.x/public/mainnet/genesis.json -O ~/.fxcore/config/genesis.json
wget https://raw.githubusercontent.com/FunctionX/fx-core/release/v3.1.x/public/testnet/genesis.json -O ~/.fxcore/config/genesis.json
Upon startup the node will need to connect to peers. you can add peers to the
config.toml
config file:Mainnet
Testnet
docker run --rm -v $HOME/.fxcore:/root/.fxcore functionx/fx-core:3.1.0 config config.toml p2p.seeds "[email protected]e-1.functionx.io:26656,[email protected]e-2.functionx.io:26656,[email protected]unctionx.io:26656,[email protected]unctionx.io:26656,[email protected]unctionx.io:26656,[email protected]unctionx.io:26656,[email protected]unctionx.io:26656"
docker run --rm -v $HOME/.fxcore:/root/.fxcore functionx/fx-core:3.1.0 config config.toml p2p.seeds "[email protected]functionx.io:26656,[email protected]ionx.io:26656,[email protected]ionx.io:26656,[email protected]ionx.io:26656,[email protected]ionx.io:26656,[email protected]ionx.io:26656"
** IMPORTANT At this stage **BEFORE **starting the node, please download the latest snapshot, refer to this link.
And at this stage, what is important is your validator keys that is stored in a json file for you to do a recovery in the future. For more information how to access the files.
- Run docker
docker run --name fxcore -d --restart=always -p 0.0.0.0:26656:26656 -p 127.0.0.1:26657:26657 -p 127.0.0.1:1317:1317 -p 127.0.0.1:26660:26660 -p 127.0.0.1:8545:8545 -p 127.0.0.1:8546:8546 -v $HOME/.fxcore:/root/.fxcore functionx/fx-core:3.1.0 start
To check if fxcore is synced:
curl localhost:26657/status
Return:
{
"jsonrpc": "2.0",
"id": -1,
"result": {
"node_info": {
"protocol_version": {
"p2p": "8",
"block": "11",
"app": "0"
},
"id": "123868554adafd679f5dc6367bddea39aa5adb94",
"listen_addr": "tcp://0.0.0.0:26656",
"network": "fxcore",
"version": "v0.34.9",
"channels": "40202122233038606100",
"moniker": "moniker",
"other": {
"tx_index": "on",
"rpc_address": "tcp://0.0.0.0:26657"
}
},
"sync_info": {
"latest_block_hash": "239609FE5FD475389C1ACFCEF46DCF6B0343F0C04E43A7968677809C2D489F3F",
"latest_app_hash": "0D2F1299950E0DE86BFF1CDEEEDE3BA57F7899EF1492A6E6809DF3060164046D",
"latest_block_height": "810805",
"latest_block_time": "2021-09-01T07:56:29.166926257Z",
"earliest_block_hash": "12B0FB286BD34C077CACF97D3D2757B27C49E63FB81E6262399FF11A3C3C002E",
"earliest_app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"earliest_block_height": "1",
"earliest_block_time": "2021-07-12T07:42:23.292429Z",
"catching_up": false
},
"validator_info": {
"address": "214999E9412502DE8DE13F626F9D32D41C1B5015",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "fUlPjsYSLi04vwzeNiFObBVabV6TKhB6WB3c65iEayU="
},
"voting_power": "0"
}
}
To ensure that the blocks are synced up with your node, under "sync_info", "catching_up value" should be false
"catching_up value": false
. This may take a few hours and your node has to be fully synced up before proceeding to the next step. You may cross reference the latest block you are synced to "sync_info": "latest_block_height" and the latest block height of our Testnet blockchain on our Testnet blockchain explorer or our Mainnet.Make sure that every node has a uniquepriv_validator.json
. Do not copy thepriv_validator.json
from an old node to multiple new nodes. Running two nodes with the samepriv_validator.json
will cause you to double sign.
Last modified 1mo ago