lightninglabs / lightninglabs/pool
Node rating model
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 259
- Forks
- 51
- PR merge metrics
- No merged PRs in 30d
Description
To start: very happy with Pool! It's great stuff.
It seems though, that Pool has a dependency on BOS, which over time has appeared to become imperfect:
- The list is very small. I believe more than 1.7% (246/14585*100) of nodes are good peers. Why not publish a list of 2000 nodes, and have people/nodes/software decide a minimum score to act on (in Pool give a minimum score for example)
- Criteria are unclear. I believe the list criteria should become open. Earlier thoughts have been that if that was done, people could game the system. I do not believe that's bad, as long as criteria are good ("Oh no! Someone opened 10 channels with low fees to other well connected nodes!" is not something someone would be worried about :wink: ).
Bidders will want to choose:
1. Nodes with high uptime. A sensor node will have to keep track of this, and this will make the list inherently non-reproducible. We should accept this. 1000 points for
2. Nodes well-connected. Look at amount of channels, and connectivity to other top-50/100 nodes in last week's list.
3. Fees, score for fees lower than (mean+20%)
4. Nodes which are over _n_ (90?) days old
5. Nodes with a % of capacity of the network
6. Nodes which are reachable over both tor and clearnet

Someone should take some time I think, with actual data from the network, and tune these parameters. Output of actual network data could also become variables in calculations (some score being [this node's mean rate] vs [network mean rate]).
An even better idea would be to change the complete model, where one would only get some input (sensor data) from a monitoring node (uptime) and calculate the rest itself. People would use the default model, but would also be able to tune to their liking (some might want more decentralized nodes, not valuing _connectivity-to-top15%_ so high).
Bottom line: I believe the rating model should be more open, and node owners should be able to decide how they rank peers. Lightning Labs could publish an interactive dashboard where node owners could do their calculations, and change their behavior in a way the network likes. Changes to the model ("node age is much more important!", "ipv4 is not worth 50k points but 30k!") would be done in a git repo.
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
No files, tests, or entry points are named. Start by reviewing Pool’s current BOS dependency and how its node-rating inputs are obtained, then compare that behavior with the proposed uptime, connectivity, fee, age, capacity, and reachability criteria. Done would require an agreed rating model and a defined way for node owners to inspect or tune it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100