Peer Exchange Protocol
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 38
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Not to be confused with #3.
We should have a global peer exchange protocol for exchanging information on peers wiling to perform some service and/or speak some protocol. This would implement the discovery (https://github.com/libp2p/go-libp2p-discovery/) interface and could be run in parallel to a dht-based discovery service to widen a search.
Basic protocol proposal:
message Request {
// Service descriptions (arbitrary strings).
repeated string services = 0;
// Number of peers to return (0 means unlimited).
int32 limit = 1;
}
message Response {
repeated Peer peers = 0
}
message Peer {
// Peer id
bytes id = 0;
// Addresses for the peer.
repeated string addresses = 1
// List of services the peer supports. Empty means "unspecified".
//
// TODO: Should we use numbers and index into some table? Maybe index
// into the table from the request?
repeated string services = 2
// Timestamp when the peer was last seen.
// 0 for currently connected
uint64 lastSeen = 3;
}
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked go-libp2p discovery interface and comparing this proposal with issue #3. The issue names no files or tests; the work would need an agreed protocol design and implementation before completion could be verified.
Written by the indexing model from the issue text.
Assessment
- Domain
- distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100