July 08, 2022
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)