This patch version mostly includes a set of library API extensions made to fit the needs of developing MEV-resistant blockchain node. Also, this release bumps minimum required Go version up to 1.22 and contains a set of bug fixes critical for the library functioning.
Minor user-side code adjustments are required to adapt new ProcessBlock callback signature, whereas the rest of APIs stay compatible with the old implementation. This version also includes a simplification of PrivateKey interface which may be adopted by removing extra wrappers around PrivateKey implementation on the user code side.
Behaviour changes:
- adjust behaviour of ProcessPreBlock callback (#129)
- (*DBFT).Header() and (*DBFT).PreHeader() are moved to (*Context) receiver (#133)
- support error handling for ProcessBlock callback if anti-MEV extension is enabled (#134)
- remove Sign method from PrivateKey interface (#137)
Improvements:
- minimum required Go version is 1.22 (#122, #126)
- log Commit signature verification error (#134)
- add Commit message verification callback (#134)
Bugs fixed:
- context-bound PreBlock and PreHeader are not reset properly (#127)
- PreHeader is constructed instead of PreBlock to create PreCommit message (#128)
- enable anti-MEV extension with respect to the current block index (#132)
- (*Context).PreBlock() method returns PreHeader instead of PreBlock (#133)
- WatchOnly node may send RecoveryMessage on RecoveryRequest (#135)
- invalid PreCommit message is not removed from cache (#134)