This document outlines major changes between releases.
New features:
Behaviour changes:
- adjust behaviour of ProcessPreBlock callback (#129)
- (*DBFT).Header() and (*DBFT).PreHeader() are moved to (*Context) receiver (#133)
Improvements:
- minimum required Go version is 1.22 (#122, #126)
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)
0.3.0 (01 August 2024)
New features:
- TLA+ model for MEV-resistant dBFT extension (#116)
- support for additional phase of MEV-resistant dBFT (#118)
Behaviour changes:
- simplify PublicKey interface (#114)
- remove WithKeyPair callback from dBFT (#114)
0.2.0 (01 April 2024)
We're rolling out an update for dBFT that contains a substantial library interface refactoring. Starting from this version dBFT is shipped as a generic package with a wide range of generic interfaces, callbacks and parameters. No default payload implementations are supplied anymore, the library itself works only with payload interfaces, and thus users are expected to implement the minimum required set of payload interfaces by themselves. A lot of outdated and unused APIs were removed, some of the internal APIs were renamed, so that the resulting library interface is much more clear and lightweight. Also, the minimum required Go version was upgraded to Go 1.20.
Please note that no consensus-level behaviour changes introduced, this release focuses only on the library APIs improvement, so it shouldn't be hard for the users to migrate to the new interface.
Behaviour changes:
- add generic Hash/Address parameters to
DBFT
service (#94) - remove custom payloads implementation from default
DBFT
service configuration (#94) - rename
InitializeConsensus
dBFT method toReset
(#95) - drop outdated dBFT
Service
interface (#95) - move all default implementations to
internal
package (#97) - remove unused APIs of dBFT and payload interfaces (#104)
- timer interface refactoring (#105)
- constructor returns some meaningful error on failed dBFT instance creation (#107)
Improvements:
- add MIT License (#78, #79)
- documentation updates (#80, #86, #95)
- dependencies upgrades (#82, #85)
- minimum required Go version upgrade to Go 1.19 (#83)
- log messages adjustment (#88)
- untie
dbft
module fromgithub.com/nspcc-dev/neo-go
dependency (#94) - minimum required Go version upgrade to Go 1.20 (#100)
0.1.0 (15 May 2023)
Stable dbft 2.0 implementation.