July 08, 2022

By stringhandler

This week in Tari

Tari’s DAN Layer is progressing nicely with a lot of pull requests (PRs) related to checkpoints and committees getting merged this week.

One exciting PR merged this week was #4260: Add range proof batch verification to validators.

More than 80% of CPU time during block sync and verification is taken up by range proof verification. Using a clever trick of using the same cryptographic generators, multiple range proofs can be verified at the same time, dramatically cutting down the time taken in verification.

Bulletproof+ benchmarks have shown that range-proof verification gains for an empty block with only two outputs would be around 37%. A slightly more populated block with four outputs gains would be 56%, and then for a densely populated block (256 outputs or more) the gains would approach 80%. Effective speedup of block verification in these three cases would be around 30% for two outputs, around 45% for four outputs and around 64% for 256 outputs or more.

Here’s a list of other PRs recently merged:

Features

  • add checkpoint_number to checkpoint with basic base layer validations (#4258) (7b76141)
  • add encryption service (#4225) (6ce6b89)
  • add range proof batch verification to validators (#4260) (02d3121)
  • add tari engine for flow and wasm functions (#4237) (a997934)
  • base_layer: basic checkpoint validation (#4293) (045997a)
  • comms: add or_optional trait extension for RpcStatus (#4246) (11fddf6)
  • contract acceptance signatures are submitted and validated (#4269) (414be33)
  • core: validates non-contract utxos have no sidechain features (#4259) (a8ba89f)
  • dan_layer/core: track checkpoint number for each checkpoint submitted (#4268) (16e07a0)
  • dan_layer: generate and add checkpoint signatures (#4261) (0f581ca)
  • wallet: uses tip height to calc abs acceptance period (#4271) (480d55d)

Bug Fixes

  • add saturating sub to prevent potential underflow (#4286) (56d184a)
  • base-node: minor fixups for hex/type parsing and long running commands (#4281) (f910cce)
  • core: include issuer public key in contract id hash (#4239) (ef62c00)
  • dan_layer/core: include state root in checkpoint signature (#4285) (bcaabf0)
  • vn: scan and save contracts without autoaccept (#4265) (a137f53)
  • wallet: handle not found rpc error in utxo scanning (#4249) (bcd14c7)