Skip to content

v1.2.2-DIMEBAG

Choose a tag to compare

@github-actions github-actions released this 03 Nov 06:31

Release v1.2.2-DIMEBAG of midwimble.

An update for every node, pool and producer, so that the whole network
replaces over-cap blocks the same way and follows the chain that results.
Consensus is v1.2-DIMEBAG's: from block 86,400 the proof of work is
Midstate Walk, and nothing in this release changes what a valid block is.

Upgrade every node. A node on v1.2.1-DIMEBAG or earlier cannot follow a
chain that replaced a long run of over-cap blocks (below), and bans the peer
that offers it.

Over-cap blocks are replaced

While the tip is a run of other producers' over-cap blocks, a node now builds
on the block before the run: its own miner's blocks, and the templates
/mining/template and /merge/job hand out. A block there that counts in
full outweighs the whole run (an over-cap block weighs 1/1024 of its work),
so it replaces it. The run's blocks pay nothing, pay and fees alike, and the
replacement carries their transactions again. Past its bonds' share of the
window, a producer's blocks are replaced, not just tapered: what keeps them is
enough bonds for its hashrate.

  • How far back: at most the latest 12 blocks of a run by default, which
    nodes on earlier releases can follow. midwimble node --max-orphan-depth N
    takes it up to 100 once the network has upgraded.
    --no-orphan-over-cap keeps a node on the tip.
  • Templates say where they build: prev_hash, and orphans (how many
    blocks the template's block would replace). "orphan_over_cap": false
    keeps a template on the tip; the midwimble pool asks for that. /state
    reports orphaning.
  • The explorer marks over-cap blocks and counts each block's full-weight
    confirmations: the blocks from it to the tip that counted in full. A
    payment is settled by those. A block with none can still be replaced,
    however many confirmations it has.
  • docs/BONDED_POW.md, "Orphaning over-cap blocks", has the details.

Nodes follow a heavier chain that is shorter

A replacement leaves a chain that is heavier but shorter. A node offered a
heavier chain asked for headers from 16 blocks below its own tip, so when a
replaced run was longer than that, it asked past the peer's tip. The peer
had no headers there and answered with none. The node struck it for not
backing its claim, and banned it at the third strike, for an hour and
longer on repeats. A seed that replaced long runs was cut off by every node
still on them. A node now asks from below the shorter of the two tips, and
an empty answer past the tip a peer claimed is no longer a strike.

Also

  • Bond proofs refresh themselves: midwimble bond register takes a fresh
    proof once the saved one's midstate header has left the relay's window, is
    within an hour of leaving it, or is no longer midstate's header at that
    height, and prints how long a proof can register for. --fresh-proof
    forces one. GET /relay reports burial_headers and relay_window.
  • Burn tracker: the explorer's #/burn page and GET /explorer/burn
    total what over-cap bonds left unminted, with a leaderboard by bond.
  • For midstate's wallet: the core exposes the signature challenges and
    wallet-key bytes that MDS ⇄ MDW swaps sign with.

Built --release --features webrtc,gpu from commit ea1ee330591a939dff39d0e011d5a6ab5ad8daaa. Each archive holds one midwimble binary — node, wallet, pool, merged miner and anchoring — with LICENSE and README.

Download Platform
midwimble-v1.2.2-DIMEBAG-x86_64-unknown-linux-gnu.tar.gz Linux x86-64
midwimble-v1.2.2-DIMEBAG-aarch64-unknown-linux-gnu.tar.gz Linux ARM64 — Raspberry Pi 3 / 4 / 5 on a 64-bit OS
midwimble-v1.2.2-DIMEBAG-x86_64-apple-darwin.tar.gz macOS (Intel)
midwimble-v1.2.2-DIMEBAG-aarch64-apple-darwin.tar.gz macOS (Apple Silicon)
midwimble-v1.2.2-DIMEBAG-x86_64-pc-windows-msvc.zip Windows x64
midwimble-v1.2.2-DIMEBAG-aarch64-pc-windows-msvc.zip Windows on ARM

Verify with sha256sum -c SHA256SUMS.txt (checksums attached).