Skip to content

Globalization

Compare
Choose a tag to compare
@AnnaShaleva AnnaShaleva released this 27 Nov 15:21
· 706 commits to master since this release
fd7b7ff

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 NativeActivations 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 of 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 specified 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 and 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)