Skip to content

Wire dig-sex conduct (SPEC 8.2A) so peer behaviour actually feeds the dial budget #268

Description

@MichaelTaylor3d

Task

dig_sex::conduct -- observe, decay, dial_share, and the ConductEvidence classes -- is implemented, tested, and receives not one observation from dig-node.

Feed it real peer outcomes, and let dial_share shape which peers the node spends its dial budget on.

Why it matters

The SPEC is careful to separate a proven lie (bytes that fail verification against the chain-anchored root) and a self-contradiction (a peer that claimed to hold something, then answered absence) -- both verifiable, both allowed to persist -- from non-performance (timeout, reset, silence, truncation, slowness), which is not verifiable, must decay on elapsed time alone, must never reduce a dial share to zero, and must stay cheap enough that inducing it is not worth an attacker effort.

That distinction exists because an attacker can manufacture distress in an honest third party. None of it does anything today, because nothing calls observe.

Context

  • The fetch/verify path is where a proven lie is detectable -- verification failure against the merkle root is the evidence.
  • The holder-lookup path is where self-contradiction shows up: a peer that announced the capsule and then answered absence.
  • The dial path is where dial_share should bias selection.
  • Reputation is local and MUST NOT be gossiped. A shared reputation channel is a defamation primitive; keep it node-local.
  • dig-sex SPEC.md section 8.2A.

Evidence

A test that fails without the fix: a peer returning bytes that fail verification loses dial share; a peer that merely times out repeatedly loses some and recovers on elapsed time alone, without needing to be talked to.

Parent

Orchestrator epic: https://github.com/DIG-Network/dig_ecosystem/issues/3138

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:businessa person can DO something new, or money moves, or a shipped surface stops lying to them

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions