ChainSafe / ChainSafe/gossamer

Authority Discovery

Open
#4,500 0 comments 0 reactions 1 assignee Claimed by @timwu20 View on GitHub
Epic
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.