* adds crds-value for broadcasting duplicate shreds through gossip (#14133)
In gossip, the header overhead we get from:
https://github.com/solana-labs/solana/blob/de9ac43eb/core/src/cluster_info.rs#L434-L435
https://github.com/solana-labs/solana/blob/de9ac43eb/core/src/crds_value.rs#L31-L36
https://github.com/solana-labs/solana/blob/de9ac43eb/core/src/crds_value.rs#L73
already exceeds SIZE_OF_NONCE in shreds. We also need aditional
meta-data (wallclock, source pubkey, ...). Which means that given the
SHRED_PAYLOAD_SIZE, we cannot fit all these in PACKET_DATA_SIZE:
https://github.com/solana-labs/solana/blob/de9ac43eb/ledger/src/shred.rs#L80
On top of that, we need 2 shred payloads as the proof of duplicate. So
each DuplicateShred crds value includes only a chunk of the payload,
along with the meta-data to reconstruct the full payload from the chunks
on the receiving end.
(cherry picked from commit 6a3797e164
)
# Conflicts:
# Cargo.lock
# ledger/Cargo.toml
* removes backport merge conflicts
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
39 lines
792 B
Rust
39 lines
792 B
Rust
#![cfg_attr(RUSTC_WITH_SPECIALIZATION, feature(specialization))]
|
|
#[macro_use]
|
|
extern crate solana_bpf_loader_program;
|
|
|
|
pub mod bank_forks_utils;
|
|
pub mod bigtable_upload;
|
|
pub mod block_error;
|
|
#[macro_use]
|
|
pub mod blockstore;
|
|
pub mod ancestor_iterator;
|
|
pub mod blockstore_db;
|
|
pub mod blockstore_meta;
|
|
pub mod blockstore_processor;
|
|
pub mod builtins;
|
|
pub mod entry;
|
|
pub mod erasure;
|
|
pub mod genesis_utils;
|
|
pub mod leader_schedule;
|
|
pub mod leader_schedule_cache;
|
|
pub mod leader_schedule_utils;
|
|
pub mod next_slots_iterator;
|
|
pub mod poh;
|
|
pub mod rooted_slot_iterator;
|
|
pub mod shred;
|
|
pub mod sigverify_shreds;
|
|
pub mod staking_utils;
|
|
|
|
#[macro_use]
|
|
extern crate solana_metrics;
|
|
|
|
#[macro_use]
|
|
extern crate log;
|
|
|
|
#[macro_use]
|
|
extern crate lazy_static;
|
|
|
|
#[macro_use]
|
|
extern crate solana_frozen_abi_macro;
|