The following are necessary to build chihuahua from source.
# update the local package list and install any available upgrades
sudo apt-get update && sudo apt upgrade -y
# install toolchain and ensure accurate time synchronization
sudo apt-get install make build-essential gcc git jq chrony -y
Follow the instructions here to install Go.
Alternatively, for Ubuntu LTS, you can do:
wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz
Unless you want to configure in a non standard way, then set these in the .profile
in the user's home (i.e. ~/
) folder.
cat <<EOF >> ~/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source ~/.profile
go version
Output should be: go version go1.17.5 linux/amd64
git clone https://github.com/ChihuahuaChain/chihuahua.git
cd chihuahua
make install
Note: there is no tag to build off of, just use master for now
chihuahuad init $MONIKER_NAME --chain-id chihuahua-1
wget -O ~/.chihuahua/config/genesis.json https://raw.githubusercontent.com/ChihuahuaChain/mainnet/main/genesis.json
seeds="4936e377b4d4f17048f8961838a5035a4d21240c@chihuahua-seed-01.mercury-nodes.net:29540"
peers="[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:29538,[email protected]:30758,[email protected]:26656,[email protected]:26656"
sed -i.bak -e "s/^seeds *=.*/seeds = \"$seeds\"/; s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" ~/.chihuahua/config/config.toml
Due to the high number of transactions on the chain in order to save some hard disk space you might want to tweak pruning and indexing as follows
- Replace 'kv' to 'null' on ~/.chihuahua/config.toml
indexer = "null"
- Set pruning as follows on ~/.chihuahua/app.toml
pruning = "custom"
# These are applied if and only if the pruning strategy is custom.
pruning-keep-recent = "5000"
pruning-keep-every = "0"
pruning-interval = "10"
NOTE: If your node was already active before pruning tweaks you will need to resync from scratch again, if you only turned off the indexing you can simply restart your node and erase ~/.chihuahua/data/tx_index.db folder.
# To create new keypair - make sure you save the mnemonics!
chihuahuad keys add <key-name>
# Restore existing odin wallet with mnemonic seed phrase.
# You will be prompted to enter mnemonic seed.
chihuahuad keys add <key-name> --recover
Note that proposal #1 agrees that all validators set commission to at least 5%!
chihuahuad tx staking create-validator \
--from "<key-name>" \
--amount "10000000uhuahua" \
--pubkey "$(chihuahuad tendermint show-validator)" \
--chain-id "chihuahua-1" \
--moniker "<moniker>" \
--commission-max-change-rate 0.01 \
--commission-max-rate 0.20 \
--commission-rate 0.10 \
--min-self-delegation 1 \
--details "<details>" \
--security-contact "<contact>" \
--website "<website>" \
--gas-prices "0.025uhuahua"
priv_validator_key.json
chihuahuad add-genesis-account <key-name> 5000001000000uhuahua
Note: if you receive message: failed to get address from Keybase:
, add --keyring-backend os
chihuahuad gentx <key-name> 5000000000000uhuahua \
--chain-id chihuahua-1 \
--moniker="<moniker>" \
--commission-max-change-rate=0.01 \
--commission-max-rate=0.20 \
--commission-rate=0.05 \
--details="XXXXXXXX" \
--security-contact="XXXXXXXX" \
--website="XXXXXXXX"
- Copy the contents of ${HOME}/.chihuahua/config/gentx/gentx-XXXXXXXX.json.
- Fork the repository
- Create a file gentx-{{VALIDATOR_NAME}}.json under the /gentxs folder in the forked repo, paste the copied text into the file.
- Create a Pull Request to the main branch of the repository
priv_validator_key.json