Skip to content

v1.7.17 — ACX marketplace on-chain value settlement

Choose a tag to compare

@twobitapps twobitapps released this 01 Jul 03:59
· 20 commits to main since this release

v1.7.17 — ACX marketplace on-chain value settlement (Tier-B)

On-chain marketplace value settlement: a system-address handler at 0x…Ac10 drives postJob/settle/expire against the real StateDB (escrow at 0x…0012), block-number keyed, gated behind a genesis activation height. Verified live end-to-end on the testnet: postJob funded escrow, settle paid the provider against a valid Merkle proof, all 4 validators agreed, no fork.

  • Deterministic & restart-safe: job state lives in the StateDB trie (Solidity mapping slots) as the settlement authority — proven by a restart-determinism test (settle after a wiped RAM map yields a byte-identical state root).
  • Activation is genesis-sourced (params.engine.narwhaltusk.marketplaceActivationHeight), fleet-uniform, fail-closed. On this testnet: block 1338726 (already baked into the embedded genesis + the genesis-testnet.json asset here).
  • Carries 1.7.16 (--enable-acx read-only acx_overview + dedicated ACXIndexAnchor + observer) and everything prior.

⚠️ REQUIRED for correct sync — read before updating an existing node

The marketplace activates from genesis config. A node running this binary MUST have marketplaceActivationHeight=1338726 in its genesis, or it will treat marketplace txs as plain transfers at block 1338726 and fork.

  • Fresh nodes: correct automatically (the embedded genesis + the genesis-testnet.json asset both carry the height).
  • Existing nodes: the auto-updater swaps the binary only, NOT genesis. You must replace your on-disk genesis with the genesis-testnet.json from this release (or wipe chaindata and re-sync so the embedded genesis is used). The genesis hash is unchanged (0xa8a3b7bd…), so this does not re-genesis the chain.

Linux amd64. chainId 808080.