Cronos EVM Docs
  • Getting Started
    • Getting Started
    • Background
    • Architecture
    • Cronos roadmap
  • FOR USERS
    • 💳Crypto.com Card Top Up
    • 🔥Crypto Wallets
    • 🦊MetaMask Configuration
    • 🦁Brave Wallet
    • 🌉Bridges
      • From the Crypto.com App and Exchange
        • From the Crypto.com App
        • From the Crypto.com Exchange
      • IBC (Cronos POS Chain, other Cosmos chains)
        • Cronos Bridge Web App
      • Independent bridges
      • FAQs for Bridge transfers
      • FAQs for transactions from/to centralized exchanges
    • 🚰Testnet Faucet
    • 💡Tips & FAQs
    • 👮Key Principles for Wallet Security
    • GasTracker
  • FOR DAPP DEVELOPERS
    • 💡Founder FAQs
    • 🏅Hacker's Getting Started Resources
    • 📃Smart Contracts
      • Contract Development on Testnet
      • Contract Deployment and Verification
      • Contract Verification Export: Cronoscan To Cronos Explorer
      • Best Practices
      • Token Contract Addresses
    • 💻dApp Creation
      • Free and commercial RPC endpoints
      • Wallet integrations
      • Web3-wallet
      • JSON-RPC methods
      • Address Conversion
      • Swagger Playground
    • ⚙️Dev Tools & Integrations
      • All dev tools & integrations
      • Account Abstraction
      • Band Protocol
      • Banxa
      • GoldRush
      • Cronos Safe
      • Flair
      • Google Bigquery
      • Moralis
      • Pyth
      • Secret Network
      • SubQuery
      • Witnet
    • Crypto.com AI Agent SDK
  • FOR NODE HOSTS
    • Running nodes
      • Cronos Mainnet
        • Quicksync
        • State-sync
        • Public Node Sync
        • KSYNC
        • The "Huygen" upgrade guide (v0.6.* to v0.7.*)
        • The "v0.7.0-hotfix" upgrade guide (v0.7.* to v0.8.*)
        • The "Galileo" upgrade guide (v0.8.* to v1.0.*)
        • The "Titan" upgrade guide (v1.0.* to v1.1.0)
        • The "v1.2" upgrade guide (v1.1.* to v1.2.0)
        • The "v1.3" upgrade guide (v1.2.* to v1.3.0)
        • The "v1.4" Pallene upgrade guide (v1.3.* to v1.4.1)
        • Patching Unlucky & Duplicate Tx
      • Cronos Testnet
      • Devnet
      • Best Practices
      • Cronosd build with Nix
      • VersionDB
      • MemIAVL
      • Local State Sync
    • Cronosd
  • CRONOS PLAY
    • Introduction
    • Unity Engine
      • Current Version
      • Legacy Version
        • EVM
        • Login Example
        • Custom RPC
        • ERC20
        • ERC721
        • ERC1155
      • Useful Links
    • Unreal Engine
      • Installation and Enabling
      • Working with Blueprint
        • Actors and Blueprint Classes
        • Cronos Configuration
        • Connect Defi Desktop/Onchain Wallet with URI
        • Connect Wallets with QR Code
        • Connect WalletConnect Step by Step
        • WalletConnect 2.0 and Unreal Engine 5: Hello World Example
        • Wallet
        • ERC20
        • ERC721
        • ERC1155
        • Broadcast Transactions
        • Get Tokens or Transactions
      • Working with C++
        • Creating a C++ Project
        • Creating a child DefiWalletCoreActor
        • Querying a contract
        • Customizing Network
      • Demo
    • Cronos Play C++ SDK
    • Crypto.com Pay Integration
    • Cronos Play FAQ
  • Block Explorers
    • Block Explorer and API Keys
    • Cronos Explorer
    • Cronoscan
  • CRONOS CHAIN PROTOCOL
    • Chain ID and Address Format
    • Cronos General FAQ
    • Genesis
    • Modules
      • module_bank
      • module_distribution
      • module_slashing
      • module_feemarket
    • Chain Details
      • List of parameters
      • Technical glossary
      • Protocol Documentation
    • Common IBC Commands
  • Cronos zkEVM
    • Cronos zkEVM
  • Resources
    • Media / brand kit
Powered by GitBook
On this page
  • Step 0 - Don't panic
  • Backups
  • Step 1 - Get the v1.0.2 binary
  • Step 1.1 - Verify the version
  • Step 1.2 - Update app.toml
  • Step 2. - Run everything

Was this helpful?

Edit on GitHub
  1. FOR NODE HOSTS
  2. Running nodes
  3. Cronos Mainnet

The "Galileo" upgrade guide (v0.8.* to v1.0.*)

PreviousThe "v0.7.0-hotfix" upgrade guide (v0.7.* to v0.8.*)NextThe "Titan" upgrade guide (v1.0.* to v1.1.0)

Last updated 1 year ago

Was this helpful?

Step 0 - Don't panic

At the point of the proposed upgrade, user will see the error message on the cronosd similar to the below:

ERR UPGRADE "v1.0.2" NEEDED at height: 6542800: {\"binaries\":{...."}}

Don't panic - The Chain will be paused to allow the majority of validators to upgrade. Validators and full node hosts will have to upgrade your Cronos nodes to the latest release binary.

Backups

Before the upgrade, node hosts are encouraged to take a complete data backup. backup depends heavily on infrastructure, but generally, we can do this by backing up the .cronos directory.

It is critically important for validator operators to back-up the .cronos/data/priv_validator_state.json file after stopping the cronosd process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing if the upgrade fails and the previous chain needs to be restarted.

Step 1 - Get the v1.0.2 binary

To simplify the following step, we will be using Linux-x86 for illustration. Binary for Mac Windows with different DB and architecture are also available .

  • Terminate the cronosd; afterwards, download the 1.0.2 released binaries from github:

    $ curl -LOJ https://github.com/crypto-org-chain/cronos/releases/download/v1.0.2/cronos_1.0.2_Linux_x86_64.tar.gz
    $ tar -zxvf cronos_1.0.2_Linux_x86_64.tar.gz

Remarks: If you have stated cronosd with systemd service, kindly stop it by

$ sudo systemctl stop cronosd

And replace the binary in the location where the ExecStart states in Systemd Unit file.

Step 1.1 - Verify the version

You can verify the installation by checking the version of cronosd, the version should be1.0.2.

# check the version of cronosd
$ ./cronosd version
1.0.2

Step 1.2 - Update app.toml

In this v1.0.2 upgrade, there are a few extra parameters that we would have to add to .cronos/config/app.toml under

  • config.toml with the db_backend field;

  • app.toml with the app-db-backend field.

For db_backend :

Kindly set the above config to config/config.tomlin your our .cronos dir according to your current DB setting, for example:

db_backend = "goleveldb"
  • For app-db-backend :

Kindly add

# AppDBBackend defines the database backend type to use for the application and snapshots DBs.
# An empty string indicates that a fallback will be used.
# First fallback is the deprecated compile-time types.DBBackend value.
# Second fallback (if the types.DBBackend also isn't set), is the db-backend value set in Tendermint's config.toml.
app-db-backend = ""

to config/app.tomlin your our .cronos dir according to your current DB setting.

Step 2. - Run everything

We are ready to start the node join the network again with the new binary:

  • Start cronosd, e.g.:

  $ ./cronosd start

Remark: Once the cronosd is started we would see the message

applying upgrade "v1.0.2" at height: 6542800"

and there will be an iteration over the previous blockchain data. This process will take a while, which is depending on the size of the database and the hardware specs.

Afterwards, sit back and wait for the syncing process. You can query the node syncing status by

$ ./cronosd status 2>&1 | jq '.SyncInfo.catching_up'

If the above command returns false, it means that your node is synced; otherwise, it returns true and implies your node is still catching up.

At this step, you've successfully performed the "Galileo" upgrade!

here