-
Notifications
You must be signed in to change notification settings - Fork 624
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Epoch Sync] EpochSyncProof validation (#12020)
Issue: #11932 Implements EpochSyncProof validation, according to: - [design doc](https://docs.google.com/document/d/14Itc9Hs7ewTRmcGANid9UCaYcJzaLzzM7FsvYYIFKDY/edit#heading=h.p2oiicluwd6o) - [`epoch_sync.rs`](https://github.com/near/nearcore/blob/d6d6e4782f7d57a7b7acc2894e1668355012ff74/core/primitives/src/epoch_sync.rs) Summary: - Move block merkle proof retrieval logic from `Chain` to a separate trait (`MerkleProofAccess`). Make `Store` implements this trait so that we can `get_block_proof` while serving `EpochSyncRequest` from a separate thread and having no access to `Chain`. - Refactor `verify_approval` and `compute_bp_hash` so that we can use it for proof validation. - Derive `first_block_info_in_epoch` from block header. - Implement the validation logic. - Add 2 more fields to the proof - `EpochSyncProofPastEpochData::protocol_version` - `merkle_proof_for_first_block` generated at height of final block of current epoch. - Apparently, we need to add even more to enable generating `merkle_proof_for_first_block` at the bootstrapped node. That will be done as a follow-up issue: #12255. - Create a bunch of follow-up issues (added to the [tracking issue](near/near-one-project-tracking#73)): - #12255 - #12256 - #12258 - #12259 - #12260
- Loading branch information
Showing
12 changed files
with
538 additions
and
223 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.