Network Heuristics
- Dominant language
- Python
- Stars
- 19
- Forks
- 15
- PR merge metrics
- No merged PRs in 30d
Description
## What was wrong?
One nice thing to have is an estimate of total network size.
## How can it be fixed?
When we pick a random `NodeID` and do a recursive `FINDNODES` lookup on that part of the network, we can extrapolate the overall size of the network by measuring the distance between the `target` NodeID and the "closest" one we find.
By doing this a few times, we can estimate the average density of nodes, which lets us extrapolate the total number of nodes in the network.
This information could be used to determine how "full" we should expect our routing table to be once it has a mature view of the network. We could potentially more aggressively try to populate certain buckets in the table that we expect should be full by doing more targeted random lookups in those regions of the network.
We could also use this information in the `$ ddht crawl` command since it would allow us to compare accuracy of the estimated size vs the measured size.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the recursive FINDNODES lookup and the routing-table code, then inspect the $ ddht crawl command to understand how network size is currently measured. The issue's proposed random NodeID sampling and density extrapolation need a concrete design, integration point, and accuracy criteria before implementation can begin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- 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