From 72161fe90290b08ec24bc5aee0ffaa4b79f95d9d Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Tue, 21 May 2024 12:41:19 +0300 Subject: [PATCH] CHANGELOG: release 0.106.0 Signed-off-by: Anna Shaleva --- CHANGELOG.md | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e5b84e8a..dca542367 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,105 @@ This document outlines major changes between releases. +## 0.106.0 "Zephyranthes" (21 May 2024) + +We're rolling out a large set of updates including all of Neo 3.7.4 protocol changes: +native contracts update functionality and extended native contract APIs united under +the upcoming Cockatrice hardfork. For smart contract developers an ability to +generate smart contract bindings with dynamic hash is supported as well as a number +of useful extensions for `unwrap` package, compatible NNS smart contract RPC binding +and a lot of other handy enhancements. This release also includes a couple of severe +regression bug fixes affecting the node state. As a bonus of fixing a wide range of +failing tests, we've refactored the node services start and shutdown procedures to +make it more stable. This version drops support for Go 1.19 and requires 1.20+ to +build (with Go 1.22 supported). + +Notice that this release requires full node resynchronization for both mainnet +and testnet nodes. Please pay a special attention to the Cockatrice hardfork schedule +and check your configurations. It should be configured for 3967000 of T5 testnet and +5450000 of mainnet. To ensure compatibility your node must be configured +appropriately. + +New features: + * native contracts update functionality bound to hardforks (#3402, #3444) + * Cockatrice hardfork planned for 5450000 block of mainnet and 3967000 block of T5 + testnet (#3402, #3448, #3402, #3446) + * `CommitteeChanged` events are emitted by NeoToken native contract starting from + Cockatrice hardfork (#3351, #3448) + * `getCommitteeAddress` method of NeoToken native contract is available starting + from Cockatrice hardfork (#3362, #3402) + * `keccak256` method of CryptoLib native contract is available starting from + Cockatrice hardfork (#3301, #3402) + * dynamic contract hash support for smart contract bindings (#3405) + * support `StringCompressed` API for `crypto.PublicKey` (#3408) + * support `Copy` API for `transaction.Transaction` and `payload.P2PNotaryRequest` + (#3407) + * extend `verifyWithECDsa` method of native CryptoLib contract with Keccak256 hasher + starting from Cockatrice and add an example of custom Koblitz-based and + Keccak256-based transaction witness verification (#3425) + * autogenerated `nativehashes` package (#3402, #3431) + * introduce `unwrap.Exception` type for better RPC invocation result exceptions + detection (#3438) + +Behavior changes: + * Neo Name Service smart contract RPC binding follows the official N3 implementation + (#3291) + * clear LastGasPerVote NeoToken account info on unvoting (#3349) + * return fault exception (if any) in `unwrap` RPC client helpers (#3356) + * move P2PNotary designation role out of P2PSigExtensions (#3452) + +Improvements: + * support `smartcontract.Convertible` interface as RPC Actor and Invoker call + parameters (#3297) + * allow to import multisignature account into wallet without WIF and password + specified (#3293) + * upgrade go-ordered-json dependency to avoid possible node state incompatibility + issues caused by smart contract manifest marshalling (#3331, #3333) + * Go 1.22 support, bump minimum required Go version up to Go 1.20 (#3336) + * a number of dependent libraries are updated to the fresh versions (#3338, #3418) + * improve error message of `System.Crypto.CheckMultisig` interop API handler (#3374) + * upgrade dBFT library to v0.2.0 (#3371, #3413) + * increase `ValidUntilBlock` value for transactions generated by CLI commands + (#3376) + * documentation updates (#3375, #3382) + * let default Notary Actor options be customizable (#3394) + * extend `getversion` RPC response with RPC server settings (#3386) + * make errors related to wallet opening more detailed (#3389) + * adjust error messages of `setExecFeeFactor` and `setStoragePrice` methods of + native PolicyContract (#3406) + * make neotest chain constructor options customizable (#3404) + * format improvements for CLI commands description (#3410) + * make state dumps comparator script more verbose (#3411) + * refactor storage `Get` implementation for BoltDB (#3441) + * add `updatecounter` field to the resulting items of `getnativecontracts` RPC API + call (#3439) + +Bugs fixed: + * node panic on committee missing from node configuration (#3294) + * autogenerated RPC bindings do not follow Go naming convention (#3299) + * a batch of failing tests is fixed (#3306, #3313, #3321, #3332, #3337, #3335, + #3344, #3340, #3350, #3355, #3364, #3368, #3377, #3393, #3397, #3392, #3398, + #3400) + * outdated minimum required Go version of boilerplate contract generated by + `neo-go contract init` (#3318) + * outdated address used as an example in RPC client documentation (#3327) + * ungraceful node services shutdown procedure (#3307) + * logging data race on node services shutdown (#3307) + * Map parameter support is missing from RPC server handlers (#3329) + * smart contract storage iterator prefix wasn't copied while iterating over values + (#3336) + * RPC error with -511 code (insufficient funds) returned on `sendrawtransaction` RPC + request should cover multiple cases of sender's insufficient funds (#3360, #3361) + * reentrancy possibility for Notary deposit withdrawal (#3357) + * null `findstorage` RPC response in case of missing storage items (#3385) + * uninitialized named return variables in compiler (#3401) + * wrong debug sequence points after `JUMP*` instructions shortening by compiler + (#3412) + * corrupted genesis block record and application log caused by improper Conflicts + attribute processing (#3437) + * false positive DB-based blocked accounts detection in native PolicyContract leaded + to invalid committee computations and reward distribution made by NeoToken (#3443) + ## 0.105.1 "Enumeration" (12 Jan 2024) This is another v3.6.2-compatible release that fixes mainnet state difference at