lightninglabs / lightninglabs/pool

Node rating model

Open
#162 3 comments 17 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

![Sample](https://i.imgur.com/dwakJCk.png)

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.