CHANGELOG: release 0.94.1
This commit is contained in:
parent
b9fe5d8dae
commit
4c81f4dbc0
2 changed files with 103 additions and 5 deletions
103
CHANGELOG.md
103
CHANGELOG.md
|
@ -2,6 +2,109 @@
|
|||
|
||||
This document outlines major changes between releases.
|
||||
|
||||
## 0.94.1 "Channelization" (08 Apr 2021)
|
||||
|
||||
This is the second and much improved N3 RC1-compatible release. We've mostly
|
||||
focused on documentation and examples with this release, so there is a number
|
||||
of updates in this area including oracle contract example and NEP-11 NFT
|
||||
contract example. At the same time proper testnet network revealed some
|
||||
implementation inconsistencies between NeoGo and C# especially in oracle and
|
||||
state validation services, so there are fixes for them also.
|
||||
|
||||
Protocol-wise this release is compatible with 0.94.0, but MPT structures have
|
||||
changed and there are known state change differences for N3 RC1 testnet, so
|
||||
you need to do full node resynchronization on update from 0.94.0. Some SDK
|
||||
APIs have changed also improving developer experience, but they may affect
|
||||
your code. We don't plan to make more of RC1-compatible releases (the protocol
|
||||
has slightly changed already since the release).
|
||||
|
||||
New features:
|
||||
* RPC (*Client).GetDesignatedByRole method to easily get node lists from
|
||||
RoleManagement contract (#1855)
|
||||
* `calculatenetworkfee` RPC method support (#1858)
|
||||
* RPC client now has additional methods for NEP-11 contracts and specifically
|
||||
for NNS native contract (#1857)
|
||||
* contract deployment from multisig addresses (#1886)
|
||||
|
||||
Behavior changes:
|
||||
* node roles for RoleManagement contract were moved into separate package
|
||||
(#1855)
|
||||
* NotaryVerificationPrice constant was moved into package of its own (#1855)
|
||||
* testnet configuration now has proper N3 RC1 testnet magic (#1856)
|
||||
* crypto.Verifiable interface was removed, now any hash.Hashable thing can be
|
||||
verified (and signed, #1859)
|
||||
* Network field was dropped from transaction.Transaction, block.Header,
|
||||
payload.Extensible, state.MPTRoot, payload.P2PNotaryRequest and
|
||||
network.Message, it was needed for proper hash calculations before recent
|
||||
protocol changes (even though this field is not a part of serialized
|
||||
representation of any of these elements), but now it's only used to
|
||||
sign/verify data and doesn't affect hashing which allowed to simplify
|
||||
interface here (#1859)
|
||||
* RPC server now returns `StateRootInHeader` option in its `getversion`
|
||||
request answers if it's used by the network (#1862)
|
||||
* NNS record types were moved to separate package (#1857)
|
||||
* MaxStorageKeyLen and MaxStorageValueLen constants were moved to storage
|
||||
package from core (#1871)
|
||||
* oracle service now accepts complete URL for other nodes RPC services (#1877)
|
||||
|
||||
Improvements:
|
||||
* RPC (*Client).AddNetworkFee method is now more informative in some error
|
||||
case (#1852)
|
||||
* proper NEP-17 support in unit test contract (#1852)
|
||||
* documentation updates for examples and services (#1854, #1890)
|
||||
* syscall number is now printed for failed syscalls (#1874)
|
||||
* better logging (#1883, #1889)
|
||||
* Oracle native contract interop documentation extended (#1884)
|
||||
* Oracle native contract interop extended with return codes and constants (#1884)
|
||||
* oracle smart contract example (#1884)
|
||||
* NEP-11 NFT smart contract example (#1891)
|
||||
|
||||
Bugs fixed:
|
||||
* node could simultaneously try to connect to the same peer multiple times in
|
||||
some cases (#1861)
|
||||
* uniqueness is enforced now for other node addresses provided by peers (#1861)
|
||||
* stateroot message hash wasn't calculated the same way as in C# (#1859)
|
||||
* state validation service P2P messages were not signed properly (#1859)
|
||||
* state.MPTRoot structure JSON representation was different from C# one (#1859)
|
||||
* stateroot messages generated by state validation service were not setting
|
||||
proper message category (#1866)
|
||||
* block persistence caches were flushed too early by MPT-managing code (#1866)
|
||||
* validated stateroot data overwrote local one which lead to node not
|
||||
functioning after restart if states were different (#1866)
|
||||
* peers delivering P2P message with validated stateroot differing from local
|
||||
one were disconnected (#1866)
|
||||
* state dump comparing script was using old Ledger native contract ID (#1869)
|
||||
* candidate registration check was made in different way from C# in native
|
||||
NEO contract leading to different execution results for erroneous voting
|
||||
transactions (#1869)
|
||||
* state change dumps were different from C# node for erroneous voting
|
||||
transactions even though contract's state was the same (#1869)
|
||||
* arguments were not completely removed from stack in erroneous
|
||||
Runtime.Notify calls leading to different stack state with C#
|
||||
implementation (#1874)
|
||||
* in case contract failed execution with THROW the node didn't print the
|
||||
message from the contract properly (#1874)
|
||||
* `getproof` RPC call output was not strictly compliant with C#
|
||||
implementation (#1871)
|
||||
* MPT node serialization and some constants were out of date wrt C#
|
||||
implementation (#1871)
|
||||
* native NEP-17 contracts could use stale balance data in some cases (#1876)
|
||||
* state validation service could lock the system during shutdown, preventing
|
||||
proper node exit (#1877)
|
||||
* state validation and oracle services were started before node reaching full
|
||||
synchronization which could lead to excessive useless traffic (#1877)
|
||||
* some native contract calls in function arguments could be miscompiled
|
||||
(#1880)
|
||||
* oracle service was accepting http URLs instead of https (#1883)
|
||||
* neofs URIs were subject to host validation in oracle service even though
|
||||
there is no host there (#1883)
|
||||
* neofs URI scheme was differing from C# implementation (#1883)
|
||||
* no default value was used for NeoFS request timeout if it's not specified
|
||||
in the configuration (#1883)
|
||||
* oracle response code was marshalled as integer into JSON (#1884)
|
||||
* MPT could grow in memory unbounded (#1885)
|
||||
* Storage.Find results could differ from C# in some cases (#1888)
|
||||
|
||||
## 0.94.0 "Tsessebe" (19 Mar 2021)
|
||||
|
||||
N3 RC1-compatible release is here. We've implemented all Neo protocol changes
|
||||
|
|
|
@ -7,11 +7,6 @@ functionality.
|
|||
## Versions 0.7X.Y (as needed)
|
||||
* Neo 2.0 support (bug fixes, minor functionality additions)
|
||||
|
||||
## Version 0.94.1 (end of March 2021)
|
||||
* documentation update
|
||||
* more smart contract examples
|
||||
* small fixes if any
|
||||
|
||||
## Version 0.95.0 (TBD)
|
||||
* Neo N3 RC2-compatible version.
|
||||
|
||||
|
|
Loading…
Reference in a new issue