Skip to content

v2.0.9-Eldersign

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Jun 14:49
· 8 commits to main since this release

v2.0.9 — Eldersign

Released 2026-06-22. A coordinated consensus bundle: four rule changes activate together at block 1,055,555 (~2026-07-23 at 60-second pacing). This is the first scheduled consensus event since the Restoration — read the upgrade guidance below carefully, especially if you mine.


⚠️ Installing? Read this first — don't wait for main

Install from this tag now. v2.0.9-Eldersign is the release — build and run it directly from this tag. You do not need to wait for it to land on the main branch. During the soft-fork freeze main deliberately lags; the merge into main is post-freeze bookkeeping on our end (~mid-July) and is not a prerequisite for upgrading.

The only deadline that matters is consensus activation at block 1,055,555 (~2026-07-23): miners MUST be on v2.0.9 before that height; validators and public nodes SHOULD. Don't gate your upgrade on the main-merge — it lands only ~3 days before activation.

What activates at block 1,055,555

Four changes, all gated to the same height so the network steps over the line as one:

  • BIP66 — strict-DER signatures (#33). Signature encodings must be strict canonical DER at consensus level, replacing the pre-0.10-era lenient helper with a self-contained parser that no longer depends on OpenSSL version quirks. Enforced at both mempool and block validation from the fork height onward. This is the rule exchange- and wallet-integration checklists literally grep the source for.
  • BIP65 — OP_CHECKLOCKTIMEVERIFY (#34). The OP_NOP2 slot becomes OP_CHECKLOCKTIMEVERIFY, enabling script-level absolute timelocks — vault patterns, refund clauses, any cooperative-spend output that must not be reclaimable until a given block or time.
  • COINBASE_MATURITY 10 → 240 (#32). A freshly-mined coinbase becomes spendable after 240 confirmations instead of 10 — at 60-second blocks, 10 minutes becomes 4 hours. This lifts coinbase maturity comfortably above the existing MAX_REORG_DEPTH=100 finality guard, so a coinbase can never be spent inside the window where its block could still be reorged out.
  • Rolling checkpoints, Phase 1 (#6). A self-advancing, persistent finality guard: as blocks gain confirmation depth the node records a rolling checkpoint, hardening it against deep-reorg attacks from a malicious chain (a hostile peer feeding a fresh-syncing node a poisoned longer history, or the old >80%-hash attacker resurrecting a chain from before the current tip). Complements — does not replace — the runtime MAX_REORG_DEPTH=100 guard and the static h=976,000 checkpoint. Local to each node; no interop effect.

Supporting fixes (no separate activation)

  • Miner mempool pre-screen (#39). CreateNewBlock now screens candidate transactions with the same script flags block-validation will apply at the next height. Without this, post-fork a transaction valid under mempool's looser flags but invalid under block-validation's stricter flags (BIP65/66) would be placed into a candidate block and then trip the final validation test-pass — ending the mining attempt. Surfaces only at h ≥ 1,055,555; fixed pre-emptively.
  • Public testnet (#38). Seed entry, a re-anchored testnet genesis, an h=0 testnet checkpoint, and testnet/regtest mining without peers — so any contributor can join a public OFF testnet and live-test consensus rcs, not just the Conclave in isolation.
  • Retarget diagnostics gated behind -debug=pow (#43). The LWMA-3 retarget diagnostics were unconditional and grew a soak daemon's debug.log to 17.5 GB in a few hours on fast testnets. Now silent unless -debug=pow is set. No effect on mainnet behavior.
  • CGNAT / RFC 6598 range treated as non-routable (#42). 100.64.0.0/10 no longer leaks into public addr gossip. (Already on main; rides this release by merge-up.)
  • Seed resilience. seed6 replaced with 23skidoo.subgenius.vip for cross-zone DNS resilience.

Do I need to upgrade? (read this — it differs from Triune/Restoration)

The Restoration (block 1,000,000) and Triune (989,898 / 999,991) were hard forks: an old binary was forked off the chain. v2.0.9 is different. BIP66, BIP65, and the coinbase-maturity bump are soft-fork-style tightenings — they only ever make more things invalid, never fewer. A non-upgraded node will keep following the canonical chain because everything the upgraded majority produces is still valid under the old, looser rules.

That makes the upgrade pitch honest rather than alarmist:

  • If you mine — you MUST upgrade before block 1,055,555. A non-upgraded miner can produce a block that violates one of the new rules (a non-strict-DER signature, a CLTV-failing spend, or a coinbase spent before 240 confirmations). Upgraded nodes — which will be the majority — reject that block and orphan it. You lose the reward. There is no grace for miners.
  • If you validate, run an exchange, or run a public node — you should upgrade. A non-upgraded node still follows the chain, but it does not enforce the new rules and will relay transactions the network now rejects. If you integrated OFF expecting BIP66/BIP65 enforcement, enforcement only exists on upgraded nodes. Upgrade to actually get what these rules promise.
  • Rolling checkpoints (#6) are on by default and purely local — you benefit the moment you run v2.0.9, with nothing to configure.

Bottom line: miners, no exceptions; everyone else, strongly recommended. The whole network on one ruleset is the goal; the asymmetry above just describes who gets hurt if they skip it.

PROTOCOL_VERSION is unchanged at 90003 — the wire protocol, wallet on-disk format, and RPC dialect are untouched. Your wallet.dat and chain data carry over.


Downloads

GitHub release: v2.0.9-Eldersign

  • Linux x86_64 daemon + cli — Offerings-daemon-v2.0.9-Eldersign-linux64.tar.gz (depends/ static, glibc 2.35+)
  • Linux x86_64 Qt5 wallet — Offerings-qt-v2.0.9-Eldersign-linux64.tar.gz (depends/ static)
  • Windows x86_64 Qt5 wallet — Offerings-v2.0.9-Eldersign-win64.zip (mingw-w64 cross via depends/)
  • SHA256SUMS-*.txt (also bundled inside each archive)

Verifying

$ tar -xzf Offerings-daemon-v2.0.9-Eldersign-linux64.tar.gz
$ cd Offerings-daemon-v2.0.9-Eldersign-linux64
$ sha256sum -c SHA256SUMS-linux.txt
Offeringsd: OK
Offerings-cli: OK

Upgrading your node (Linux)

sudo systemctl stop offeringsd          # or kill your running daemon
sudo cp Offeringsd /usr/local/bin/
sudo cp Offerings-cli /usr/local/bin/
sudo systemctl start offeringsd
Offerings-cli getinfo | head            # confirm: "version": 2000900

Your wallet.dat and blockchain data are untouched. Brief RPC downtime during restart is expected.

Windows — extract the zip, copy the three .exe files into your Offerings Core install directory, launch the new Offerings-qt.exe. Your %APPDATA%\Offering data directory stays in place.


Credit

The BIP66, BIP65, coinbase-maturity, and public-testnet issues (#32 / #33 / #34 / #38) were flagged by skifdni (@9019x) on 2026-06-14 as the structural items standing between OFF and exchange/wallet integration. Continued contributions to the Restoration line.

Source