v1.7.17 — ACX marketplace on-chain value settlement
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 + thegenesis-testnet.jsonasset here). - Carries 1.7.16 (
--enable-acxread-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.jsonasset 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.jsonfrom 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.