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: mainnet validator hot swaps #4203

Merged
merged 8 commits into from
Jan 29, 2025
Merged

Conversation

joelsmith-2019
Copy link
Collaborator

@joelsmith-2019 joelsmith-2019 commented Dec 19, 2024

This PR allows mainnet validator hot swapping. Previously, only single validator clusters allowed hot swapping for testnet purposes. This PR removes that check and introduces an integration test which validates the process of swapping an existing guardian's validator to a new validator and then back again.

@joelsmith-2019 joelsmith-2019 self-assigned this Dec 19, 2024
@joelsmith-2019 joelsmith-2019 marked this pull request as ready for review December 19, 2024 19:11
Copy link
Contributor

@mdulin2 mdulin2 left a comment

Choose a reason for hiding this comment

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

We need to make this non-consensus breaking.

@pires
Copy link
Collaborator

pires commented Jan 13, 2025

Is this truly affecting only mainnet. Please, be reminded that in testnet the guardian set size is one (1) and we should keep the ability to rotate the key. cc @andreclaro

@mdulin2
Copy link
Contributor

mdulin2 commented Jan 13, 2025

This is expanding the ability to rotate keys. Right now, there is a restriction that the hot swap is only allowed when there is a single Guardian (aka testnet). This allows for all Guardians to do the hot swap at any point.

mdulin2
mdulin2 previously approved these changes Jan 15, 2025
nik-suri
nik-suri previously approved these changes Jan 27, 2025
@joelsmith-2019 joelsmith-2019 dismissed stale reviews from nik-suri and mdulin2 via f52e8a6 January 28, 2025 17:34
Copy link
Contributor

@evan-gray evan-gray left a comment

Choose a reason for hiding this comment

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

reviewed .github changes only.

@joelsmith-2019 joelsmith-2019 merged commit 54fc8aa into main Jan 29, 2025
31 checks passed
@joelsmith-2019 joelsmith-2019 deleted the joel/validator-hot-swaps branch January 29, 2025 21:25
kakucodes added a commit that referenced this pull request Feb 3, 2025
wormchain: pulled in the pre-release cw_wormhole ict/integration test

added shutdown tests

lint cleanup

shutdown utils cleanup

Deploy SeiEVM testnet (#4209)

* cli: arbitrary chain registration

* Deploy SeiEVM Testnet

---------

Co-authored-by: Evan Gray <[email protected]>

Node: Update Celo watcher (#4210)

* Node: Update Celo watcher

* Code review rework

docs: add TransferFees conformance note (#4212)

* docs: add TransferFees conformance note

* docs: clarify cosmwasm core contract

* fix: make link relative

Deploy Monad testnet (#4218)

CONTRIBUTING: update to forbid PRs the contain only minor wording adjustments

Node/Solana: Reobservation by transaction ID (#4223)

* Node/Solana: Reobservation by transaction ID

* Code review rework

Double the limits on Ethereum and Solana (#4225)

* Double the limits on Ethereum and Solana

Due to high network volumes on Ethereum and Solana, the limits are being doubled for these 2 chains

* Fixed the hardcoded max daily limit in the tests

chore: add cw wormhole interchain tests (#4189)

* wormchain: cw_wormhole ict start

* wormchain(interchaintest): initial test implementation

* Add Additional Core Contract ICTs

* Finish Core Contract VAA ICTs

* Add Replay Protection Checks

* Extract Helper Commands

* Fix Modify Genesis

* Hook into ICT Workflow

* Add Missing UpgradeContract VAA Test

* Add Additional Fee Checks

---------

Co-authored-by: Kaku <[email protected]>
Co-authored-by: Obie Kaku <[email protected]>

node: Add Transfer Verifier mechanism (#4169)

Adds a new package and command-line tool for Transfer Verification. This is a process of validating message publications from the core contracts. When a message is emitted, Transfer Verification will examine the corresponding receipt or other logs to ensure that funds were sent into the token bridge whenever this kind of message is emitted from the core bridge.
This is a defense-in-depth mechanism to guard against a scenario where an attacker finds a way to spoof message publications.

Node/Solana: Beef up commitment check (#4231)

Github: Update node code owners (#4232)

Node: Change TxHash to TxID in MessagePublication (#4219)

* Node: Change TxHash to TxID in MessagePublication

* Code review rework

* More code review rework

* Limit TxID to 255 bytes and add test for it

* Code review rework

node: Governor token list update (#4208)

* node: governor token list update

* Update based on USD depeg stats

* Update codeowners

---------

Co-authored-by: djb15 <[email protected]>

clients/js: support alternative aptos networks

Node: Add support for Movement (#4236)

pulled in joel's ict based shutdown contract tests

update ict cw_wormhole wasm binary

updated makefile to run the tests with proper features

updated rust tests in workflow

ignore unused variables and functions during shutdown mode

fixing package exclusion

rerendered artifacts

rerendered artifacts

Node: Audit chain IDs

Node: Allow no heartbeating in testnet (#4240)

Deploy token bridge to Monad testnet (#4238)

Node/Aptos: Don't replay old observation on startup (#4243)

Deployment: Add Movement testnet token bridge (#4245)

Node/Solana: Shim support in testnet (#4241)

* Node/Solana: Shim support in testnet

* Code review rework

Node: Remove references to SignedObservation (#4244)

* Node: Remove references to SignedObservation

* Code review rework

Node/Hack: Add tool to test go-ethereum subscriptions (#4214)

* Node/Hack: SeiEVM watcher test app

* Make tool general purpose

Revert #4225 (#4247)

Node: Remove Monad Devnet support (#4248)

Node/Solana: Fix shim observation message (#4249)

feat: mainnet validator hot swaps (#4203)

* Add ICT Local Image

* Fix ICT Workflow

* feat: allow validator hot swapping in mainnet

* Integrate with CI

* fix: comments

* readd state lookup

updated ict workflow versions

updated dockerfile to seperately generate the shutdown contracts

removed unnecessary files
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.

5 participants