Ergo Protocol Reference Client 4.0.1
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)