solana/core
behzad nouri 0aa7824884
retains one node-instance per pubkey (#17187)
crds table retains up to 32 node-instance values per each pubkey. This
is so because if there are multiple running instances of the same node,
then we want gossip to propagate node-instance values associated with
both instances, therefore the corresponding label/key includes the
randomly generated token in addition to the pubkey:
https://github.com/solana-labs/solana/blob/9c42a89a4/core/src/crds_value.rs#L448
https://github.com/solana-labs/solana/pull/14037

As a result, the number of such values per pubkey are effectively
unbounded, requiring custom mitigations implemented in:
https://github.com/solana-labs/solana/pull/14467
but still taking redundant extra memory and bandwidth.

This commit instead retains only one node-instance per pubkey by
extending crds values override logic. If a crds value is of type
node-instance, it will always override an existing one with the same key
if it has more recent starting timestamp (not wallclock). As a result,
gossip will always propagate the node-instance with more recent
timestamp. Since the check_duplicate logic will stop the node with older
timestamp, this change should preserve existing functionality.
2021-05-13 13:35:46 +00:00
..
benches removes delayed crds inserts when upserting gossip table (#16806) 2021-04-28 11:56:13 +00:00
src retains one node-instance per pubkey (#17187) 2021-05-13 13:35:46 +00:00
tests Issue #17008 -- make snapshot archives to hold on to configurable. (#17158) 2021-05-12 10:32:27 -07:00
.gitignore tmp dirs target to farf (#5079) 2019-07-12 18:28:42 -07:00
Cargo.toml retains crds values if the origin is still active (#16576) 2021-04-23 15:14:49 +00:00
build.rs Remove frozen ABI modules from solana-sdk 2020-10-20 16:11:30 -07:00