CHANGELOG: release 0.94.0

This commit is contained in:
Roman Khimov 2021-03-19 21:13:46 +03:00
parent ebce6b7597
commit a727ba75c6
2 changed files with 119 additions and 4 deletions

View file

@ -2,6 +2,116 @@
This document outlines major changes between releases.
## 0.94.0 "Tsessebe" (19 Mar 2021)
N3 RC1-compatible release is here. We've implemented all Neo protocol changes
(including state validation service and NeoFS support for oracles) and are
ready for testnet launch now, so that you could play with new native
contracts, VM instructions and other goodies RC1 brings with it. Some
usability improvements and documentation updates also went into this release
as well as a number of fixes stabilizing Notary subsystem (which is
NeoGo-specific protocol extension).
Please note that this release is incompatible with 0.93.0. We do plan to make
an update soon (with more examples and documentation), but there won't be
long-term support provided, Neo N3 is still on its way to mainnet (although
RC1 and testnet are major milestones on this route).
New features:
* Compiler:
- ellipsis support for append() to non-byte slices (#1750)
- NEP-11 standard conformance check (#1722)
- onNEP*Payable compliance checks (#1722)
* you can pass files as contract arguments now with `filebytes` CLI parameter
(#1762)
* CLI now supports specifying addresses everywhere script hashes are accepted
(#1758)
* System.Contract.CreateMultisigAccount interop function (#1763)
* SQRT and POW VM instructions (#1789, #1796)
* new NeoFSAlphabet node role added to RoleManagement contract (#1812)
* node can serve as state validator node (#1701)
* oracles now support NeoFS (#1484, #1830)
* CLI can be used to dump wallet's public keys (#1811)
* storage fee, candidate register price and oracle request price can now be
adjusted by committee (#1818, #1850)
* native contracts can now be versioned (#1827)
* RPC client was extended with price getters for native contracts (#1838)
Behavior changes:
* NFTs no longer have "description" field (#1751)
* P2P Notary service configuration moved to ApplicationConfiguration section
(#1747)
* native contract methods requiring write permission in call flags now also
require read permission (#1777, #1837)
* System.Contract.Call interop function now requires state read permission
(#1777)
* NeoGo no longer supports Go 1.13 (#1791)
* native contract calls are now contract version aware (#1744)
* interop wrappers for smart contracts now use `int` type for all integers
(#1796)
* MaxTransactionsPerBlock, MaxBlockSize, MaxBlockSystemFee settings are now a
part of node configuration and no longer are available in Policy contract
(#1759, #1832)
* storage items can no longer be constant (#1819)
* state root handling is now conformant with C# implementation (with state
validators and vote/stateroot messages, #1701)
* blocks no longer have ConsensusData section, primary index is now a part of
the header (#1792, #1840, #1841)
* `wallet multisign sign` command was renamed to `wallet sign`, it now works
not just for multisignature contract signing, but also for multiple regular
signers as well as contract verification signing
* conversion interops were moved to StdLib native contract (#1824)
* crypto interops (except basic `CheckSig` and `CheckMultiSig`) were moved to
CryptoLib native contract (#1824)
* PACK, UNPACK and CONVERT instructions now cost more (#1826)
* some native contract types were adjusted (#1820)
* native Neo's `getCommittee` and `getNextBlockValidators` methods now cost
less (#1828)
* block/transaction/payload hashing and signing scheme has changed (#1829,
#1839)
* signing context is now serialized to JSON using base64 for data (#1829)
* System.Contract.IsStandard interop was removed (#1834)
* notifications are no longer allowed for safe contract methods (#1837)
Improvements:
* verification script are now allowed to make contract calls (#1751)
* extensible payloads now have the same size limit as other P2P messages
(#1751)
* error logging is more helpful now in some cases (#1747, #1757)
* function inlining support in compiler for internal intrinsics, interop
refactoring (#1711, #1720, #1774, #1785, #1804, #1805, #1806, #1796, #1809)
* documentation updates (#1778, #1843)
* `sendrawtransaction` and `submitblock` RPC calls now return more detailed
information about errors for failed submissions (#1773)
* NeoGo now supports Go 1.16 (#1771, #1795)
* NEP-17 transfer tracking was optimized to avoid some DB accesses (#1782)
* interop wrappers added for SIGN/ABS/MAX/MIN/WITHIN instructions (#1796)
Bugs fixed:
* `designateAsRole` method returned value while it shouldn't (#1746)
* deleting non-existent key could lead to node panic during MPT calculation
(#1754)
* some invalid IPv4 were accepted by name service contract (#1741)
* some legitimate IPv6 addresses were rejected by name service (#1741)
* compiler: append() to byte array produced wrong results for bytes with
>0x80 values (#1750)
* wrong notary-signed transaction size in notifications leading to client
disconnects (#1766)
* CALLT wasn't checking permission to read states and make calls in call
flags (#1777)
* proper escaping wasn't done in some cases on VM stack item conversion to
JSON (#1794)
* improper network fee calculation for complex multi-signed transactions in
some cases (#1797)
* importing package with the same name as compiled one could lead to
incorrect compiler behavior (#1808)
* boolean values were emitted as integers by compiler leading to some
comparison failures (#1822)
* `invokecontractverify` wasn't calculating proper GAS price of verification
using contract (#1825)
* ContractManagement contract wasn't returning NULL value from `getContract`
method if contract is missing (#1851)
## 0.93.0 "Hyperproduction" (12 Feb 2021)
This is a 3.0.0-preview5 compatible release with important protocol changes,

View file

@ -7,8 +7,13 @@ functionality.
## Versions 0.7X.Y (as needed)
* Neo 2.0 support (bug fixes, minor functionality additions)
## Version 0.94.0 (TBD, aligned with 3.0.0-RC1 release)
* Neo 3.0.0-rc1 compatible version.
## Version 0.94.1 (end of March 2021)
* documentation update
* more smart contract examples
* small fixes if any
## Version 1.0 (2021, aligned with NEO 3.0 release)
* full NEO 3.0 support
## Version 0.95.0 (TBD)
* Neo N3 RC2-compatible version.
## Version 1.0 (2021, aligned with NEO N3 release)
* full NEO N3 support