Skip to content

Sigma release v5.0.0 for Ergo mainnet v5.0.x

Compare
Choose a tag to compare
@aslesarenko aslesarenko released this 12 Oct 12:08
· 1011 commits to develop since this release
79c6f6f

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 with networkPrefix (#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 and Append 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 inside Coll.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

Full Changelog: v4.0.7...v5.0.0