Node Install
Instructions for preparation and binary set up
You will be managing three keys which will be referenced throughout this guide. These keys are the account key, the consensus key, and the ETH private key. Please keep this in mind as you proceed with the installation steps.
Installing Exocore Binary
The binary to run an Exocore node is called exocored
, which stands for Exocore daemon. The binary can be downloaded from Exocore's releases page (Option 1) or built from source (Option 2).
Option 1: Downloading the Binary
The version 1.0.5
is intended for use with the exocoretestnet_233-6
version (identified by the chain-ID) of the network.
Extract the binary and move it somewhere within$PATH
(likely /usr/bin/
). Doing so will require root
privileges.
Check that it is installed and reports the correct version.
Option 2: Compiling from Source
Detailed instructions are available here.
Firewall
Depending on the configuration, a node will listen on many ports, such as those for the API (gRPC or REST for Cosmos, HTTP / Websocket RPC for Ethereum), Prometheus, pprof, Tendermint, etc. At the bare minimum, incoming connections should be allowed on the p2p port which defaults to 26656 over TCP. Other incoming connections (barring SSH or anything else you need to connect to the server) can be blocked for increased network layer security.
Option 1: Using UFW
Option 2: Using Firewalld
Initializing the Node
Once the binary is downloaded, the node needs to be initialized before it can join the network. The initialization process requires generating the validator key (even though the node may not be a validator) and the node’s configuration files.
The validator's private key is stored in $HOMEDIR/config/priv_validator_key.json
in plaintext. It is recommended to back this key up, since it is used by the validator to sign blocks. Alternatively, passing --recover
to init
will prompt for a BIP-39 mnemonic to be entered, from which the validator key is derived. In that case, the mnemonic may be backed up instead.
The public key corresponding to the validator key can be converted to the bytes32
format for use in Solidity (you might need to install jq
).
Keyring backend
Another type of key, known as the account key (referenced as$ACCOUNT_KEY_NAME
), is used to sign transactions before they are broadcasted to the network. This key is protected by the keyring backend; it defaults to os
which is not well suited for headless systems. It is recommended to change it to either file
(which will use a password to protect the keys) or pass
(which will use pass). Refer to the Cosmos SDK documentation for more details.
Add an Account
You can generate a new key for use with the network, or recover an existing one with the --recover
option. This key will be linked to an account, which is used to sign transactions on the network. All account addresses on Exocore begin with "exo1," indicating they're part of Exocore.
Ensure you back up the mnemonic phrase in a safe place.
Seeds
All nodes connect to seed nodes so that they can find their peers. Open the $HOMEDIR/config/config.toml
file to find the seeds
line and edit it to match the following:
Other configuration
Changes in $HOMEDIR/config/config.toml
and $HOMEDIR/config/app.toml
may be made to activate and deactivate RPC servers or other features. For all nodes including validators, it is recommend to set at least minimum-gas-prices = "0.0001hua"
in app.toml
. For validators specifically, setting grpc.enable = true
in app.toml
is necessary to communicate with the price feeder.
Last updated