Installing Required Packages and Go
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu -y
Download and install Go:
cd $HOME
ver="1.21.3"
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
Setup Humans Node
git clone https://github.com/humansdotai/humans.git
cd humans
git checkout v1.0.0
make install
Initialize the node with your moniker:
humansd init $MONIKER --chain-id humans_1089-1
Configure seeds, gas prices, and further settings for optimal performance:
sed -i -e "s|^seeds *=.*|seeds = \"f8006da7d742777eeca0194b94586c8f147be4f6@humans-mainnet-seed.itrocket.net:17656,babc3f3f7804933265ec9c40ad94f4da8e9e0017@seed.rhinostake.com:18456,0e959a22dfdd34ac16f9af82d76ec6ae5f0e8e73@135.181.75.235:10256,400f3d9e30b69e78a7fb891f60d76fa3c73f0ecc@humans.rpc.kjnodes.com:12259\"|" $HOME/.humansd/config/config.toml
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"100000000000aheart\"|" $HOME/.humansd/config/app.toml
sed -i \
-e 's|^create_empty_blocks *=.*|create_empty_blocks = false|' \
-e 's|^prometheus *=.*|prometheus = true|' \
-e 's|^create_empty_blocks_interval *=.*|create_empty_blocks_interval = "30s"|' \
-e 's|^timeout_propose *=.*|timeout_propose = "30s"|' \
-e 's|^timeout_propose_delta *=.*|timeout_propose_delta = "5s"|' \
-e 's|^timeout_prevote *=.*|timeout_prevote = "10s"|' \
-e 's|^timeout_prevote_delta *=.*|timeout_prevote_delta = "5s"|' \
-e 's|^cors_allowed_origins *=.*|cors_allowed_origins = ["*.humans.ai","*.humans.zone"]|' \
-e 's|^timeout_prevote_delta *=.*|timeout_prevote_delta = "5s"|' \
$HOME/.humansd/config/config.toml
sed -i \
-e 's|^prometheus-retention-time *=.*|prometheus-retention-time = 1000000000000|' \
-e 's|^enabled *=.*|enabled = true|' \
-e '/^\[api\]$/,/^\[/ s/enable = false/enable = true/' \
-e 's|^swagger *=.*|swagger = true|' \
-e 's|^max-open-connections *=.*|max-open-connections = 100|' \
-e 's|^rpc-read-timeout *=.*|rpc-read-timeout = 5|' \
-e 's|^rpc-write-timeout *=.*|rpc-write-timeout = 3|' \
-e 's|^rpc-max-body-bytes *=.*|rpc-max-body-bytes = 1000000|' \
-e 's|^enabled-unsafe-cors *=.*|enabled-unsafe-cors = false|' \
$HOME/.humansd/config/app.toml
Load the latest snapshot to sync your node quickly from the websites below:
https://docs.huginn.tech/mainnet-guides/snapshot/humans
https://services.kjnodes.com/mainnet/humans/snapshot/
Install and Configure Systemd
echo "[Unit]
Description=Humans
After=network.target
[Service]
User=$USER
Type=simple
ExecStart=$(which humansd) start --home /path/.humansd/ --chain-id humans_1089-1 --metrics --evm.tracer=json --minimum-gas-prices=1800000000aheart json-rpc.api eth,txpool,personal,net,debug,web3,miner --api.enable
Restart=on-failure
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target" > $HOME/humansd.service
sudo mv $HOME/humansd.service /etc/systemd/system
sudo systemctl enable humansd
sudo systemctl restart humansd
Monitor your node
sudo journalctl -u humansd -f --no-hostname -o cat
Check and Configure Ports
nano $HOME/.humansd/config/app.toml
[json-rpc]
address = "127.0.0.1:8545"
ws-address = "127.0.0.1:8546"
[api]
enable = true
swagger = false
address = "tcp://0.0.0.0:1317"
nano $HOME/.humansd/config/config.toml
[rpc]
laddr = "tcp://127.0.0.1:26657"
Use Caddy for Domain Binding
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
Configure Caddyfile for domain routing:
nano /etc/caddy/Caddyfile
:80 {
root * /usr/share/caddy
file_server
}
rpc-humans.huginn.tech {
reverse_proxy http://127.0.0.1:26657 {
header_down Access-Control-Allow-Origin *
}
}
api.humans.huginn.tech {
reverse_proxy http://127.0.0.1:1317 {
header_down Access-Control-Allow-Origin *
}
}
evm-rpc.humans.huginn.tech {
reverse_proxy http://127.0.0.1:8545 {
header_down Access-Control-Allow-Origin *
}
}
Register domains with a hosting service:
Use a service like Cloudflare to manage your domains.
Contribute to Chain Registry and Chainlist
Contribute to Cosmos chain registry: Submit a pull request to the Cosmos Chain Registry to make your endpoints accessible to everyone.
List your EVM-RPC on Chainlist: Contribute to the Chain List to include your EVM-RPC.
Last updated