Sigma release v5.0.0 for Ergo mainnet v5.0.x
This release delivers the new implementation of ErgoTree interpreter with Just-in-Time (JIT) costing.
In this release both v4.x and v5.0 interpreters are implemented side-by-side. The old interpreter (v4.x) is used before version 3 of Ergo Protocol is activated after that the new interpreter (v5.0) is used.
This switch happens automatically based on activated protocol version passed in context parameters.
Summary of changes
- AOT costing of ErgoTree has been replaced by JIT costing
- introduced new AOT costing of signature verification
- fixed bugs in
xorOf
global operation,CONTEXT.selfBoxIndex
,Coll.append
(++
operation),Coll.zip
,substConstants
- removed limitations on lambda argument of
Coll.flatMap
- significant performance optimizations (2-3x) of contracts evaluation
- reduced memory footprint of interpreter
- code cleanups and documentation
What's Changed
- Re-introduce
SigmaCompiler
constructor withnetworkPrefix
(#755) - Encapsulate
Interpreter.evaluationMode
selection (#753) - Use
JitCost
type (#756) - Interpreter with new costing (#738)
- Activation of v5.0 (#748)
- Implement validation for positive integer parsing (#762)
- Implemented simple cases of
// TODO optimize
(#761) - Fix
XorOf
operation (#760, #777) - Fix non-lazy
if
statement (make the branches lazy) (#763) - Protected methods in
Interpreter
(#768) - Resolve all TODO v5.0 (#767)
- Fix
Zip
andAppend
operations (#771) - Add new test for headers (#780)
- Fix
CONTEXT.selfBoxIndex
method (#772) - Fix
SubstConstants
operation (#773) - Fix
Coll.flatMap
method (#775, #790) - Test for
Coll.map
insideColl.fold
(#788) - Added
Coll.flatMap
test (#786) - Added
AvlTree.contains
test (#787) - Testing of JIT costing for changed ErgoTree features (#791)
- Resolve all
TODO mainnet
(#779) - Adding
fromBase16
to the frontend (#737) - Add JIT costing tests vectors (#785)
- Support for registers with Unit value (#817)
Contributors
- @aslesarenko
- @greenhat
- @jozanek made their first contribution in #762
- @thub1271 made their first contribution in #737
Full Changelog: v4.0.7...v5.0.0