Skip to content

[EcoDev] Node dogfooding — post-storm 0.2.4 green-path + Blend-reachability hardening of the 1click on-ramp #234

Description

@xAlisher

TL;DR: EcoDev is dogfooding the post-storm blockchain module 0.2.4 update and hardening our community "1click" node on-ramp so it never declares an unreachable node to Blend. The fork storm surfaced that unreachable nodes joining Blend break the mix network (block proposals route through Blend); the 1click was the on-ramp that put non-technical, NAT'd operators onto Blend without a reachability check. Filing as EcoDev dogfooding feedback + tracking (would tag from-echodev; can't apply the label from this account).

Context

  • Storm (Aug 27-30): a batch of nodes joined Blend but were not reachable (wrong IP/port in their declarations, or behind NAT), breaking Blend node-to-node comms and forking the chain. Incident: [Dogfood/incident] Testnet v0.2.1 fork storm (Aug 27–30) — operator impact + investigation #226.
  • Fix shipped: blockchain module 0.2.4 (logos-blockchain#3479) adds Blend failure-detection with a clear-broadcast fallback, so proposals no longer stall behind a broken Blend path. New genesis; testnet release stays v0.2.1; bootstrap peers unchanged.
  • Root behaviour (code-checked): nothing validates that a node's declared Blend locator is publicly reachable before its SDP declaration is posted. The gate lives in the participate CLI path + libp2p autonat, and setting external_address disables autonat and trusts the operator's IP. So a NAT'd operator can declare unreachable and still join Blend.

What we're tracking

  1. Verify the 0.2.4 green-path end to end from a stopped node (wipe state, keep config + keys, logosctl, join Blend only when reachable) and report friction.
  2. Add a reachability net-check to the 1click before it declares Blend (mirror participate.rs's bail on unspecified/unreachable; retire the no-public-IP-check toggle; auto-derive external_address).
  3. Align the 1click to 0.2.4 (re-pin off the stale July node; new SDP encoding; service-note rename; logosctl join semantics).
  4. Follow through on the resource amplifier from the incident (header-only/coalesced block events + drop the per-block stderr dump): #3449, logos-protocol#75.

Note: this reachability behaviour is present in the official config path too; the 1click is called out because it was the on-ramp for non-technical operators. Detailed findings + the per-repo compat issues are tracked internally.

Ask

Would a shared Blend-reachability pre-check helper make sense (so any on-ramp, official or community, gates the declaration the same way), or should each frontend implement its own against participate.rs semantics?

Refs: #226 · logos-blockchain#3479 · #3449 · logos-protocol#75

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions