client/authority-discovery: Introduce AuthorityDiscoveryService (#6760)
* client/authority-discovery: Rename AuthorityDiscovery to XXXWorker * client/authority-discovery: Introduce AuthorityDiscoveryService Add a basic `AuthorityDiscoveryService` implementation which enables callers to get the addresses for a given `AuthorityId` from the local cache. * client/authority-discovery: Split into worker and service mod Move `Service` and `Worker` to their own Rust modules resulting in the following file structure. ├── build.rs ├── Cargo.toml └── src ├── error.rs ├── lib.rs ├── service.rs ├── tests.rs ├── worker │ ├── addr_cache.rs │ ├── schema │ │ └── dht.proto │ └── tests.rs └── worker.rs * client/authority-discovery: Cache PeerId -> AuthorityId mapping * client/authority-discovery: Update priority group on interval Instead of updating the authority discovery peerset priority group each time a new DHT value is found, update it regularly on an interval. This removes the need for deterministic random selection. Instead of trying to return a random stable set of `Multiaddr`s, the `AddrCache` now returns a random set on each call. * client/authority-discovery: Implement Service::get_authority_id * client/authority-discovery: Use HashMap instead of BTreeMap * client/authority-discovery: Rework priority group interval * client/authority-discovery: Fix comment * bin/node/cli: Update authority discovery constructor * client/authority-discovery: Fuse from_service receiver * client/authority-discovery: Remove Rng import * client/authority-discovery: Ignore Multiaddr without PeerId * client/authority-discovery/service: Add note on returned None * client/authority-discovery/addr_cache: Replace double clone with deref
Showing
- substrate/bin/node/cli/src/service.rs 2 additions, 2 deletionssubstrate/bin/node/cli/src/service.rs
- substrate/client/authority-discovery/build.rs 1 addition, 1 deletionsubstrate/client/authority-discovery/build.rs
- substrate/client/authority-discovery/src/addr_cache.rs 0 additions, 205 deletionssubstrate/client/authority-discovery/src/addr_cache.rs
- substrate/client/authority-discovery/src/lib.rs 32 additions, 676 deletionssubstrate/client/authority-discovery/src/lib.rs
- substrate/client/authority-discovery/src/service.rs 70 additions, 0 deletionssubstrate/client/authority-discovery/src/service.rs
- substrate/client/authority-discovery/src/tests.rs 28 additions, 512 deletionssubstrate/client/authority-discovery/src/tests.rs
- substrate/client/authority-discovery/src/worker.rs 785 additions, 0 deletionssubstrate/client/authority-discovery/src/worker.rs
- substrate/client/authority-discovery/src/worker/addr_cache.rs 233 additions, 0 deletions...trate/client/authority-discovery/src/worker/addr_cache.rs
- substrate/client/authority-discovery/src/worker/schema/dht.proto 0 additions, 0 deletions...te/client/authority-discovery/src/worker/schema/dht.proto
- substrate/client/authority-discovery/src/worker/tests.rs 693 additions, 0 deletionssubstrate/client/authority-discovery/src/worker/tests.rs
Please register or sign in to comment