Skip to content

Release v0.15.4 - xchain-encoder - #9

Merged
jdogresorg merged 2 commits into
masterfrom
hotfix/v0.15.4
Sep 8, 2026
Merged

jdogresorg merged 2 commits into
masterfrom
hotfix/v0.15.4

Conversation

@jdogresorg

@jdogresorg jdogresorg commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

Hotfix train v0.15.4, encoder only. State-neutral: transaction authoring changes, the decoder and indexer read the same bytes.

Dogecoin relays an output under its 0.01 DOGE soft dust limit only if the whole limit is added to the fee, per output. The encoder sized P2SH funding legs off the 0.001 DOGE hard limit, so at a low fee estimate every leg fell into that band, peers refused to relay the funding parent, and every reveal chained on it (every validator PRICE and ATTEST wire on Dogecoin) waited unconfirmed.

  • Every output the encoder authors on Dogecoin floors at the soft limit (outputFloor); the fee floor and fee caps keep the consensus dust threshold.
  • A caller dust may raise the floor, never lower it.
  • DUST_AMOUNT is read and honoured as an operator floor, as the docs already promised.
  • Unit 795, regression 299, conformance 91, security 57, e2e tier 158, all green; venue gate 2195/0.

Merge as a merge commit (the tag tooling refuses a squash).

…oft-dust limit

Dogecoin Core keeps a soft dust limit of 0.01 DOGE above the pinned 0.001 hard
limit: an output under it is relayed only if the whole limit is added to the
fee, per output. The encoder sized P2SH funding legs off the hard limit, so once
a node's estimatesmartfee answered around 0.011 DOGE/kB the legs came out at
0.003-0.009 DOGE, the funding parent owed about 0.04 DOGE of relay fee and paid
0.004, every default-policy peer dropped it (the submitting node keeps it, since
sendrawtransaction skips that check), and every PRICE and ATTEST wire built that
way sat unconfirmed behind its parent.

- SOFT_DUST_FLOOR_BY_COIN (DOGE 1000000 koinu) and a separate outputFloor for
  every output the encoder authors: funding legs, the bare-multisig data output,
  change emission, the reveal's change headroom and surplus sweep. dustAmount
  stays the pinned consensus constant for the fee floor, the fee-drain caps and
  the burn guard, so no transaction gains a 0.01 DOGE minimum fee.
- A caller dust may raise the floor, never lower it.
- DUST_AMOUNT is read in api.js and passed to the constructor, as the docs have
  promised; it only raises the floor.
- Tests pin the floors per coin, the operator override, and P2SH builds at the
  observed stall rate authoring no leg under 0.01 DOGE; three suites re-pinned
  from the hard-dust arithmetic to the output floor.
@jdogresorg
jdogresorg merged commit 0c7a226 into master Sep 8, 2026
7 checks passed
@jdogresorg
jdogresorg deleted the hotfix/v0.15.4 branch October 1, 2026 02:57
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.

1 participant