Skip to content

Commit 2d88ed9

Browse files
authored
Merge pull request #3125 from nspcc-dev/rel-0.102.0
Release 0.102.0
2 parents 26c97a5 + 31cc349 commit 2d88ed9

File tree

2 files changed

+107
-4
lines changed

2 files changed

+107
-4
lines changed

CHANGELOG.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,109 @@
22

33
This document outlines major changes between releases.
44

5+
## 0.102.0 "Aberration" (06 Sep 2023)
6+
7+
Long-awaited feature-packed 3.6.0-compatible version of NeoGo with all the
8+
appropriate protocol updates and a set of tasty improvements and bug
9+
fixes. Groth16 ZKP proof checks are there for contract developers as well as
10+
new opcodes. A huge number of improvements went into the RPC server and
11+
client, new RPCs, improved contract binding generator and standardized
12+
extended error codes make developing dApps much easier.
13+
14+
Users of smart contract utilities and RPC-related Prometheus metrics are
15+
advised to take a look at the deprecated APIs removal schedule
16+
(ROADMAP.md). This version was delayed for quite some time (waiting for 3.6),
17+
so the next minor release (0.103.0) will remove a substantial amount of
18+
compatibility code. It's expected to be released in November with 3.6 protocol
19+
compatibility (3.7 cycle is likely to require more time).
20+
21+
This is also the first version that drops support for Go 1.17 and requires
22+
1.18+ to build (with Go 1.20 supported). Using generics in smart contracts is
23+
not supported yet, but some elements of this support can be implemented in
24+
future versions.
25+
26+
Mainnet and testnet node operators, please pay attention to the Basilisk
27+
hardfork schedule and check your configurations. It will happen at block
28+
2680000 for T5 testnet and 4120000 for mainnet. To ensure compatibility your
29+
node must be configured appropriately. This version requires DB
30+
resynchronization, so schedule your updates accordingly.
31+
32+
New features:
33+
* ZKP proof checking support via CryptoLib native contract (operations with
34+
BLS12-381 curve points) (#2940, #3042)
35+
* System.Storage.Find interop now support "Backwards" flag to iterate in the
36+
opposite direction (#2952)
37+
* `util ops` CLI utility that pretty-prints VM script (#2965)
38+
* `notarypool_unsorted_tx` Prometheus metric for notary-enabled nodes (#2696)
39+
* `CloseNotificationChannelIfFull` WSClient option allowing the client to
40+
close notification channel on overflow (#2988)
41+
* autogenerated RPC bindings for contract events and conversion code from
42+
stackitem.Item to structure (#3008, #3035, #3036, #3087)
43+
* event type inference from contract code (#3008)
44+
* dynamic contract hashes support for RPC bindings (#3012)
45+
* "Basilisk" protocol hardfork support (#3056, #3080, #3086, #3104)
46+
* ABORTMSG and ASSERTMSG VM opcodes (#3066)
47+
* standardized RPC error codes (#3063)
48+
* `findstorage` and `findstoragehistoric` RPC support (#3099)
49+
* `getstoragehistoric` RPC support (#3099)
50+
* `getrawnotarypool` and `getrawnotarytransaction` RPC (#3098)
51+
52+
Behaviour changes:
53+
* deprecated `FromAddress` smart contract helper is dropped from the `util`
54+
interop package (#2941)
55+
* a number of deprecated RPC-related Prometheus counters are permanently
56+
removed (#2941)
57+
* NEP-2 account label will be asked on account import via CLI (#2889)
58+
* hashes and states of native contracts are now accessible via native
59+
ContractManagement API (#2991)
60+
* `serv_node_version` gauge Prometheus metric is marked as deprecated and
61+
replaced by `neogo_version` and `server_id` (#3009)
62+
* strict contract script check is back with Basilisk hardfork, it was
63+
previously removed in 0.101.3 for 3.5 protocol compatibility (#3056)
64+
* JSON number deserialization (via StdLib.jsonDeserialize) changes with
65+
Basilisk hardfork allowing for more precision and handling more corner
66+
cases (#3080)
67+
* notification type errors are treated as fatal after Basilisk hardfork,
68+
before it they're just logged (#3086)
69+
* NULL and non-UTF8 items are not allowed for String event types (#3086)
70+
* `Conflicts` and `NotValidBefore` transaction attributes are no longer NeoGo
71+
extensions, they can be used on regular networks (#2962)
72+
73+
Improvements:
74+
* documentation and example improvements (#2945, #2972, #2979, #3020, #3084,
75+
#3099, #3114, #3116, #3119, #3121)
76+
* `getproof` and `verifyproof` RPC API support in RPC client (#2942)
77+
* Go 1.20 support, bump minimum required Go version up to Go 1.18 (#2908)
78+
* faster state reset process (#2819)
79+
* optimized voting data storage scheme for NEO contract (#2892, #2893)
80+
* NeoFS SDK dependency upgrades (#2995, #3032)
81+
* special exported error returned in case of WSClient disconnection (#3000)
82+
* automatic guessing of contract and manifest filenames for `contract
83+
compile` CLI command and `loadnef` VM CLI command (#3013)
84+
* support for pushing stackitem.Convertible objects via VM script emitter (#3016)
85+
* economic adjustment for ranking of transactions with `Conflicts` attribute (#3031)
86+
* `google.golang.org/grpc` dependency upgrade fixing high severity security
87+
vulnerability (#3055, gRPC is only used to communicate with NeoFS nodes in
88+
the oracle service)
89+
* enforce default RPC server values when it's used as an independent package
90+
(not a part of node) (#3107)
91+
* unwrap.Nothing function for RPC clients (#3117)
92+
* address and reverse hash display in opcode dumps (#3115)
93+
94+
Bugs fixed:
95+
* invalid peer port type returned by `getpeers` RPC response (#2914)
96+
* invalid data source for `mempool_unsorted_tx` Prometheus metric (#2969)
97+
* dBFT library upgrade fixing the ability of a single node to speed up the
98+
process of new blocks creation for the whole network (#3018,
99+
nspcc-dev/dbft#75)
100+
* failing CALLT instructions in VM CLI for loaded NEF files (#3020)
101+
* missing signers check for on-chain conflicting transactions (#3061)
102+
* incorrect sequence point boundaries in debug data (#3074)
103+
* compiler panic on encountering generic code (#3041)
104+
* potential pooled fallback notary transaction changes (#3108)
105+
* lost LastGasPerVote value on NEO state deserialization for non-voting
106+
accounts (#3122)
107+
5108
## 0.101.4 "Yarborough" (01 Aug 2023)
6109

7110
Another one 3.5.0-compatible version that is aimed to fix T5 testnet state

ROADMAP.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ functionality.
77
## Versions 0.7X.Y (as needed)
88
* Neo 2.0 support (bug fixes, minor functionality additions)
99

10-
## Version 0.102.0 (~March 2022)
11-
* 3.6.0 compatibility
10+
## Version 0.102.1 (~October 2023)
11+
* bug fixes
1212

13-
## Version 0.102.1 (~April 2022)
14-
* improved RPC error codes
13+
## Version 0.103.0 (~November 2023)
1514
* extended data types for iterators to be used by RPC wrapper generator
15+
* RPC subscription extensions
1616

1717
## Version 1.0 (2023, TBD)
1818
* stable version

0 commit comments

Comments
 (0)