-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Need to verify a block contains the expected number of hashes #4282
Comments
@mvines I'm confused by this comment: https://github.com/solana-labs/solana/blob/master/core/src/entry.rs#L89 Is it outdated? A tick should have poh.hashes_per_tick right? |
Should both tick entries and transaction entries have the same number of hashes? It looks that way from |
Should verification be disabled when |
Looks like slot 0 gets filled with ticks with only 1 hash each https://github.com/solana-labs/solana/blob/master/core/src/entry.rs#L369. Is this by design or should it be updated to use the |
Not necessarily. The sum of hashes in all entries leading up to an including the next tick entry should totally |
Small number probably won't work as even at |
It should be updated as well |
…olana-labs#4282) With Merkle shreds, leader signs the Merkle root of the erasure batch and all shreds within the same erasure batch have the same signature. For recovered shreds, the (unique) signature is copied from shreds which were received from turbine (or repair) and are already sig-verified. The same signature also verifies for recovered shreds because when reconstructing the Merkle tree for the erasure batch, we will obtain the same Merkle root.
When we enable real PoH, ticks will always be separated from the previous tick by a well-known number of hashes. Blocks that do not contain this expected separation should be rejected as malformed, as that indicates somebody trying to propose a "short block".
blocktree_processor.rs is likely where this additional verification should go.
The text was updated successfully, but these errors were encountered: