May 18, 2020

By Philip Robinson

Continuing on the long road to stability

After the 0.2.4 release on Friday the network has been far more stable. This week we will continue to focus on improvements to network stability. Today’s updates are primarily focused on improving the validation pipeline in the base node.

Improvements

  • Windows installer was updated for release 0.2.4 and uploaded to Tari.com
  • Adding GetCalcTiming function to grpc service for the base node
    • Added in the GetCalcTiming grpc endpoint.
    • Height lists and header responses were moved into the BlockHeader for better separation of responsibility
  • Replace deprecated bigint library with uint. Thanks for the community contribution from ordian!
  • Split is_stxo and is_utxo transaction validation check
    • The verification of inputs was split into two separate checks to better handle an edge case where some invalid transactions could be accepted as orphaned transactions in the mempool, instead of being discarded. The invalid edge case transactions have an orphaned input and an input that exists in the STxO set and have been classified as an orphaned transaction.
    • Another check was also added to ensure that the outputs created by the new transaction would not create UTxOs that exist in the STxO set.
  • Add check for duplicate transactional inputs and outputs in validators
    • Adds a check for duplicate inputs and outputs in blocks for the validators
    • There was no check other than via the database settings to ensure that inputs and outputs are not duplicates. This means a block can pass validation although it’s not valid.

Bug fixes

  • Don’t panic if the logger is initialized twice in the Wallet FFI. This was needed for the new iOS background service strategy.