CHANGELOG: release 0.107.0

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
This commit is contained in:
Anna Shaleva 2024-12-02 20:18:10 +03:00
parent 20ea4c40f5
commit 656d098f5c

View file

@ -2,6 +2,98 @@
This document outlines major changes between releases.
## 0.107.0 "Mongrelization" (03 Dec 2024)
A large update that introduces a major node extension: NeoFS BlockFetcher service and
`util upload-bin` CLI command implemented as a part of [NeoFS snapshot storage
proposal](https://github.com/neo-project/neo/issues/3463). BlockFetcher service, as
an alternative to P2P synchronization mechanism, allows to download blocks and sync
chain from block dumps stored in NeoFS. Starting from this release, NeoSPCC team
maintains chain dumps in NeoFS for N3 and NeoFS public networks. The default NeoGo
node configuration for these networks has been changed to use NeoFS BlockFetcher as
a synchronization mechanism prior to P2P synchronization. Other than that, this
release includes NEP-24 standard support at both compiler and SC bindings generator
levels. A large number of tiny user-facing enhancements is rolled out for RPC
actor/ivoker, `neotest` and `unwrap` packages as far as for CLI utilities. Also,
this release contains a set of NeoGo VM bug fixes inspired by differential VM fuzzing
study conducted by our external contributor @Slava0135 and a set of tiny VM CLI
enhancements introduced by @ixje.
Some deprecated functionality has been removed according to the schedule, see more
details in the `Behaviour changes` section. Also, for those node operators who would
like to check out our new NeoFS BlockFetcher node extension, we'd recommend to add
corresponding section to the node's configuration (see the default node configuration
for N3/NeoFS networks for example).
This release is fully compatible with 3.7.5 version of C# node, no DB resync is
needed.
New features:
* new NeoFS BlockFetcher service that allows to sync node from NeoFS chain dump
(#3515, #3636, #3637, #3632, #3691, #3706, #3668, #3713)
* new `util upload-bin` CLI command that allows to upload blocks from Neo chains to
NeoFS (#3578, #3625, #3626, #3633, #3637, #3638, #3643, #3650, #3662, #3684,
#3686, #3691)
* new `delete` and `ib` VM CLI commands for brealpoints management (#3674)
* NEP-24 standard support (#3560)
* Echidna hardfork introduced, but not yet enabled (please, note that this is only
a preview that includes a part of scheduled changes and will be changed in an
incompatible way before the full support, hence, this hardfork may be enabled for
experimental purpose only) (#3554)
Behavior changes:
* neotest's AddSystemFee and TestInvoke are bound to Executor state (#3551)
* getversion RPC response is extended with seed list and standby committee (#3540)
* support only two latest versions of Go instead of three (#3567)
* some deprecated functionality is dropped: unmarshalling code for the old
`getpeers` RPC response, `NEOBalance` stackitem deserializer compatibility code,
`serv_node_version` Prometheus gauge metric, outdated RPC error codes support,
block-based web-socket transaction awaiting (#3690)
Improvements:
* documentation updates (#3545, #3663, #3666, #3678, #3683, #3708)
* netmode package is extended with public NeoFS chain IDs (#3539)
* dBFT library upgrades (#3541, #3711)
* migration to Docker Compose V2 (#3547)
* system fee required for contract deployment in neotest is precisely calculated
(#3551)
* ability to customize awaiting options for PollingBased RPC waiter (#3556)
* Go 1.23 support, bump minimum required Go version up to Go 1.22 (#3567)
* a set of dependent libraries upgrades (#3570)
* extend the list of supported SC parameters for RPC actor/invoker (#3583)
* Null stackitem result handling for autogenerated RPC bindings (#3584)
* macos-12 support is removed, macos-14 support is added (#3657)
* allow to get NEP-11/NEP-17 balances via CLI using account address only (#3659)
* expose VM slot getters (#3677)
* add `unwrap.ErrNull` error to handle Null stackitem returned (#3695)
* extend web-socket notification subsystem with notification parameter filters
(#3689)
* explicitly prohibit unknown configuration fields for `contract generate-*` CLI
commands (#3708)
* extend compiled smart contract identifier in neotest cache (#3709)
* move `neogo_version` metric out of `network` package (#3712)
Bugs fixed:
* fees of ditched transaction are not cleared from mempool (#3537)
* extension of SC permission descriptor doesn't clear wildcard status (#3544)
* example of NeoGo VM script fails VM execution (#3593)
* a call to `getunclaimedGas` of native Neo contract for account with zero balance
results in VM failure (#3589)
* `MODMUL` VM opcode handler returns wrong results for negative arguments (#3599)
* neotest coverage extension panics on attempt to collect coverage for contract with
missing debug information (#3600)
* `MODPOW`VM opcode handler returns wrong results for negative base (#3649)
* node panic on SIGHUP (#3661)
* HTTP return code of RPC requests diverges from C# RPC server's behaviour (#3665)
* a set of bugs in unit tests (#3442, #3680)
* `POPITEM` VM opcode handler counts stack references improperly (#3688)
* `PACKMAP` VM opcode handler ignores duplicating map keys (#3685)
* chain restore from genesis block fails with StateRootInHeader extension enabled
(#3697)
* hardfork-dependent methods are not included into native contract metadata starting
from the hardfork height (#3704)
* outdated keyword usage in Dockerfiles (#3710)
## 0.106.3 "Lyophilization" (29 Jul 2024)
This 3.7.5-compatible version includes a number of important fixes, so please