Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: chain: light-weight patch to fix calibrationnet #11363

Merged
merged 9 commits into from
Oct 31, 2023

Conversation

arajasek
Copy link
Contributor

@arajasek arajasek commented Oct 31, 2023

Related Issues

The calibration test network upgraded to nv21 / actors v12 2 weeks ago. Further testing on the testnet revealed a minor bug in a new feature that has since been patched: filecoin-project/builtin-actors#1455.

Unfortunately, this is consensus-critical, and so needs a coordinated upgrade on the testnet in order to land the new code. This PR proposes a relatively easy way to achieve this.

Proposed Changes

  • Create a new UpgradeWatermelonFixHeight upgrade that ONLY exists for calibrationnet (disabled for all others)
  • At that height, upgrade all miner actors to the new, fixed miner actor CID
  • Include the patched actors bundle as the v12 bundle for calibrationnet
  • Also, explicitly add the "buggy" actors bundle to v12.tar.zst
  • Also, explicitly add the "buggy" miner actor info to actorMeta
  • Tweak the "real" v12 migration (that already ran) to upgrade to the buggy bundle (this is only relevant for syncing calibnet from scratch).

Additional Info

  • Needs to be tested, we'll do that by:
    • simulating this on calibnet
    • actually running this on a butterflynet
  • Could also consider:
    • Doing a "full" upgrade on calibnet with new network / actors version, etc.
    • Leaving calibnet as-is for now, it'll get patched in the next upgrade.

Checklist

Before you mark the PR ready for review, please make sure that:

  • Commits have a clear commit message.
  • PR title is in the form of of <PR type>: <area>: <change being made>
    • example: fix: mempool: Introduce a cache for valid signatures
    • PR type: fix, feat, build, chore, ci, docs, perf, refactor, revert, style, test
    • area, e.g. api, chain, state, market, mempool, multisig, networking, paych, proving, sealing, wallet, deps
  • If the PR affects users (e.g., new feature, bug fix, system requirements change), update the CHANGELOG.md and add details to the UNRELEASED section.
  • New features have usage guidelines and / or documentation updates in
  • Tests exist for new functionality or change in behavior
  • CI is green

@arajasek arajasek force-pushed the asr/unbork-calibnet branch 3 times, most recently from 2c2c7c8 to ed843a3 Compare October 31, 2023 15:48
@arajasek arajasek force-pushed the asr/unbork-calibnet branch from ed843a3 to 6c868fa Compare October 31, 2023 15:57
@arajasek arajasek changed the title WIP: light-weight patch to fix calibrationnet feat: chain: light-weight patch to fix calibrationnet Oct 31, 2023
@@ -82,6 +82,9 @@ const UpgradeThunderHeight = UpgradeLightningHeight + 3120
// 2023-10-19T13:00:00Z
const UpgradeWatermelonHeight = 1013134

// TODO: SET THE PATCH HEIGHT EPOCH
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My proposal would be: epoch 1070494 - which should be 2023-11-07T13:00:00Z

}

// This is the hard-coded "buggy" miner actor Code ID
if inActor.Code != cid.MustParse("bafk2bzacecnh2ouohmonvebq7uughh4h3ppmg4cjsk74dzxlbbtlcij4xbzxq") && inActor.Code != outActor.Code {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make these constants

@arajasek arajasek marked this pull request as ready for review October 31, 2023 21:58
@arajasek arajasek requested a review from a team as a code owner October 31, 2023 21:58
@arajasek arajasek force-pushed the asr/unbork-calibnet branch 2 times, most recently from febf78d to e3ac4ea Compare October 31, 2023 22:06
@arajasek arajasek force-pushed the asr/unbork-calibnet branch from e3ac4ea to cf9b58a Compare October 31, 2023 22:18
@arajasek arajasek enabled auto-merge (squash) October 31, 2023 22:26
@arajasek arajasek merged commit 77b6b7e into master Oct 31, 2023
@arajasek arajasek deleted the asr/unbork-calibnet branch October 31, 2023 22:29
arajasek added a commit that referenced this pull request Oct 31, 2023
* refactor: make GetEmbeddedBuiltinActorsBundle take network bundle name

* update calibnet actor bundle to v12.0.0-rc.2, but include v12.0.0-rc.1 as calibrationnet-buggy.car

* wip: calibnet unbork migration

* calibnet: add buggy miner actor CID to actorMeta

* fix incorrect buggy calibnet manifest

* make UpgradeWatermelonFixHeight a build param

* calibnet patch: check whether network is calibration from init actor state

* add sanity checks to the v12 calibnet patch upgrade

* address review
arajasek added a commit that referenced this pull request Oct 31, 2023
* refactor: make GetEmbeddedBuiltinActorsBundle take network bundle name

* update calibnet actor bundle to v12.0.0-rc.2, but include v12.0.0-rc.1 as calibrationnet-buggy.car

* wip: calibnet unbork migration

* calibnet: add buggy miner actor CID to actorMeta

* fix incorrect buggy calibnet manifest

* make UpgradeWatermelonFixHeight a build param

* calibnet patch: check whether network is calibration from init actor state

* add sanity checks to the v12 calibnet patch upgrade

* address review
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants