Skip to content

πŸ»β€β„οΈ Propter polar bear: packed-state prover and deployable node - #13

Open
iChristwin wants to merge 10 commits into
mainfrom
propter-polar-bear
Open

iChristwin wants to merge 10 commits into
mainfrom
propter-polar-bear

Conversation

@iChristwin

@iChristwin iChristwin commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Replace snapshot/MPT processing with authenticated sparse updates to packed Rollup words: four uint40 Wh accounts and uint24 nonces per word, four-byte slot IDs, absolute replacements, and current on-chain signing keys.

Package PostgreSQL, Streamr/HTTPS ingestion, and scheduled proving with Docker Compose and interactive setup. Keep spending keys in the worker, and preserve paid request/proof/signed-transaction artifacts for recovery. Apply modeled and live-chain gas admission, local cycle/PGU admission, price/credit and ETH funding checks before buying proofs.

πŸ»β€β„οΈ Accept single actions or batches permissively. Use only the first 72 message bytes and discard the suffix before validation. Store only canonical, authenticated actions: discard malformed prefixes, invalid signatures, consumed nonces and conflicting entries without rejecting valid peers. Identical relays deduplicate. Return HTTP 202 with accepted/duplicates/discarded counts, including all-discarded batches. Keep malformed JSON/body limits, congestion and infrastructure failures as explicit transport/retry errors; RPC outages do not become successful discards, and database failures roll back writes.

GitHub Actions builds and smoke-tests public GHCR images, including real guest execution. Base-image digests, dependency locks, the guest ELF/checksum/vkey, Dockerfiles and the main README support repeatable builds and contributions. Dependency-path normalization reproduces the packaged guest ELF byte for byte. Credentials and runtime databases are excluded.

Companion: M3tering/Rollup#1. Sepolia Rollup: 0x9a9ED9b9A9BEC10d1B5E41b1873E78d19501D5Fa. The separate local node uses https://test-prover.m3ter.ing. Fresh genesis requires nonce 1 and owner-registered keys. The README documents historical signature reuse when resetting nonces with an existing signing key.

Validation: all seven ingestion tests passed locally against a disposable PostgreSQL database. Coverage includes HTTP acknowledgements, truncation, invalid prefixes despite valid suffixes, mixed batches, canonical DB contents, duplicate/conflict races, RPC failures, DB rollback, nonce gaps and paid-request recovery safeguards. Existing protocol tests cover accounting, encoding, gas admission, signing and real guest execution. The companion Rollup has 30 passing tests and exact Etherscan/Sourcify verification. A paid end-to-end proof still requires a fresh signed meter action.

Co-authored with @iChristwin πŸ»β€β„οΈ

Use four-byte slots, authenticated packed meter state, and a clean documented implementation.

Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Add Docker Compose, locked image inputs, HTTPS/Streamr validation, persistent queueing, gas admission and durable request/transaction recovery. Publish tested images through GitHub Actions for simple installations.

Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
@iChristwin iChristwin changed the title πŸ»β€β„οΈ Propter polar bear: canonical prover protocol πŸ»β€β„οΈ Propter polar bear: packed-state prover and deployable node Oct 27, 2026
codex and others added 8 commits October 27, 2026 10:47
Guard output directories as soon as a paid attempt exists, serialize access, and flush witnesses before requesting proofs. Document the existing signature format when resetting genesis.

Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Use Alloy with_chain_id and test the production request builder by signing and decoding its transaction without the SP1 feature.

Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Use only the first 72 message bytes, acknowledge individual discards and duplicate relays, and retain valid peers in mixed batches. Keep database writes authenticated and canonical, with retryable infrastructure failures and concurrent nonce conflict protection. Cover HTTP behavior and real PostgreSQL races and rollback.

Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Expose the worker shared-memory limit so real batches do not inherit Docker’s 64 MiB default. Keep allocation bounded by the worker memory limit and set setup/Compose defaults to twelve hours.

Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants