November 18, 2022

By Stringhandler

This week in Tari

This week, with the release of version 0.39.0, the Esmeralda testnet was reset to height 0. In fact, there’s were 2 major version updates this week.

In v0.39.0, the SHA3 proof of work algorithm was updated from doing 2 rounds to 3 rounds of hashing. Also, two new output types, ValidatorNodeRegistration and CodeTemplateRegistration have been merged into development. In future, these will be used by the Tari Digital Assets Network, but are currently not allowed on Esmeralda.

From v0.40.0 onwards, EmojiIds include the network as well as the checksum. This mechanism prevents sending to a different testnet and will be especially important for Mainnet. There’s no visual difference between EmojiId addresses on different networks, but the wallets are able to confirm the network is the same before sending funds. For interactive payments, this wasn’t previously a problem, since the two wallets are not be able to communicate across the networks, but one-sided payments would end up in funds being lost. The changes to EmojiId prevent this from happening.

The development community is in the process of analyzing the code and preparing for Stagenet, so there may be a few more resets of Esmeralda coming up.

Below is a list of all the changes in v0.40.1, v0.40.0 and v0.39.0.

0.40.1 (2022-11-17)

Bug Fixes

  • set wallet start scan height to birthday and not 0 (see issue #4807) (#4911) (797f91a)

0.40.0 (2022-11-16)


  • add tari address for wallet to use (#4881)


Bug Fixes

  • comms: spawn liveness check after address is final (#4919) (f558a11)
  • remove fs2 dependency from tari_common (#4921) (dca7b06)
  • updates for SafePassword API change (#4927) (92d73e4)

0.39.0 (2022-11-14)


  • merges feature-dan into development (#4913)
  • wallet: use KDFs on ECDH shared secrets (#4847)
  • core: remove unused get_committees call from base node (#4880)
  • refactor CipherSeed, zeroize, and fix key derivation (#4860)
  • impl final tari pow algorithm (#4862)
  • core: adds utxo and block info to get_template_registrations request (#4789)


  • add block height to input request to get network consensus constants (#4856) (23b4313)
  • add grpc to get shard key for public key (#4654) (0fd3256)
  • add missing fields to grpc consensus constants interface (#4845) (ce6c22f)
  • add static lifetime to emission amounts calculation (#4851) (5b0eb04)
  • add validator node registration (#4507) (96a30c1)
  • base_node_grpc_client: add getActiveValidatorNodes method (#4719) (cfa05be)
  • core: add template registration sidechain features (#4470) (8ee5a05)
  • core: add validator registration sidechain feature (#4690) (0fef174)
  • core: store and fetch templates from lmdb (#4726) (27f77b2)
  • impl final tari pow algorithm (#4862) (a580103), closes #4875
  • mempool sync wait for node initial sync (#4897) (5526721)
  • merges feature-dan into development (#4913) (539e758)
  • remove tracing_subscriber (#4906) (956b279)

Bug Fixes

  • base-node: use less harsh emoji for unreachable node (#4855) (2d90e91)
  • ci: correct ARM64 builds (#4876) (7628692)
  • ci: selectively revert resolver for arm64 builds (#4871) (cd88484)
  • ci: update GHA set-output plus dependabot schedule for GHA (#4857) (f978507)
  • comms/peer_manager: fix possible panic in offline calc (#4877) (c0d1f58)
  • computation of vn mmr (#4772) (64002e9)
  • core/metrics: set target difficulty as single value (#4902) (f625f73)
  • core: add txo version checks to async validator (#4852) (2cf51b8)
  • core: adds utxo and block info to get_template_registrations request (#4789) (9e81c7b)
  • core: bring validator node MR inline with other merkle root code (#4692) (613b655)
  • core: remove unused get_committees call from base node (#4880) (392d541)
  • correct value for validator_node_timeout consensus constant in localnet (#4879) (bd49bf2)
  • delete orphans if they exist (#4868) (6ff1c02)
  • dht: use new DHKE shared secret type (#4844) (234571d)
  • fix get shard key (#4744) (3a4dd50)
  • fix validator node registration logic (#4718) (72018f4)
  • force wallet sqlite to do checkpoint after db decryption (#4905) (55d1334)
  • recover mined coinbase (#4896) (2028136)
  • refactor CipherSeed, zeroize, and fix key derivation (#4860) (b190c26)
  • remove tari script serialization fix migration (#4874) (44ed0c8)
  • remove unused config for validator node (#4849) (df5d78e)
  • wallet/grpc: add transaction id and template_address to template_reg response (#4788) (4060935)
  • wallet: use KDFs on ECDH shared secrets (#4847) (3d1a51c)