-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Fold bank serialisation into serde snapshot #10581
Fold bank serialisation into serde snapshot #10581
Conversation
@svenski123 As always, super thanks for working on this! It seems that you're really interested in this area. In that case, please be aware of my consistently-postponed attempt of establishing trust chain of snapshot #8185 I think this pr should shed lights on the ultimate milestone of fully-verifiable snapshot. :) Also, there is random notes for snapshot security in this messy meta-tracking issue, too #7167 if interested. |
2517a2c
to
3b6bf23
Compare
Rebased and dependency on #10575 removed |
It's not clear to me why the buildkite buid #26406 job failed - solana_cli_config::Config::import_address_labels is clearly defined in cli-config/src/config.rs and this all builds fine locally. I will rebase to master and force push again. |
9e49310
to
10fa72d
Compare
Codecov Report
@@ Coverage Diff @@
## master #10581 +/- ##
=========================================
- Coverage 82.1% 82.1% -0.1%
=========================================
Files 318 319 +1
Lines 72747 73113 +366
=========================================
+ Hits 59777 60033 +256
- Misses 12970 13080 +110 |
I started to review this in more detail. |
@svenski123 Like before, I've made some commits on top of your PR's topic branch: https://github.com/ryoqun/solana/commits/fold-bank-serialisation-into-serde-snapshot-01 Could you take a look at it? First of all, as always, I sensed that your pr is well thought-out. What I've done there wes rather cosmetic and to adjust our further direction a bit. Before diving into the explanation of my branch, our pr's goal is...: Make versioning With that in mind, My branch contains 2 commits:
|
10fa72d
to
b0207b8
Compare
Rebased to master & applied your requested patch, also worked in the abi stuff which is now in master. I've aded assertions for bank fields which come from the genesis config, the intention is that these fields are removed from the snapshot entirely and the genesis config used instead. |
@svenski123 Cool, CI has passed! I'll review this in depth today or tomorrow. Also, now it seems there's a merge conflict... |
…de_snapshot. Add sanity assertions between genesis config and bank fields on deserialisation. Atomically update atomic bool in quote_for_specialization_detection(). Use same genesis config when restoring snapshots in test cases.
65269a9
to
59e0af1
Compare
@svenski123 It looks like CI currently fails to compile on rustc nightly. |
bincode upgrade in 841ecfd broke it; now fixed. FYI the serdes bank fields were intentionally shared between legacy and future as both those formats are "live". Of course that was three weeks ago. |
Ugh the renames broke the ABI hashes... This is beginning to feel more like a hardware design process rather than a software design process... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@svenski123 LGTM!! Thanks for your great work!!
@svenski123 I know the tedious feeling... However, the new abi tests were introduced to guard against accidental unintended abi changes. So, it's kind of expected to be annoying if you're intentionally modifying the abi-related code... Previously, we're really bothered to do manual abi compatibility check every time, even taking into account of deeply-nested |
Problem
Bank serialisation logic is currently in ledger/src/snapshot_utils and is not versioned
Summary of Changes
Notes