celestiaorg / celestiaorg/go-header
p2p: Consider modifying `Head` to enforce a minimum quorum of responses necessary to proceed
- Dominant language
- Go
- Stars
- 21
- Forks
- 33
- Avg merge
- 5d 20h
- Merged PRs (30d)
- 7
Description
I'm not fully in agreement here but it's something Vlad and I discussed at the onsite. Backstory is Lumina ran into issues bootstrapping on Mammoth because it hardcoded 6 bootstrappers, but I had devops take down 5 because I was performing some tests. Everything was working well enough at the time with just 1 bootstrapper so I didn't tell them to spin the other 5 back up. However, Lumina hardcoded the bootstrappers and expected them (all or mostly?) to be responsive so that they can calculate a bestHead.
Right now, we allow bootstrapping off of 1 trusted peer/bootstrapper which Vlad disagrees with because of the ability of a malicious bootstrapper to serve a bad head.
I'm parking this issue here so we don't lose track of the discussion, but I don't have any concrete thoughts at this time other than I still think you should be able to bootstrap off of minimum 1 hardcoded peer if the rest are unresponsive. I can substantiate my point if needed.
Contributor guide
Research direction
No file or test is named. Start by locating the p2p Head implementation and tracing how bootstrapper responses are collected and how bestHead is calculated. Review the discussion about one versus a minimum quorum of trusted peers; done requires an agreed quorum policy and tests covering unresponsive or malicious bootstrapper responses.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100