Skip to content

Ergo Protocol Reference Client 4.0.1

Compare
Choose a tag to compare
@kushti kushti released this 20 Jan 13:16
· 3500 commits to master since this release
029bab8

This version is the same as 4.0.0 with just a backwards compatibility fix in block transactions serializer. Below is 4.0.0 description


This 4.0.0 release represents "The Hardening" protocol upgrade and thus contains breaking changes!.

The Hardening protocol upgrade will be activated on block # 417,792. Initial difficulty for the block is set to "6f98d5555555" (in hex), which is corresponding to ~ 1TH/s hashrate.
Major changes

Autolykos 2 PoW scheme. It has non-outsourceability being switched off, table size growing with time, possible memory optimizations fixed.
Merkle tree of transactions now also committing to transaction witnesses (a SegWit-like construction).
possibility to enhance header structure via velvet forks added

Also, sigma-interpreter (ErgoTree interpreter) dependency updated to 4.0. Full details: ergoplatform/sigmastate-interpreter#712 , most important for the Ergo protocol are:

activatedScriptVersion field added to execution context (ErgoLikeContext)
ErgoTree interpreter is now skipping validation for scripts if activated script version is higher than interpreter supports (so old nodes are skipping validation on soft-forks when 90+% mining power activated the ErgoTree upgrade). See changes in Interpreter.verify()
v4.0 can support AOT -> JIT switch as v5.0 soft-fork

Upgrade Notes

Upgrade from 3.3.4 and on - just replace old jar with the new one.
3.3.0 - 3.3.3 - full resync is needed for MacOS X (leave /wallet/keystore folder where encrypted seed is stored). Also, please see upgrade notes for 3.3.4 if you are restoring pre-3.3.4 mnemonic https://github.com/ergoplatform/ergo/releases/tag/v3.3.4
3.2.x - unlock wallet on the first 4.0.0 node run and do wallet rescan with /wallet/rescan API call (alternatively, you can remove wallet/registry folder before running the node)
3.0.x && 3.1.x - full resync is needed (leave /wallet/keystore folder where encrypted seed is stored)