Actions

Cronos Validator Deployment: Difference between revisions

From Chainlink Community Wiki

(Created page with "Deploy Cronos Testnet Full node. There are different binaries required to get the full node synced from genesis. cronosd-v0.6.0-testnet cronosd-v0.7.0-rc1-testnet cronosd-v0.7.0-rc2-testnet cronosd-v0.7.0-rc3-testnet cronosd-v0.7.0-testnet I’ve downloaded, extracted, renamed and moved the binaries for the sake of tracking. For example: <code>tree ~/binaries/</code> <pre style="white-space:pre-wrap; width:100%; border:1px solid lightgrey; background:black; color:w...")
 
No edit summary
Line 3: Line 3:
There are different binaries required to get the full node synced from genesis.
There are different binaries required to get the full node synced from genesis.


cronosd-v0.6.0-testnet
[https://github.com/crypto-org-chain/cronos/releases/download/v0.6.0-testnet/cronos_0.6.0-testnet_Darwin_x86_64.tar.gz cronosd-v0.6.0-testnet]
cronosd-v0.7.0-rc1-testnet
cronosd-v0.7.0-rc2-testnet
cronosd-v0.7.0-rc3-testnet
cronosd-v0.7.0-testnet


I’ve downloaded, extracted, renamed and moved the binaries for the sake of tracking.
[https://github.com/crypto-org-chain/cronos/releases/download/v0.7.0-rc1/cronos_0.7.0-rc1-testnet_Linux_x86_64.tar.gz cronosd-v0.7.0-rc1-testnet]
 
[https://github.com/crypto-org-chain/cronos/releases/download/v0.7.0-rc2/cronos_0.7.0-rc2-testnet_Linux_x86_64.tar.gz cronosd-v0.7.0-rc2-testnet]
 
[https://github.com/crypto-org-chain/cronos/releases/download/v0.7.0-rc3/cronos_0.7.0-rc3-testnet_Linux_x86_64.tar.gz cronosd-v0.7.0-rc3-testnet]
 
[https://github.com/crypto-org-chain/cronos/releases/download/v0.7.0/cronos_0.7.0-testnet_Linux_x86_64.tar.gz cronosd-v0.7.0-testnet]
 
 
To make it easier to track, I suggest creating a directory structure to track all of the necessary binaries.


For example:
For example:
Line 38: Line 43:
<code>./binaries/cronosd-v0.6.0-testnet init $NODE_NAME --chain-id cronostestnet_338-3</code>
<code>./binaries/cronosd-v0.6.0-testnet init $NODE_NAME --chain-id cronostestnet_338-3</code>


Then, with the ~/.cronos directory we generated with the initialization function, we will then copy each of the binaries into the working directory (~/.cronos/bin)
Then, with the ~/.cronos directory we generated from the initialization function, we will then copy each of the binaries into the working directory (~/.cronos/bin)
For example:
For example:


Line 63: Line 68:




Once we have all of the binary versions copied into ~/.cronos/bin/, we’ll go ahead download the necessary genesis.json.
Once we have all of the binary versions copied into ~/.cronos/bin/, we’ll go ahead download and replace the necessary genesis.json.


curl https://raw.githubusercontent.com/crypto-org-chain/cronos-testnets/main/cronostestnet_338-3/genesis.json > ~/.cronos/config/genesis.json
curl https://raw.githubusercontent.com/crypto-org-chain/cronos-testnets/main/cronostestnet_338-3/genesis.json > ~/.cronos/config/genesis.json
Line 70: Line 75:
With our genesis file downloaded, we can verify it’s correctness via checksum
With our genesis file downloaded, we can verify it’s correctness via checksum


<code>if [[ $(sha256sum ~/.cronos/config/genesis.json | awk '{print $1}') = "7d898ad75b3e2e1fa182d928ca10a284c1dd252e12d17ad6dab76551b29d1a59" ]]; then echo "OK"; else echo "MISMATCHED"; fi;</code>
If the checksums match, then the command output will be <code>OK</code>.
If it does not match, then the command output will be <code>MISMATCHED</code>


And then we’ll need to make some adjustments to your app.toml file
And then we’ll need to make some adjustments to your app.toml file

Revision as of 20:09, 11 July 2022

Deploy Cronos Testnet Full node.

There are different binaries required to get the full node synced from genesis.

cronosd-v0.6.0-testnet

cronosd-v0.7.0-rc1-testnet

cronosd-v0.7.0-rc2-testnet

cronosd-v0.7.0-rc3-testnet

cronosd-v0.7.0-testnet


To make it easier to track, I suggest creating a directory structure to track all of the necessary binaries.

For example:

tree ~/binaries/

binaries/
├── cronosd-v0.6.0-testnet
├── cronosd-v0.7.0-rc1-testnet
├── cronosd-v0.7.0-rc2-testnet
├── cronosd-v0.7.0-rc3-testnet
├── cronosd-v0.7.0-testnet
└── tarballs
    ├── 0.6.0-testnet
    │   └── cronos_0.6.0-testnet_Linux_x86_64.tar.gz
    ├── 0.7.0-rc1-testnet
    │   ├── app.toml
    │   └── cronos_0.7.0-rc1-testnet_Linux_x86_64.tar.gz
    ├── 0.7.0-rc2-testnet
    │   └── cronos_0.7.0-rc2-testnet_Linux_x86_64.tar.gz
    └── 0.7.0-rc3-testnet
        └── cronos_0.7.0-rc3-testnet_Linux_x86_64.tar.gz

Once we’ve downloaded all of the necessary binaries, we can initialize our node. (assuming your deployment is identical)

./binaries/cronosd-v0.6.0-testnet init $NODE_NAME --chain-id cronostestnet_338-3

Then, with the ~/.cronos directory we generated from the initialization function, we will then copy each of the binaries into the working directory (~/.cronos/bin) For example:

tree ~/.cronos/

/home/devtrace/.cronos/
├── bin
│   ├── cronosd-v0.6.0-testnet
│   ├── cronosd-v0.7.0-rc1-testnet
│   ├── cronosd-v0.7.0-rc2-testnet
│   ├── cronosd-v0.7.0-rc3-testnet
│   └── cronosd-v0.7.0-testnet
├── config
│   ├── app.toml
│   ├── client.toml
│   ├── config.toml
│   ├── genesis.json
│   ├── node_key.json
│   └── priv_validator_key.json
└── data
    └── priv_validator_state.json


Once we have all of the binary versions copied into ~/.cronos/bin/, we’ll go ahead download and replace the necessary genesis.json.

curl https://raw.githubusercontent.com/crypto-org-chain/cronos-testnets/main/cronostestnet_338-3/genesis.json > ~/.cronos/config/genesis.json


With our genesis file downloaded, we can verify it’s correctness via checksum

if awk '{print $1}') = "7d898ad75b3e2e1fa182d928ca10a284c1dd252e12d17ad6dab76551b29d1a59" ; then echo "OK"; else echo "MISMATCHED"; fi;

If the checksums match, then the command output will be OK. If it does not match, then the command output will be MISMATCHED

And then we’ll need to make some adjustments to your app.toml file sed -i.bak -E 's#^(minimum-gas-pricesspace:+=space:+).*$#\1"5000000000000basetcro"#' ~/.cronos/config/app.toml

As well as our config.toml sed -i.bak -E 's#^(persistent_peersspace:+=space:+).*$#\1"8fcba3485c67a2a00a383b6f45660a4ac529c6ca@52.77.30.18:26656,e65199bc579ffd89d7c021c5611f9f1c97f7ff13@54.251.209.254:26656"#' ~/.cronos/config/config.toml

sed -i.bak -E 's#^(create_empty_blocks_intervalspace:+=space:+).*$#\1"5s"#' ~/.cronos/config/config.toml

sed -i.bak -E 's#^(timeout_commitspace:+=space:+).*$#\1"5s"#' ~/.cronos/config/config.toml


Lastly, we will create the cronosd service.

sudo nano /etc/systemd/system/cronosd.service

[Unit]
Description=cronosd
After=network.target auditd.service
Wants=network.target

[Service]
Type=simple
User=$YOUR_USERNAME
WorkingDirectory=/home/$YOUR_USERNAME/.cronos
ExecStart=/home/$YOUR_USERNAME/.cronos/bin/cronosd-v0.6.0-testnet start --home /home/$YOUR_USERNAME/.cronos
#ExecStart=/home/$YOUR_USERNAME/.cronos/bin/cronosd-v0.7.0-rc1-testnet start --home /home/$YOUR_USERNAME/.cronos
#ExecStart=/home/de$YOUR_USERNAMEvtrace/.cronos/bin/cronosd-v0.7.0-rc2-testnet start --home /home/$YOUR_USERNAME/.cronos
#ExecStart=/home/$YOUR_USERNAME/.cronos/bin/cronosd-v0.7.0-rc3-testnet start --home /home/$YOUR_USERNAME/.cronos
#ExecStart=/home/$YOUR_USERNAME/.cronos/bin/cronosd-v0.7.0-testnet start --home /home/$YOUR_USERNAME/.cronos
Restart=on-failure
RestartSec=10
LimitNOFILE=50000

[Install]
WantedBy=multi-user.target

With all of the above completed, the final step before the easy stuff is to make some changes to ~/.cronos/config/config.toml.