celestiaorg / celestiaorg/go-header

p2p: Consider modifying `Head` to enforce a minimum quorum of responses necessary to proceed

Open
#344 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.