ChainSafe / ChainSafe/gossamer
Authority Discovery
- Dominant language
- Go
- Stars
- 454
- Forks
- 144
- PR merge metrics
- No merged PRs in 30d
Description
## Epic summary
- Authority Discovery is a mechanism that creates, store and validates DHT records. Basically it makes possible to discover other nodes in the network using specifically their Authority ID (public keys)
### Functionalities
- **Publish node's external address**: Makes the node's external address available in the DHT, that is made using a custom DHT Record defined at [`substrate/client/authority-discovery/src/worker/schema/dht-v3.proto`](https://github.com/paritytech/polkadot-sdk/blob/master/substrate/client/authority-discovery/src/worker/schema/dht-v3.proto). The stored record (node's address) can be retrieved using the node **AuthorityID** and is available for other nodes to find it through random kademlia walks.
- **Listen to Put Value actions**: PUT_VALUE is an action that other nodes can perform in our node's DHT, those calls brings external records which are other nodes external addresses, the authority discovery should validate the record signatures and if everything is ok then store the record.
- **Cache Addresses per Authority ID**: Using a cache layer to retrieve address by authority ID to avoid DHT queries.
## Links to related tech. design or research documents
- https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/authority-discovery/src
## Acceptance criteria
- [ ] Using of the latest protobuf record schemas
- [ ] Min of 60% of the code tested
- [ ] Tested in a cross client network (3 substrate nodes and 1 gossamer node)
Contributor guide
Assessment
This issue has not been assessed yet.