Skip to content

v4.15.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 12:41
· 279 commits to main since this release
9a7d2ba

Nuthatch 4.15.0 adds the head count: after a successful nuthatch init, Nuthatch asks once whether it
may count you. The default is no, and nothing about serving, storage or indexing changes. There is no
storage migration.

The head count (RFC-0054)

Non-negotiable 3 is amended to allow exactly this and nothing else: no network call about the operator
that the operator did not explicitly turn on, with this one opt-in as the named exception (#1988).

  • The question appears once per machine, after init has written the nest and printed its last line,
    and only with a terminal on stdin and stdout. Enter is no. The answer is kept in
    ~/.config/nuthatch/count.toml (or under $XDG_CONFIG_HOME) and never asked again.
  • With a yes, each later init sends one object to https://count.nuthatch-indexer.com: version, OS,
    architecture, a built-in chain id (anything else is sent as 0) and which kind of init it was. No
    identifier, no address. Everything a command sends shares one two-second ceiling, and a failure is
    never printed.
  • CI or NUTHATCH_NO_COUNT silences it, question and pings alike.
  • nuthatch count shows where things stand; on, off, payload and forget do what they say.
  • The receiver keeps a tally per UTC day and nothing else. Its source is count/receiver/, and the
    totals are public at https://www.nuthatch-indexer.com/count.

Every line outside src/count.rs that reaches it is tagged, and a new leg of the required CI check
deletes the module and those lines and runs the whole suite on what is left. Deleting the head count
costs a self-hoster nothing, and that is now a job rather than a sentence.

Tooling

  • The subgraph stopgap orphan alert retries a failed fetch twice before paging, honouring Retry-After,
    and a page now carries the HTTP status and the start of the body (#1990).

Gated on Lodestar's data

The head count runs only inside init, which serves nothing, so this release changes no query path the
release gate measures.

Compatibility and upgrade

Replace the binary and restart. No re-index. A scripted init without a terminal is never asked
anything and sends nothing.