Skip to content

Commit

Permalink
Merge pull request #3717 from nspcc-dev/rel-0.107.0
Browse files Browse the repository at this point in the history
CHANGELOG: release 0.107.0
  • Loading branch information
roman-khimov authored Dec 3, 2024
2 parents 6a7d2bc + 656d098 commit 9a39230
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 5 deletions.
92 changes: 92 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 1 addition & 2 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 6 additions & 3 deletions docs/node-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit 9a39230

Please sign in to comment.