solana/core/benches
behzad nouri 161838655c
removes port-based forwarding logic from turbine retransmit (#17716)
Turbine retransmit logic is based on which socket it received the packet
from (i.e `packet.meta.forward`):
https://github.com/solana-labs/solana/blob/708bbcb00/core/src/retransmit_stage.rs#L467-L470

This can leave the cluster vulnerable to spoofing and selective
propagation of packets; see
https://github.com/solana-labs/solana/issues/6672
https://github.com/solana-labs/solana/pull/7774

This commit identifies if the node is on the "critical path" based on
its index in the shuffled cluster. If so, it forwards the packet to both
neighbors and children; otherwise, the packet is only forwarded to the
children.

The metrics added in
https://github.com/solana-labs/solana/pull/17351
shows that the number of times the index does not match the port is very
rare, and therefore this change should be safe.
2021-06-15 13:19:41 +00:00
..
banking_stage.rs replay stage feed back program cost (#17731) 2021-06-09 17:10:59 -05:00
blockstore.rs Re-allow clippy::integer_arithmetic at crate-level 2021-02-17 13:55:08 -07:00
cluster_info.rs Move gossip modules into solana-gossip crate (#17352) 2021-05-26 09:15:46 -06:00
consensus.rs Persistent tower (#10718) 2020-09-19 14:03:54 +09:00
gen_keys.rs
retransmit_stage.rs removes port-based forwarding logic from turbine retransmit (#17716) 2021-06-15 13:19:41 +00:00
shredder.rs removes first_coding_index from erasure recovery code (#16646) 2021-04-23 12:00:37 +00:00
sigverify_stage.rs