diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fe93ddf7..ffba43609 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,67 @@ This document outlines major changes between releases. +## 0.104.0 "Globalization" (27 Nov 2023) + +We're updating NeoGo to push out a number of useful updates and protocol +extensions as well as make it compatible with 3.6.2 version of C# node. The most +invasive behaviour changes are VM-level protocol constraints imposed on the size +of serialized stackitems and `NativeActivation` node setting removal. This version +also delivers a set of smaller useful changes in the interoperability layer and +native contract functionality including System.Runtime.CurrentSigners interop, +`strLen` StdLib method and PolicyContract-based transaction attributes pricing +as far as a user-facing `canceltx` CLI command and community-requested +`--relative-path` CLI option. + +Node operators must resynchronize their nodes to get fully compatible state +(which is confirmed to be compatible with 3.6.2 for current mainnet up to +block 4483627 and T5 testnet up to block 3078762). Please, ensure your node +configuration doesn't contain `NativeActivations` protocol configuration section +as this logic is hidden under Hardforks starting from the current release. + +New features: +* System.Runtime.CurrentSigners interop allowing to get signers of the currently + loaded transaction (#3058) +* `strLen` method to native StdLib contract (#3208) +* transaction attributes pricing regulation via native PolicyContract (#3155) +* `canceltx` CLI command as an alternative to unsupported `canceltransaction` RPC + request (#3223, #3214) + +Behaviour changes: +* reduce maximum allowed stackitem.Item size (#3185) +* restrict maximum allowed NEF file size and prohibit large contracts deployment (#3186) +* bind `NativeActivations` node setting to the `Hardforks` setting (#3212) +* introduce serialization limit to stackitem.Item and fail large contracts deploy + wrt this setting (#3218) +* add customizable `MaxRequestBodyBytes` and `MaxRequestHeaderBytes` RPC server + configuration setting (#3221) + +Improvements: +* provide more detailed error on attempt to read non-existent service wallet + provided via node configuration file (#3210) +* optimize emit of imported code for autogenerated RPC bindings (#3215) +* documentation update (#3203, #3222) +* add `--relative-path` CLI flag allowing to override configuration-specific relative + paths (#3206) +* update code owners (#3216, @fyrchik will live in our hearts forever) + +Bugs fixed: +* unify messages of RPC errors according to the RPC errors NEP (#3199) +* limit maximum allowed number ad depth of transaction signers and witnesses per + RPC request that accept transaction (#3207, #3221) +* forbid unknown fields usage in the node configuration file (#3209) +* enable hardfork-dependant code starting exactly from the block height specified + in the node configuration (#3211) +* require Notary native deposit to be valid for at least one subsequent block after + deposit transaction acceptance (#3211) +* deduplicate unnamed event types for autogenerated RPC bindings and make the + binding generation order strictly defined and stable (#3215, #3220) +* do not panic on trying to compile an import cycle (#3215) +* state difference at block 3002333 of T5 testnet caused by difference at characters + escaping during manifest's `Extra` field JSON serialisation (#3225) +* properly start node services that depend on native RoleManagement contract data + with genesis `Roles` protocol configuration setting specified (#3229) + ## 0.103.1 "Verification" (09 Nov 2023) An urgent 3.6.0-compatible version that contains a hotfix for the bug that