|
2 | 2 |
|
3 | 3 | This document outlines major changes between releases.
|
4 | 4 |
|
| 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 | + |
5 | 74 | ## 0.102.0 "Aberration" (06 Sep 2023)
|
6 | 75 |
|
7 | 76 | Long-awaited feature-packed 3.6.0-compatible version of NeoGo with all the
|
|
0 commit comments