diff --git a/CHANGELOG.md b/CHANGELOG.md index 4072dcd05..bcd50a3f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/ROADMAP.md b/ROADMAP.md index 0e3b0ded3..f67329641 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -7,11 +7,10 @@ functionality. ## Versions 0.7X.Y (as needed) * Neo 2.0 support (bug fixes, minor functionality additions) -## Version 0.107.0 (~Jun-Jul 2024) +## Version 0.108.0 (~Jan-Feb 2025) * protocol updates * bug fixes * node resynchronisation from local DB - * CLI library upgrade ## Version 1.0 (2024, TBD) * stable version diff --git a/docs/node-configuration.md b/docs/node-configuration.md index 162ef7909..255e442aa 100644 --- a/docs/node-configuration.md +++ b/docs/node-configuration.md @@ -166,14 +166,17 @@ BlockFetcher module and has the following structure: Password: "pass" Addresses: - st1.storage.fs.neo.org:8080 + - st2.storage.fs.neo.org:8080 + - st3.storage.fs.neo.org:8080 + - st4.storage.fs.neo.org:8080 Timeout: 10m DownloaderWorkersCount: 500 OIDBatchSize: 8000 BQueueSize: 16000 SkipIndexFilesSearch: false - ContainerID: "EPGuD26wYgQJbmDdVBoYoNZiMKHwFMJT3A5WqPjdUHxH" - BlockAttribute: "block" - IndexFileAttribute: "oid" + ContainerID: "7a1cn9LNmAcHjESKWxRGG7RSZ55YHJF6z2xDLTCuTZ6c" + BlockAttribute: "Block" + IndexFileAttribute: "Index" IndexFileSize: 128000 ``` where: