[Deprecated][Action Required] OasisEth Mainnet Upgrade with Oasis Cobalt Upgrade - second-state/oasis-ssvm-runtime GitHub Wiki
Notice
- Due to this upgrade contains storage-related bugfix, we will reduce the whitelist size to make sure the upgrade smooth. Hence, the entity IDs of second epoch node operators will be removed from the whitelist temporally. But this will not affect the reward, we will use the snapshot whitelist to calculate rewards.
- After the upgrade day, the second epoch node operators will be added back to the whitelist and join the OasisEth network again. Please make sure you have upgraded the paratime node.
- The whitelist will be updated before 04/29 13:00:00 UTC+8.
Instructions - Before Upgrade
1. Update the oasis-node
- Make sure you are running the latest Mainnet-compatible Oasis Node version: 20.12.7.
- If you are running a different 20.12.x Oasis Node version, update to version 20.12.7 before the upgrade.
- Oasis-Node 20.12.7
- The Oasis Node 20.12.7 is fully compatible with existed OasisEth Paratime binary. So you don't need to change the OasisEth binary before upgrade.
2. Ensure your node will stop at epoch 5046
-
To ensure your node will stop at epoch 5046 submit the following upgrade descriptor at any time before the upgrade:
-
The upgrade descriptor (
cobalt_upgrade.json
)
{
"name": "mainnet-upgrade-2021-04-28",
"method": "internal",
"identifier": "mainnet-upgrade-2021-04-28",
"epoch": 5046
}
- To submit the provided upgrade descriptor use the following command:
oasis-node control upgrade-binary \
-a unix:/path/to/your/node/internal.sock \
<PATH-TO-UPGRADE-DESCRIPTOR.json>
- If you need more details, please refer to the oasis document: https://docs.oasis.dev/general/run-a-node/maintenance-guides/handling-network-upgrades#stop-the-node-at-specific-epoch
Instructions - Upgrade day
- Following steps should be performed on 2021-04-28 only after the network has reached the upgrade epoch and has halted:
- Download the genesis file published in the Cobalt Upgrade release.
- Mainnet state at epoch 5046 will be exported and migrated to a 21.1.x compatible genesis file. Upgrade genesis file will be published on the above link soon after reaching the upgrade epoch.
- Replace the old genesis file with the new Cobalt upgrade genesis file.
- Stop your paratime node (if you haven't stopped it already by submitting the upgrade descriptor).
- Replace the old version of Oasis Node with version 21.1.1.
- Replace the old version of oasis-ssvm-runtime and gateway with version v1.7.0.
- Wipe state
- Start your paratime node with new options. The oasis-core has some breaking changes on the commandline options, please use the following command to start your paratime node:
- Download the genesis file published in the Cobalt Upgrade release.
#!/bin/bash
export ENTITY_DIR=<Your/Mainnet/Entity/Folder>
export DATA_DIR=<Your/Mainnet/NodeData/Folder>
export GENESIS_JSON=<Path/to/genesis.json>
export RUNTIME_BINARY=<Path/to/oasis-ssvm-runtime>
export RUNTIME_ID=000000000000000000000000000000000000000000000000000000000000ff03
export SEED_NODE_ADDRESS=E27F6B7A350B4CC2B48A6CBE94B0A02B0DCB0BF3@35.199.49.168:26656
export EXTERNAL_IP=<Your_External_IP>
$HOME/mainnet/oasis-node \
--datadir $DATA_DIR \
--log.level warn \
--log.format json \
--log.file $DATA_DIR/node.log \
--worker.registration.entity $ENTITY_DIR/entity.json \
--genesis.file $GENESIS_JSON \
--worker.compute.enabled \
--worker.executor.schedule_check_tx.enabled \
--runtime.provisioner unconfined \
--runtime.supported $RUNTIME_ID \
--runtime.history.tag_indexer.backend bleve \
--runtime.paths $RUNTIME_ID=$RUNTIME_BINARY \
--debug.dont_blame_oasis \
--consensus.tendermint.p2p.seed $SEED_NODE_ADDRESS \
--consensus.tendermint.core.listen_address tcp://0.0.0.0:26656 \
--worker.client.addresses $EXTERNAL_IP:9100 \
--worker.p2p.addresses $EXTERNAL_IP:9200
Q&A
failed to fetch genesis runtime block
About Error message: - If your node received this error
"err":"consensus: no committed blocks","level":"error","module":"oasis-node","msg":"failed to fetch genesis runtime block"
, please restart your node after the first block of Cobalt Upgrade is processed (~04/28 16:00 UTC). This issue should be fixed at the master branch of oasis-core. However, it is not contained in the 21.1.1 release.