diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e0d49bb2..7b38331b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,78 @@ This document outlines major changes between releases. +## 0.102.0 "Yarborough" (TODO Jul 2023) + +Long-awaited 3.6.0-compatible version of NeoGo with all the appropriate protocol +updates and a set of tasty improvements and bug fixes. This release delivers a +couple of major features which are extremely useful for smart contract developers. +The first one is the interoperability support of group operations over BLS12-381 +elliptic curve points which makes it possible to implement Groth16 proving system +on the top of the Neo blockchain. Another one is the improvement of RPC bindings +generator: automatic contract event wrappers and dynamic contract hashes are +properly supported from now. Also, a severe dBFT vulnerability that may cause +rush in blocks acceptance triggered by a presence of a single misconfigured +consensus node was fixed. + +This is also the first version that supports Go 1.20 (generics in smart contracts +are not supported yet, but scheduled for the further releases). Support for +Go 1.17 is removed at the same time, so you need Go 1.18+ to build NeoGo now. +The users of smart contract utilities and RPC-related Prometheus metrics are +welcomed to take a look at the deprecated APIs removal. + +Another vital change is TODO hardfork that will happen on mainnet and T5 testnet +soon. Compatibility is confirmed for current T5 testnet and mainnet, but this +version requires a resynchronization so schedule your updates accordingly. + +Important note for node operators: please, consider that configuration file used +by your mainnet node contains not only Aspidochelone hardfork enabled at height +1730000, but also TODO hardfork enabled at height TODO. T5 testnet is continuing +to be supported, thus ensure that testnet configuration file includes TODO +hardfork enabled at height TODO. + +New features: + * ZKP interoperability support (operations with BLS12-381 curve points) (#2940, #3042) + * `CloseNotificationChannelIfFull` WSClient option allowing the client to close notification channel on overflow (#2988) + * `--config-file` CLI option allowing to start the node with a single configuration file (#3014) + * autogenerated RPC bindings for contract events and conversion code from stackitem.Item to structure (#3008, #3035, #3036) + * dynamic contract hashes support for RPC bindings (#3012) + * TODO hardfork that will happen on the mainnet/testnet at TODO height + * System.Runtime.CurrentSigners interop (#3058) + +Behaviour changes: + * deprecated `FromAddress` smart contract helper is dropped from the `util` interop package (#2941) + * a number of deprecated RPC-related Prometheus counters are permanently removed (#2941) + * hashes and states of native contracts are accessible via native ContractManagement API (#2991) + * `serv_node_version` gauge Prometheus metric is marked as deprecated and replaced by `neogo_version` and `server_id` (#3009) + +Improvements: + * `getproof` and `verifyproof` RPC API supported by RPC client (#2942) + * new `util ops` CLI utility that pretty-prints VM script (#2965) + * Go 1.20 support, bump minimum required Go version up to Go 1.18 (#2908) + * NEP-2 account label will be asked on account import via CLI (#2889) + * faster state reset process (#2819) + * blockchain Notary and Oracle services documentation improvement (#2972) + * new `notarypool_unsorted_tx` Prometheus metric (#2696) + * NeoFS SDK dependency upgrades (#2995, #3032) + * special exported error returned in case of WSClient disconnection (#3000) + * automatic release binaries attachment (#3010) + * guess contract and manifest filenames for `contract compile` CLI command and `loadnef` VM CLI command (#3013) + * allow to emit stackitem.Convertible objects via VM script emitter (#3016) + * economic adjustment for ranking of transactions with `Conflicts` attribute (#3031) + * BoltDB (`go.etcd.io/bbolt`) dependency upgrade that fixes a number of Windows-related issues (#3034) + * `google.golang.org/grpc` dependency package upgrade fetching high severity security vulnerability fix (#3055) + +Bugs fixed: + * invalid peer port type returned by `getpeers` RPC response (#2914) + * panic on node start with invalid configuration (#2968) + * invalid data source for `mempool_unsorted_tx` Prometheus metric (#2969) + * deadlock on unhealthy RPC server shutdown (#2966) + * improper WSClient notification channels managing after disconnection (#2980) + * missing Prometheus metric initialisation on node start (#2992) + * invalid initialisation of native contracts cache (#2994) + * dBFT library upgrade fixing the ability of a single node to speed up the process of new blocks creation for the whole network (#3018, nspcc-dev/dbft#75) + * incorrect way of incremental DB dumps creation (#3047) + ## 0.101.3 "Yuckiness" (08 Jul 2023) Yet another 3.5.0-compatible emergency version that removes scrupulous