From a755a2be3074096f6ade447dfd1784e88b677be9 Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Fri, 20 Oct 2023 19:29:27 +0300 Subject: [PATCH] CHANGELOG: release 0.103.0 Signed-off-by: Anna Shaleva --- CHANGELOG.md | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51124368b..fbb3686f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,75 @@ This document outlines major changes between releases. +## 0.103.0 "Backwardation" (20 Oct 2023) + +A minor 3.6.0-compatible version of NeoGo with new salty ZKP-related +functionality, a large batch of deprecated APIs removal and an experimental +genesis block extension. Build Groth-16 circuits, generate proofs and deploy +verification contracts easily with the new end-to-end ZKP example and `zkpbinding` +NeoGo API. Setup node roles via the node configuration starting from the genesis +block without any painful multisignature transaction forming and invoke any +custom script in the genesis-level transaction with the new `Genesis` protocol +configuration extension. And don't forget to move from deprecated RPC client +APIs, as a lot of them have been removed. + +New node configuration format is finally adapted and the deprecated configuration +sections are permanently removed according to the schedule. Pay attention to the +`SecondsPerBlock` protocol configuration section that was replaced by +`TimePerBlock`, a set of node and services address- and port- related configuration +section that were replaced by the new `Addresses` format, direct `UnlockWallet` +consensus configuration that was replaced by a separate `Consensus` section and +a set of node-specific protocol configurations that were moved under a separate +`P2P` section. + +This release fixes a set of bugs including a vulnerability introduced by changes +in the transaction conflicts storage scheme implemented in #3061 (a part of +0.102.0 release). With the patch presented, it's impossible to uncontrollably +pollute the storage with malicious conflicting records. + +This version is fully compatible with C# node 3.6.0. However, it requires +complete resynchronization on upgrade due to the database storage scheme changes. + +New features: +* API for Groth-16 verification contracts autogeneration and end-to-end example for + proving and verifying statements on NeoGo (#3043, #3146) +* introduce genesis protocol extensions: default node roles designation and genesis + transactions (#3168) + +Behaviour changes: +* a lot of deprecated functionality is dropped: RPC client old APIs, shared + Notifications channel of WebSocket client, SecondsPerBlock protocol + configuration, old way of services and node address and port configuration, old + P2P related application settings configuration, direct UnlockWallet consensus + configuration, direct node-specific protocol configuration (#3150) +* database scheme is changed by new way of storing the transaction conflicting + records (#3138) + +Improvements: +* NeoFS SDK dependency upgrade (#3129) +* gnark and gnark-crypto dependencies upgrade (#3145, #3162, #3163) +* introduce timeout restriction for BoltDB opening (#3148) +* bump code coverage uploading action version (#3153) +* Go 1.21 support, bump minimum required Go version up to Go 1.19 (#3157) +* upgrade golang.org/x/net version (#3158) +* add protocol hardforks configuration to the `getversion` RPC response (#3160) +* format autogenerated smart contract bindings with accordance to standard `go fmt` rules (#3164) +* add "DO NOT EDIT" warning to the autogenerated smart contract bindings (#3167) + +Bugs fixed: +* avoid race between `getnextblockvalidators` RPC call handler and blockchain's + block handler routine, significantly refactor native validators caching scheme + (#3110) +* do not panic on failed NeoFS oracle requests (#3129) +* enable Notary subsystem in NeoFS mainnet configuration (#3136) +* reorganize storage scheme for transaction conflicting records to avoid possible attack (#3138) +* properly deserialize wildcard trusts field of smart contract manifest (#3140) +* use more strict GAS limit for transaction network fee calculation via RPC call (#3141) +* avoid WebSocket client request blocking (#3142) +* properly emit big uint64 constants during smart contract compilation (#3147) +* avoid race access to the node version by tests (#3149) +* make FindStorage* RPC client APIs to be always compatible with NeoC# RPC server (#3166) + ## 0.102.0 "Aberration" (06 Sep 2023) Long-awaited feature-packed 3.6.0-compatible version of NeoGo with all the