Skip to content

Commit 9de9320

Browse files
authored
Merge pull request #3172 from nspcc-dev/rel-0.103.0
Release 0.103.0
2 parents b9297a4 + a755a2b commit 9de9320

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

CHANGELOG.md

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

33
This document outlines major changes between releases.
44

5+
## 0.103.0 "Backwardation" (20 Oct 2023)
6+
7+
A minor 3.6.0-compatible version of NeoGo with new salty ZKP-related
8+
functionality, a large batch of deprecated APIs removal and an experimental
9+
genesis block extension. Build Groth-16 circuits, generate proofs and deploy
10+
verification contracts easily with the new end-to-end ZKP example and `zkpbinding`
11+
NeoGo API. Setup node roles via the node configuration starting from the genesis
12+
block without any painful multisignature transaction forming and invoke any
13+
custom script in the genesis-level transaction with the new `Genesis` protocol
14+
configuration extension. And don't forget to move from deprecated RPC client
15+
APIs, as a lot of them have been removed.
16+
17+
New node configuration format is finally adapted and the deprecated configuration
18+
sections are permanently removed according to the schedule. Pay attention to the
19+
`SecondsPerBlock` protocol configuration section that was replaced by
20+
`TimePerBlock`, a set of node and services address- and port- related configuration
21+
section that were replaced by the new `Addresses` format, direct `UnlockWallet`
22+
consensus configuration that was replaced by a separate `Consensus` section and
23+
a set of node-specific protocol configurations that were moved under a separate
24+
`P2P` section.
25+
26+
This release fixes a set of bugs including a vulnerability introduced by changes
27+
in the transaction conflicts storage scheme implemented in #3061 (a part of
28+
0.102.0 release). With the patch presented, it's impossible to uncontrollably
29+
pollute the storage with malicious conflicting records.
30+
31+
This version is fully compatible with C# node 3.6.0. However, it requires
32+
complete resynchronization on upgrade due to the database storage scheme changes.
33+
34+
New features:
35+
* API for Groth-16 verification contracts autogeneration and end-to-end example for
36+
proving and verifying statements on NeoGo (#3043, #3146)
37+
* introduce genesis protocol extensions: default node roles designation and genesis
38+
transactions (#3168)
39+
40+
Behaviour changes:
41+
* a lot of deprecated functionality is dropped: RPC client old APIs, shared
42+
Notifications channel of WebSocket client, SecondsPerBlock protocol
43+
configuration, old way of services and node address and port configuration, old
44+
P2P related application settings configuration, direct UnlockWallet consensus
45+
configuration, direct node-specific protocol configuration (#3150)
46+
* database scheme is changed by new way of storing the transaction conflicting
47+
records (#3138)
48+
49+
Improvements:
50+
* NeoFS SDK dependency upgrade (#3129)
51+
* gnark and gnark-crypto dependencies upgrade (#3145, #3162, #3163)
52+
* introduce timeout restriction for BoltDB opening (#3148)
53+
* bump code coverage uploading action version (#3153)
54+
* Go 1.21 support, bump minimum required Go version up to Go 1.19 (#3157)
55+
* upgrade golang.org/x/net version (#3158)
56+
* add protocol hardforks configuration to the `getversion` RPC response (#3160)
57+
* format autogenerated smart contract bindings with accordance to standard `go fmt` rules (#3164)
58+
* add "DO NOT EDIT" warning to the autogenerated smart contract bindings (#3167)
59+
60+
Bugs fixed:
61+
* avoid race between `getnextblockvalidators` RPC call handler and blockchain's
62+
block handler routine, significantly refactor native validators caching scheme
63+
(#3110)
64+
* do not panic on failed NeoFS oracle requests (#3129)
65+
* enable Notary subsystem in NeoFS mainnet configuration (#3136)
66+
* reorganize storage scheme for transaction conflicting records to avoid possible attack (#3138)
67+
* properly deserialize wildcard trusts field of smart contract manifest (#3140)
68+
* use more strict GAS limit for transaction network fee calculation via RPC call (#3141)
69+
* avoid WebSocket client request blocking (#3142)
70+
* properly emit big uint64 constants during smart contract compilation (#3147)
71+
* avoid race access to the node version by tests (#3149)
72+
* make FindStorage* RPC client APIs to be always compatible with NeoC# RPC server (#3166)
73+
574
## 0.102.0 "Aberration" (06 Sep 2023)
675

776
Long-awaited feature-packed 3.6.0-compatible version of NeoGo with all the

0 commit comments

Comments
 (0)