solana/core/src/broadcast_stage
behzad nouri eff59193db
enforces that LAST_SHRED_IN_SLOT is also DATA_COMPLETE_SHRED (#24892)
A data shred cannot be LAST_SHRED_IN_SLOT if not also DATA_COMPLETE_SHRED.
So LAST_SHRED_IN_SLOT should also imply DATA_COMPLETE_SHRED:
https://github.com/solana-labs/solana/blob/74b586ae7/ledger/src/shredder.rs#L116-L117
https://github.com/solana-labs/solana/blob/74b586ae7/core/src/broadcast_stage/standard_broadcast_run.rs#L80-L81

However current shred constructs allow specifying a shred which is
LAST_SHRED_IN_SLOT but not DATA_COMPLETE_SHRED:
https://github.com/solana-labs/solana/blob/74b586ae7/ledger/src/shred.rs#L117-L118
https://github.com/solana-labs/solana/blob/74b586ae7/ledger/src/shred.rs#L272-L273

The commit updates ShredFlags so that if a shred is not
DATA_COMPLETE_SHRED it cannot be LAST_SHRED_IN_SLOT either.
2022-05-02 23:33:53 +00:00
..
broadcast_duplicates_run.rs hides implementation details of shred from its public interface (#24563) 2022-04-25 12:43:22 +00:00
broadcast_fake_shreds_run.rs hides implementation details of shred from its public interface (#24563) 2022-04-25 12:43:22 +00:00
broadcast_metrics.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
broadcast_utils.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
fail_entry_verification_broadcast_run.rs
standard_broadcast_run.rs enforces that LAST_SHRED_IN_SLOT is also DATA_COMPLETE_SHRED (#24892) 2022-05-02 23:33:53 +00:00