forked from TrueCloudLab/neoneo-go
commit
2d88ed9fe5
2 changed files with 107 additions and 4 deletions
103
CHANGELOG.md
103
CHANGELOG.md
|
@ -2,6 +2,109 @@
|
|||
|
||||
This document outlines major changes between releases.
|
||||
|
||||
## 0.102.0 "Aberration" (06 Sep 2023)
|
||||
|
||||
Long-awaited feature-packed 3.6.0-compatible version of NeoGo with all the
|
||||
appropriate protocol updates and a set of tasty improvements and bug
|
||||
fixes. Groth16 ZKP proof checks are there for contract developers as well as
|
||||
new opcodes. A huge number of improvements went into the RPC server and
|
||||
client, new RPCs, improved contract binding generator and standardized
|
||||
extended error codes make developing dApps much easier.
|
||||
|
||||
Users of smart contract utilities and RPC-related Prometheus metrics are
|
||||
advised to take a look at the deprecated APIs removal schedule
|
||||
(ROADMAP.md). This version was delayed for quite some time (waiting for 3.6),
|
||||
so the next minor release (0.103.0) will remove a substantial amount of
|
||||
compatibility code. It's expected to be released in November with 3.6 protocol
|
||||
compatibility (3.7 cycle is likely to require more time).
|
||||
|
||||
This is also the first version that drops support for Go 1.17 and requires
|
||||
1.18+ to build (with Go 1.20 supported). Using generics in smart contracts is
|
||||
not supported yet, but some elements of this support can be implemented in
|
||||
future versions.
|
||||
|
||||
Mainnet and testnet node operators, please pay attention to the Basilisk
|
||||
hardfork schedule and check your configurations. It will happen at block
|
||||
2680000 for T5 testnet and 4120000 for mainnet. To ensure compatibility your
|
||||
node must be configured appropriately. This version requires DB
|
||||
resynchronization, so schedule your updates accordingly.
|
||||
|
||||
New features:
|
||||
* ZKP proof checking support via CryptoLib native contract (operations with
|
||||
BLS12-381 curve points) (#2940, #3042)
|
||||
* System.Storage.Find interop now support "Backwards" flag to iterate in the
|
||||
opposite direction (#2952)
|
||||
* `util ops` CLI utility that pretty-prints VM script (#2965)
|
||||
* `notarypool_unsorted_tx` Prometheus metric for notary-enabled nodes (#2696)
|
||||
* `CloseNotificationChannelIfFull` WSClient option allowing the client to
|
||||
close notification channel on overflow (#2988)
|
||||
* autogenerated RPC bindings for contract events and conversion code from
|
||||
stackitem.Item to structure (#3008, #3035, #3036, #3087)
|
||||
* event type inference from contract code (#3008)
|
||||
* dynamic contract hashes support for RPC bindings (#3012)
|
||||
* "Basilisk" protocol hardfork support (#3056, #3080, #3086, #3104)
|
||||
* ABORTMSG and ASSERTMSG VM opcodes (#3066)
|
||||
* standardized RPC error codes (#3063)
|
||||
* `findstorage` and `findstoragehistoric` RPC support (#3099)
|
||||
* `getstoragehistoric` RPC support (#3099)
|
||||
* `getrawnotarypool` and `getrawnotarytransaction` RPC (#3098)
|
||||
|
||||
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)
|
||||
* NEP-2 account label will be asked on account import via CLI (#2889)
|
||||
* hashes and states of native contracts are now 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)
|
||||
* strict contract script check is back with Basilisk hardfork, it was
|
||||
previously removed in 0.101.3 for 3.5 protocol compatibility (#3056)
|
||||
* JSON number deserialization (via StdLib.jsonDeserialize) changes with
|
||||
Basilisk hardfork allowing for more precision and handling more corner
|
||||
cases (#3080)
|
||||
* notification type errors are treated as fatal after Basilisk hardfork,
|
||||
before it they're just logged (#3086)
|
||||
* NULL and non-UTF8 items are not allowed for String event types (#3086)
|
||||
* `Conflicts` and `NotValidBefore` transaction attributes are no longer NeoGo
|
||||
extensions, they can be used on regular networks (#2962)
|
||||
|
||||
Improvements:
|
||||
* documentation and example improvements (#2945, #2972, #2979, #3020, #3084,
|
||||
#3099, #3114, #3116, #3119, #3121)
|
||||
* `getproof` and `verifyproof` RPC API support in RPC client (#2942)
|
||||
* Go 1.20 support, bump minimum required Go version up to Go 1.18 (#2908)
|
||||
* faster state reset process (#2819)
|
||||
* optimized voting data storage scheme for NEO contract (#2892, #2893)
|
||||
* NeoFS SDK dependency upgrades (#2995, #3032)
|
||||
* special exported error returned in case of WSClient disconnection (#3000)
|
||||
* automatic guessing of contract and manifest filenames for `contract
|
||||
compile` CLI command and `loadnef` VM CLI command (#3013)
|
||||
* support for pushing stackitem.Convertible objects via VM script emitter (#3016)
|
||||
* economic adjustment for ranking of transactions with `Conflicts` attribute (#3031)
|
||||
* `google.golang.org/grpc` dependency upgrade fixing high severity security
|
||||
vulnerability (#3055, gRPC is only used to communicate with NeoFS nodes in
|
||||
the oracle service)
|
||||
* enforce default RPC server values when it's used as an independent package
|
||||
(not a part of node) (#3107)
|
||||
* unwrap.Nothing function for RPC clients (#3117)
|
||||
* address and reverse hash display in opcode dumps (#3115)
|
||||
|
||||
Bugs fixed:
|
||||
* invalid peer port type returned by `getpeers` RPC response (#2914)
|
||||
* invalid data source for `mempool_unsorted_tx` Prometheus metric (#2969)
|
||||
* 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)
|
||||
* failing CALLT instructions in VM CLI for loaded NEF files (#3020)
|
||||
* missing signers check for on-chain conflicting transactions (#3061)
|
||||
* incorrect sequence point boundaries in debug data (#3074)
|
||||
* compiler panic on encountering generic code (#3041)
|
||||
* potential pooled fallback notary transaction changes (#3108)
|
||||
* lost LastGasPerVote value on NEO state deserialization for non-voting
|
||||
accounts (#3122)
|
||||
|
||||
## 0.101.4 "Yarborough" (01 Aug 2023)
|
||||
|
||||
Another one 3.5.0-compatible version that is aimed to fix T5 testnet state
|
||||
|
|
|
@ -7,12 +7,12 @@ functionality.
|
|||
## Versions 0.7X.Y (as needed)
|
||||
* Neo 2.0 support (bug fixes, minor functionality additions)
|
||||
|
||||
## Version 0.102.0 (~March 2022)
|
||||
* 3.6.0 compatibility
|
||||
## Version 0.102.1 (~October 2023)
|
||||
* bug fixes
|
||||
|
||||
## Version 0.102.1 (~April 2022)
|
||||
* improved RPC error codes
|
||||
## Version 0.103.0 (~November 2023)
|
||||
* extended data types for iterators to be used by RPC wrapper generator
|
||||
* RPC subscription extensions
|
||||
|
||||
## Version 1.0 (2023, TBD)
|
||||
* stable version
|
||||
|
|
Loading…
Reference in a new issue