Proposal to Upgrade to v2.0.0

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:

This is a list of features that touches the codebase of Terra Classic, improves linting, provides /improves documentation, tooling, testing etc.:

The following list summarizes the commit history for the v2.0.0 release:

  1. Customized Tendermint v0.34.24: Release v0.34.24-terra.0 · classic-terra/tendermint · GitHub
  • Customized commit:

is oracle tx logic

  1. 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

  1. 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

  1. 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

  1. Modified Cosmos SDK v0.45.13 passed all important workflow checks
  1. 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

  1. 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.

15 Likes

I had a different question about the npm modules which are being used by the different repo’s.

They are outdated actually.

The issue is that if we upgrade those packages then the repo breaks and fails to compile.

If we don’t, then we are exposing ourselves to vulnerabilities knowingly/unknowingly.

For example, if we upgrade go, it will break the module(s), and if we don’t we are exposed to risks. I am aware that Cosmos itself doesn’t support an upgraded go, but that does not stop us from investigating and finding out a possible solution for this.

If you turn on Security Risk reporting on GitHub right now, your inbox will fill up with vulnerability mails from the repo’s.

So how is the L1 Team panning to mitigate this in the future?

6 Likes

This looks great.
Parity here we come.

4 Likes

Thanks LBA for your detailed report, let’s vote this! Parity is near!:+1:

3 Likes

That sounds like something to tackle in Q3!

Maybe alongside an updated Audit by Certik (or someone else)! We really should also change the info details as well on that audit as it still points to TFLs site

As for this proposal,
Rock On and Prosper :metal:

4 Likes

we can upgrade go to 1.20 when upgrading cosmos - sdk to newest version 47

7 Likes

Nice one ,with all respect what impact will this have to the corrent dapps and L2 stuff like endpoints ? And if it haves any impact what measures are you thinking to apply so no-one gets left behind.tks

4 Likes

Does this SDK version have the, bug with smart contracts which can cause a chain halt?

1 Like

Please provide a detailed write up on any and all updates or parameter changes Layer 2 applications will have to make.

We have had multiple core releases that turned into complete bungles where L2s were entirely left in the dark with no explanation of any changes or updates that they would need to make. They being left in the dark to scramble for information up to multiple weeks. If there is no change needed, then it should be stated so.

These core update releases should be accompanied by a detailed step by step guide concerning L2 updates/upgrades.

Please provide the applicable addendum. Let’s handle these releases professionally people.

9 Likes

This has been asked a few times already on twitter but hasn’t got a reply. Expand more on how you plan to do the contract migration approach

Has anything changed with pic above concerning the potentially losing 6-8% of the total network?

1 Like

Absolutely right.

1 Like

Nice job, congratulations for the hard work.

1 Like

layer 2 coordination has been done with Terra Rebels 2 weeks prior. Frag has announced testnet participation on validator discord 1 week before as well.

7 Likes

Let’s get these critical upgrades done and on schedule. We can’t afford any unnecessary setbacks especially at this reasonably advanced stage of our development.

1 Like

Has communication gone out to TFL the providers of terra.js and feather.js as well as station, station extension, station mobile and the providers of ledger for terra station. As well as the communication gone out to providers of relayers for LUNC as well as bridges to other eco systems?

1 Like
With all due respect, I am in favor of proceeding with the upgrade; however, there are several issues that I believe should be addressed prior to the approval of this proposal. Firstly, there is a critical concern regarding the functionality of mantlemint when running v2.0.0. Currently, it encounters panics during the startup process. It is of utmost importance that we receive guidance on this matter, as the consequences of it not functioning properly could be catastrophic.

Additionally, we must consider the impact on the existing dApps within our chain. Although the number may be limited, it is crucial that we extend our support to them. Neglecting their needs would send the wrong message to future dApps that may consider joining our platform. Therefore, I would like to inquire about any available guidelines or support mechanisms for these dApps to update seamlessly. Moreover, it would be greatly appreciated if we could obtain a comprehensive document outlining all the changes that will accompany this update. This will help us assess any potential loss of functionality or deprecated features.

Thank you for your attention to these matters.

1 Like

This def gonna be fun… I’mma grab mah popcorn. :popcorn:

Good luck boys, if you screw up the chain halt LUNC goes into freefall!

laugh-haha

1 Like

@fragwuerdig Thank you for addressing the issue with Mantlemint. However, it is crucial that we conduct testing before we can pass this proposal. Additionally, we will require some additional time to adequately prepare for the implementation on CEXs . It would be beneficial to provide a concise and user-friendly guide to ensure a seamless integration without encountering any complications on cexs.

2 Likes