libp2p / libp2p/jvm-libp2p

Review peer scoring impact of partial messages

Open
#447 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

partial-messages
Dominant language
Kotlin
Stars
366
Forks
85
Avg merge
2d 39m
Merged PRs (30d)
6

Description

## Scope split

**MVP (in scope here):**
- Wire the `PartialMessagesPeerFeedback.reportFeedback(topic, peer, kind)` side-channel into the existing gossip scoring infrastructure.
- `INVALID` feedback hooks into `notifyRouterMisbehavior` (the same path used by the existing v1.3 Control-Extensions handshake penalty).
- `USEFUL` / `IGNORED` feedback: decide whether these should affect score, or remain informational for now. Lean informational for MVP unless evidence suggests otherwise.

**Deferred (post-MVP, pending spec guidance):**
- Defining partial-message-specific scoring rules (spec is currently silent; go-libp2p also does not score partial-message traffic).
- Penalties for protocol-level misbehaviour specific to partial messages (e.g. inconsistent metadata, metadata regression, excessive metadata-only spam).

Revisit once the libp2p spec adds scoring guidance or we see concrete interop issues.

## Reference
Design: [`docs/partial-messages.md` §4.4, §7.2](../blob/develop/docs/partial-messages.md) (lands with the first PR on #435).
go-libp2p: no partial-specific scoring in `score.go` at the reference pin.

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

Start with docs/partial-messages.md §4.4 and §7.2, then trace PartialMessagesPeerFeedback.reportFeedback(topic, peer, kind) into the existing gossip scoring infrastructure and notifyRouterMisbehavior. Confirm how the v1.3 Control-Extensions handshake penalty is wired. Done means INVALID feedback uses that path, while USEFUL and IGNORED remain informational unless the evidence supports scoring them.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
distributed-systems, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.