Skip to content

Cotransduction

Compare
Choose a tag to compare
@roman-khimov roman-khimov released this 19 Feb 13:28
· 6676 commits to master since this release

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 and getrawtransaction 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)