Pricing protocol should not gate connections from bootnode-mode peers
I maintainer di solito rispondono entro 2 giorni
@acud ci sta già lavorando.
Dal 22/7/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Context
Bee's libp2p layer disconnects peers whose pricing ConnectIn / ConnectOut hook returns an error (pkg/p2p/libp2p/libp2p.go around the notifier paths, with the ErrThresholdTooLow / "protocol not supported" failure modes from pkg/pricing/pricing.go). The pricing init always opens a stream to the remote: if the remote does not advertise /swarm/pricing/1.0.0/pricing, bee tears the connection down immediately after handshake.
This makes pricing a hard prerequisite for any peer that wants to stay connected to a bee node — including bootnodes, which conceptually do not participate in chunk accounting at all (they have no payment state to advertise and no incentive to forward chunks). Independent Rust implementations like vertex have a choice between (a) carrying a pricing stub in every bootnode just to satisfy bee's connect notifier, or (b) being forced to disconnect after handshake.
What we are asking for
Make the pricing protocol optional for connections where at least one side advertises itself as a bootnode (whether via the existing BootnodeMode flag, the node type that already drives hive's peersHandler early return, or any other signal bee already has). Concretely: skip the pricing init step entirely when the local node is bootnode-mode, and tolerate "protocol not supported" from the remote when the remote signals bootnode-mode. That removes the requirement for a downstream impl to carry a pricing stub purely for connection-keepalive.
Why this is the right shape
- Pricing's semantic content is chunk accounting; bootnodes are explicitly outside that subsystem. There is no event a bootnode would generate that pricing needs to observe, and no threshold a bootnode has to announce.
- Bootnodes already short-circuit hive ingestion via
BootnodeMode(pkg/hive/hive.go:283-284). Doing the same for pricing closes a parallel "bootnodes do not participate in this accounting subsystem" hole. - Independent implementations are forced to maintain a stub today purely as a compatibility shim. Removing the requirement upstream makes the cross-impl story cleaner and removes a class of "stub kept the connection alive but contributed nothing to operator visibility" bugs.
Acceptance criteria
- A bee node configured in
BootnodeModedoes not initiate a pricing stream on outbound / inbound connection establishment. - A bee node connecting to a peer that does not advertise
/swarm/pricing/1.0.0/pricingdoes not disconnect on that grounds alone when the remote is signalled as bootnode-mode. - Existing pricing / accounting flows between non-bootnode peers are unchanged.
- Lingua principale
- Go
- Stelle
- 1.5k
- Fork
- 390
- Merge medio
- 2g 23h
- PR unite (30g)
- 24
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ethersphere/bee
-
Chequebook deployment uses a fixed 175,000 gas limit; it needs about 630,000 under Glamsterdam (live on Sepolia since 2026-10-06)Forse già presa @sbackend123 l’ha presa 17 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
ethersphere/bee#5650 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
ethersphere/bee#5666 ·
I maintainer di solito rispondono entro 2 giorni
-
Add a transaction inbox for outbound chain transactionsForse già presa @sbackend123 l’ha presa 11 giorni fa. Apertaseen
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
ethersphere/bee#5660 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
ethersphere/bee#5659 · 6 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
accepted seen
Difficoltà 4/5 3-5 giorni Idoneità per principianti 40/100
ethersphere/bee#5648 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di ethersphere/bee
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 61/100
I maintainer di solito rispondono entro 1 giorno
-
stage-fail
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
siyuan-note/bazaar#2405 ·
I maintainer di solito rispondono entro 1 giorno
-
bug priority: high workstream:cache
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
rossoctl/context-guru#707 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
prime-radiant-inc/evener#5028 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno