Cotransduction
This is the first release than can successfully operate as a Testnet CN
bringing with it fixed voting system implementation, policying support and
other related fixes. It also contains RPC improvements and updates to the
compiler.
New features:
- Go smart contracts can now use variables for struct fields initialization
(#656) - for range loops support in the compiler (#658)
- subslicing support for
[]byte
type (#654) - block's storage changes dump support similar to NeoResearch's storage audit
(#649) gettxout
RPC method support (#345)getcontractstate
RPC method support (#342)getstorage
RPC method support (#343)- GetChangeAddress function in the wallet (#682)
- basic policying was implemented allowing to configure
MaxTransactionsPerBlock, MaxFreeTransactionsPerBlock,
MaxFreeTransactionSize and FeePerExtraByte (#682)
Behaviour changes:
- consensus process now only start when server sees itself synchronized with
the rest of the network (see (*Server).IsInSync method, #682) - default testnet and mainnet configurations now contain policer settings
identical to default SimplePolicy C# plugin (#682), privnet is not changed
Improvements:
- keys.PublicKey now has Cmp method available (#661)
- core now exports UtilityTokenID and GoverningTokenID functions (#682)
- miner transactions generated by consensus process now properly set outputs
based on block's transactions fees (#682) - (*Blockchain).
IsLowPriority
now takes fee (Fixed8) as an input (#682) - mempool's GetVerifiedTransactions and TryGetValue now also return
transaction's fee - DBFT logging was improved
- keys package no longer has Signature methods, they were replaced with more
useful GetScriptHash (#682)
Bugs fixed:
- compiler produced wrong code if there was some data containing byte 0x62 in
the program (#630) - answer to the
getblock
RPC method was not following the specification in
multiple places (#659) - State transaction's descriptors were not encoded/decoded correctly (#661)
- keys.PublicKeys slice was not decoded properly (#661)
- 'Registered' descriptor of State transaction was not decoded correctly
(#661) - voting processing and validators election was fixed to follow C#
implementation (#661, #512, #664, #682) - deadlock in network subsystem on disconnect (#663)
- RPC answers with transactions were not following the specification in fields
names (#666) - segmentation fault when checking references of bad transactions (#671)
getassetstate
andgetrawtransaction
RPC methods were not returning
error properly when missing asset or transaction (#675)- consensus RecoveryMessage encoding/decoding wasn't correct (#679)
- DBFT was not reinitialized after successful chain update with the new block
received from other peers (#673) - DBFT timer was extended too much, not following the C# implementation (#682)