Mainnet
The procedure for joining an existing mainnet is described in this document.
Prerequisite Readings
Mainnet
The genesis file and seeds must be set. Check browse our mainnet repo if you want additional details about previous networks. All Mainnet Chain IDs are listed in the table below. Keep in mind that if there is an active Software Upgrade proposal on chain, the version that is displayed may change.
Chain ID | Description | Site | Version | Status |
---|---|---|---|---|
humans_1089-1 | Humans.ai Mainnet 1 | Humans.ai | v1.0.0 | Live |
IMPORTANT: Please make sure to abide by any security recommandations if you join mainnet as a validator.
Server Timezone Configuration
Make sure UTC is set as your server's timezone configuration.
The timedatectl
command can be used to find out what time zone you are currently in.
🚨 DANGER: A LastResultsHash
mismatch problem could result from a different timezone configuration.
Your node will be taken down by this!
Install humansd
To install the humansd
binary, refer to the installation guide.
Make sure you have the right version of humansd
installed.
Save Chain ID
We advise adding the mainnet chain-id
to your humansd
client.toml
file.
As a result, you won't need to manually enter the chain-id
flag for each CLI command.
For more information, see to the Official Chain IDs.
humansd config chain-id humans_1089-1
Initialize Node
To produce all the required validator and node configuration files, we must initialize the node:
humansd init <your_custom_moniker> --chain-id humans_1089-1
Only ASCII characters are allowed in monikers. Your node won't be reachable if you use Unicode characters.
The init
command by default creates the config/
and data/
subfolders in your /.humansd
(i.e. $HOME
) directory.
app.toml
and config.toml
are the two configuration-related files of greatest importance in the subfolder config
.
Genesis & Seeds
Copy the Genesis File
genesis.json
can be downloaded from Github
and copied to the config
directory at ~/.humansd/config/genesis.json
. The chain-id and account balances for the Genesis accounts are included in this file.
wget https://github.com/humansdotai/mainnet/blob/main/mainnet/1/genesis_1089-1.json
mv genesis.json ~/.humansd/config/
Then check the genesis configuration file's accuracy:
humansd validate-genesis
Add Seed Nodes
The ability to locate peers is a requirement for your node. You must add healthy seed nodes to $HOME/.humansd/config/config.toml
. Links to various seed nodes can be found in the repository for mainnet.
Change the seeds and the config.toml
file under /.humansd/config/config.toml
to the following:
#######################################################
### P2P Configuration Options ###
#######################################################
[p2p]
# ...
# Comma separated list of seed nodes to connect to
seeds = "<node-id>@<ip>:<p2p port>"
You can use the following code to get seeds from the repo and add it to your config:
SEEDS=`curl -sL https://raw.githubusercontent.com/humansdotai/mainnet/main/humans_1089-1/seeds.txt | awk '{print $1}' | paste -s -d, -`
sed -i.bak -e "s/^seeds =.*/seeds = \"$SEEDS\"/" ~/.humansd/config/config.toml
For more information on seeds and peers, you can the Tendermint P2P documentation.
Add Persistent Peers
The peers that your node will maintain persistent connections with can be specified by setting the 'persistent_peers' field in /.humansd/config/config.toml
.
Run a Mainnet Validator
Follow the validator these instructions for more information on how to run your validator.
humansd tx staking create-validator \
--amount=1000000000000aheart \
--pubkey=$(humansd tendermint show-validator) \
--moniker="HumansValidator" \
--chain-id=<chain_id> \
--commission-rate="0.05" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="auto" \
--gas-prices="0.025aheart" \
--from=<key_name>
🚨 DANGER:NEVER use a test
keying backend to generate validator keys. By making your money remotely accessible via the eth_sendTransaction
JSON-RPC interface, doing so could lead to a loss of funds.
Reference: Security Advisory: Insecurely configured geth can make funds remotely accessible
Start mainnet
The nodes must be started as the last step. The node will begin generating blocks as soon as the genesis validators have enough voting power (+2/3) to start producing blocks.
humansd start
Share your Peer
You can post about your peer in the #find-peers
channel in the Humans.ai Discord.
To get your Node ID use
humansd tendermint show-node-id
State Syncing a Node
Check out our State Sync page if you wish to quickly join the network using State Sync (not suitable for archive nodes, though).