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

Implement validator set update vote extensions #242

Closed
sug0 opened this issue Aug 1, 2022 · 5 comments
Closed

Implement validator set update vote extensions #242

sug0 opened this issue Aug 1, 2022 · 5 comments

Comments

@sug0
Copy link
Contributor

sug0 commented Aug 1, 2022

  1. First, decouple vote extension logic from Ethereum events logic, by renaming types/functions/methods accordingly.
    1. For instance, instead of VoteExtensionDigest, we would have EthereumEventsDigest, or something equivalent.
    2. Merged in Disentangle Ethereum events logic from vote extensions #243
  2. Introduce some baseline Rust types necessary to implement the rest of the changes.
    1. The types on the Rust side need to map to types on the Ethereum smart contract's side.
    2. Merged in Introduce baseline types required to implement validator set updates #273
  3. Implement PrepareProposal changes.
    1. Merged in Integrate validator set update vote extensions into PrepareProposal #286
  4. Implement ProcessProposal changes.
    1. Merged in Integrate validator set update vote extensions into ProcessProposal #372
  5. Implement shimming of vote extensions, to accomodate to our Tendermint 0.37.x version, which ships without vote extensions enabled.
    1. Merged in Shim vote extensions for Tendermint 0.37.x #437
  6. Implement a way to call Ethereum bridge smart contract with the validator
    set update vote extension digest decision from Tendermint. In other words,
    we need a relayer from Namada to Ethereum.
    1. Merged in Relay validator set updates #1157
  7. Implement FinalizeBlock changes.
    1. Merged in Implement FinalizeBlock changes for validator set update protocol txs #683
  8. Implement extend vote and verify vote extension calls.
    1. Depends on All Namada validators should have Ethereum accounts and signing keys #133.
    2. Partially implemented in Integrate validator set update vote extensions into PrepareProposal #286
    3. The rest of the required changes were merged in Add Ethereum secp keys to validators #471
  9. ??? Other misc. changes.
    1. We need two secp256k1 ethereum keys in ShellMode, one for governance (on Ethereum) and another for signing validator set update proofs. Signatures can't be from Namada validator keys. Related to All Namada validators should have Ethereum accounts and signing keys #133.
      i. Merged in Adding support for secp256k1 keys #278
      ii. Key storage was merged in Add Ethereum secp keys to validators #471
    2. Store the version of Bridge.sol in storage. Related to Get Ethereum smart contract version from Storage #249.

These changes can be implemented as separate PRs. Notes for these changes can be accessed here.

@cwgoes
Copy link
Contributor

cwgoes commented Jan 13, 2023

@sug0 what's the status of this / what's remaining here? just #133 ?

@sug0
Copy link
Contributor Author

sug0 commented Jan 16, 2023

@cwgoes #133 (which is just missing some extra PoS VP logic) and the work on the relayer. then the issue can be closed.

@sug0
Copy link
Contributor Author

sug0 commented Feb 15, 2023

The only missing thing now is checking if a validator has eth hot/cold keys in the pos vp. @tzemanovic any news on the storage issues you guys were having?

@tzemanovic
Copy link
Member

The only missing thing now is checking if a validator has eth hot/cold keys in the pos vp. @tzemanovic any news on the storage issues you guys were having?

We can re-do #371 now that #740 is done. We can type the keys directly to secp256k1 too now

@sug0
Copy link
Contributor Author

sug0 commented Oct 4, 2023

Checking for the existence of validator keys is implemented by #1840
We can close this issue

@sug0 sug0 closed this as completed Oct 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants