Introduction
This is a summary of the items included in the upcoming software governance proposal for release v2.0.0. The release can be found here: Release v2.0.0 · classic-terra/core · GitHub
This release contains governance approved features to the Terra Classic blockchain, including minimum initial deposit for governance proposals, Cosmos SDK v0.45.13, and Tendermint v0.34.24. This is the second major release that will utilize the upgrade governance proposal mechanism to upgrade the chain. This proposal will HALT the chain at block, 12,812,900, or approximately May 17, 2023, 14:03:32 UTC. If this proposal passes, at this time, all full nodes and validators will NOT be able to continue until they install and run the current upgrade version v2.0.0.
What is included
The following is a list of features that directly effects the inner workings of the terrad binary and therefore the mechanics and external accessibility of the blockchain and its data:
- V0.45.13 proposal (#176): Upgrade Cosmos SDK to v0.45.13
- V3 Upgrade Handling (#177): This is going to handle any needed store migrations during the software upgrade procedure.
- Min Initial Deposit (Recreated using main as base branch) (#138): This introduces minimum initial deposit parameter for spamming prevention.
This is a list of features that touches the codebase of Terra Classic, improves linting, provides /improves documentation, tooling, testing etc.:
-
Test framework implementation plan (#167): This is a strategic documentation about how future automated testing framework could look like.
-
build(deps): Bump github.com/opencontainers/runc from 1.0.3 to 1.1.2 (#166): This is a (automated) dependency bump in the GitHub CI tooling.
-
refactor app folder and add ‘make lint-strict’ (#168): Code refactoring for better maintainability and readability.
-
Update sims.yml to contain go 1.18 (#174): This updates a GitHub CI workflow that was previously running on the wrong golang version
-
add script for min initial deposit ratio test (#185): Helper script that was used to test min initial deposit on local chain
-
update golangci-lint fix (#191): update golangci-lint fix (#191) · classic-terra/core@04401e3 · GitHub) Update GitHub linting CI
The following list summarizes the commit history for the v2.0.0 release:
- Customized Tendermint v0.34.24: Release v0.34.24-terra.0 · classic-terra/tendermint · GitHub
- Customized commit:
is oracle tx logic
- Customized cosmos SDK v0.45.13:
Customized commit:
Bump TM_URL to v0.34.24 to align with the version targeted by our go version
lint review
add filtered pagination
gofumpt
initial conflict fix
- Core commits:
Test framework implementation plan (#167)
build(deps): Bump GitHub - opencontainers/runc: CLI tool for spawning and running containers according to the OCI specification from 1.0.3 to 1.1.2 (#…
…166)
refactor app folder and add ‘make lint-strict’ (#168)
Update sims.yml to contain go 1.18 (#174)
Min Initial Deposit (Recreated using main as base branch) (#138)
V3 Upgrade Handling (#177)
V0.45.13 proposal (#176)
Terra operator docker refactor (#172)
add script for min initial deposit ratio test (#185)
fix issues with liveness test (#187)
update golangci-lint fix (#191)
Testnet refactor (#194)
Testing
- Min initial deposit ratio test core/min_initial_deposit_test.go at main · classic-terra/core · GitHub
-
Set initial deposit ratio to 0.2, attempt to submit a prop to verify result
-
Upgrade testing completed for min initial deposit
- Modified Cosmos SDK v0.45.13 passed all important workflow checks
- L2 compatibility testing
-
Created custom testnet for v2.0.0 compatibility testing (Bajor-1)
-
Forked most recent version of Station and conducted compatibility testing
-
Test cases can be reviewed at the following location: Station Test Cases v2.0.0.pdf
- Upgrade Testing
- Several validators joined rebel-2 testnet to conduct a ‘rehearsal’ chain halt upgrade prior to scheduling the mainnet upgrade.
- The testnet upgrade was conducted on Thursday May 4th at 11:00am EST. The upgrade was completed successfully, and no issues were reported.
Additional Notes
The current recommended version of go is 1.17 → 1.18. Go 1.19 is not supported yet and should not be used at this time.
This upgrade is a major version upgrade for Cosmos SDK and Tendermint. Station has been forked and tested for compatibility.