CHANGELOG: release 0.102.0

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
This commit is contained in:
Anna Shaleva 2023-07-10 08:41:31 +03:00
parent ee885bafdf
commit 2511dd20cc

View file

@ -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