-
Verify you are currently running the correct version (v0.34.6+) of the Cosmos SDK:
$ gaiad version --long cosmos-sdk: 0.34.6 git commit: 80234baf91a15dd9a7df8dca38677b66b8d148c1 vendor hash: f60176672270c09455c01e9d880079ba36130df4f5cd89df58b6701f50b13aad build tags: netgo ledger go version go1.12.2 linux/amd64
-
Export existing state from
cosmoshub-2
:NOTE: It is recommended for validators and operators to take a full data snapshot at the export
height before proceeding in case the upgrade does not go as planned or if not enough voting power
comes online in a sufficient and agreed upon amount of time. In such a case, the chain will fallback
to continue operatingcosmoshub-2
. See Recovery for details on how to proceed.Before exporting state via the following command, the
gaiad
binary must be stopped!$ gaiad export --for-zero-height --height=2902000 > cosmoshub_2_genesis_export.json
-
Verify the SHA256 of the (sorted) exported genesis file:
$ jq -S -c -M '' cosmoshub_2_genesis_export.json | shasum -a 256 [PLACEHOLDER] cosmoshub_2_genesis_export.json
-
At this point you now have a valid exported genesis state! All further steps now require
v2.0.3 of Gaia.NOTE: Go 1.13+ is required!
$ git clone https://github.com/cosmos/gaia.git && cd gaia && git checkout v2.0.3; make install
-
Verify you are currently running the correct version (v2.0.3) of the Gaia:
$ gaiad version --long name: gaia server_name: gaiad client_name: gaiacli version: 2.0.3 commit: 2f6783e298f25ff4e12cb84549777053ab88749a build_tags: netgo,ledger go: go version go1.13.3 darwin/amd64
-
Migrate exported state from the current v0.34.6+ version to the new v2.0.3 version:
$ gaiad migrate v0.36 cosmoshub_2_genesis_export.json --chain-id=cosmoshub-3 --genesis-time=[PLACEHOLDER]> genesis.json
NOTE: The
migrate
command takes an input genesis state and migrates it to a targeted version.
Both v0.36 and v0.37 are compatible as far as state structure is concerned.Genesis time should be computed relative to the blocktime of
2,902,000
. The genesis time
shall be the blocktime of2,902,000
+60
minutes with the subseconds truncated.An example shell command(tested on OS X Mojave) to compute this values is:
curl https://stargate.cosmos.network:26657/block\?height\=2902000 | jq -r '.result["block_meta"]["header"]["time"]'|xargs -0 date -v +60M -j -f "%Y-%m-%dT%H:%M:%S" +"%Y-%m-%dT%H:%M:%SZ"
-
Now we must update all parameters that have been agreed upon through governance. There is only a
single parameter,max_validators
, that we're upgrading based on proposal 10$ cat genesis.json | jq '.app_state["staking"]["params"]["max_validators"]=125' > tmp_genesis.json && mv tmp_genesis.json genesis.json
-
Verify the SHA256 of the final genesis JSON:
$ jq -S -c -M '' genesis.json | shasum -a 256 [PLACEHOLDER] genesis.json
-
Reset state:
NOTE: Be sure you have a complete backed up state of your node before proceeding with this step.
See Recovery for details on how to proceed.$ gaiad unsafe-reset-all
Move the new
genesis.json
to your.gaiad/config/
directory-
Replace the
db_backend
on.gaiad/config/config.toml
to:db_backend = "goleveldb"
-
Note, if you have any application configuration in
gaiad.toml
, that file has now been renamed toapp.toml
:$ mv .gaiad/config/gaiad.toml .gaiad/config/app.toml
cosmos升级
cosmosupgrade_00.png
cosmosupgrade_01.png
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...