October 12, 2020

By Mike Berry

Tari base node v0.5.6 released

Tari Base Node v0.5.6 released with hard fork changes

Release v0.5.6 comes with a number of improvements to the distributed hash table (DHT) network and block propagation strategy. These aim to solve the problem of nodes getting isolated from the network.

This version also has some consensus rule changes that some into effect on block 120,000. This should be mined some time on Sunday 18th October. These changes will fork the chain, so we encourage all testnet node operators and miners to upgrade to v0.5.6 as soon as possible. The rule changes fix, among others, an issue on the monero block difficulty calculation and switching the emission curve to pure integer-based math.

Major features since v0.5.5

  • Propagate block hashes to all connected nodes PR
  • Fixed difficulty calculation on Monero proof of work blocks PR
  • Remove floating-point calculation from achieved difficulty PR
  • Introduce peer syncing and network discovery to improve a node’s overall knowledge of the network PR
  • Improve Closest broadcast strategy and use it for SAF transaction broadcast PR
  • Implement variation of block percentage between proof of work algorithms PR
  • Use an integer-based emission curve to replace floating-point emission curve after testnet block 120000 PR

Minor changes since v0.5.5

  • Allow client application to control when transaction broadcast protocols are restarted PR
  • Expose kernel excess, public nonce, and signature via wallet FFI PR
  • Fix possible inflation bug PR
  • Only update mempool after block sync is complete PR
  • Add the ability to search for blocks containing transaction kernels via GRPC PR
  • Refactored to get the actual reason a tx failed to be logged PR
  • Reduce ban time for sync peers PR
  • Decouple Mempool and BlockchainDatabase PR
  • Optimisation for MMR + clippy fixes PR
  • Delay UTXO validation process until after initial blockchain sync has been achieved PR
  • Implement tools to produce network graphs in memory net examples PR
  • Add daily binary build for Tari Base Node with S3 upload PR
  • Allow fee to be larger than the amount per configuration setting, to allow spending dust in some edge cases PR
  • Fix Name collision in types.proto PR
  • Add reason peer is banned PR, PR
  • Implement STXO validation in the wallet’s Output Manager Service PR
  • Handle runtime error by removing an unnecessary dial-peer command, otherwise, when sometimes it is not successful, the code panics PR
  • Add examples for Service Framework PR
  • Fix target difficulty for block 1 on rincewind PR
  • Cache orphan pool results in memory PR
  • Refactor basenode/wallet/p2p initialization PR
  • Add the Mempool RPC service PR
  • Add unban-all-peers command PR
  • Add list-banned-peers command to base node PR
  • DHT RPC get_peers returns all peers and “on connect” mode for NetworkDiscovery PR
  • Add recovery mode PR
  • Add chain tip tracking of all peers PR
  • Allow the chain meta service to react to banned peers by removing them from its internal collection PR
  • Base node shuts down cleanly