July 01, 2022

By stringhandler

This week in Tari

There’s been a lot of development on the second layer of Tari these last two weeks. Progress has been made on the committee management initialization and validator node start up process. To that end, you can now play around with initializing and selecting validator nodes in the console wallet. You can use tari_console_wallet contract --help to see the available commands. Be warned though, it’s very experimental and subject to change.

    tari_console_wallet.exe contract <SUBCOMMAND>

    -h, --help       Print help information
    -V, --version    Print version information

    help                       Print this message or the help of the given subcommand(s)
    init-amendment             A generator for amendment files that can be edited and passed to
                                   other contract commands
    init-constitution          A generator for constitution files that can be edited and passed
                                   to other contract commands
    init-definition            Generates a new contract definition JSON spec file that can be
                                   edited and passed to other contract definition commands
    init-update-proposal       A generator for update proposal files that can be edited and
                                   passed to other contract commands
    publish-amendment          Creates and publishes a contract amendment UTXO from the JSON
                                   spec file
    publish-constitution       Creates and publishes a contract definition UTXO from the JSON
                                   spec file
    publish-definition         Creates and publishes a contract definition UTXO from the JSON
                                   spec file
    publish-update-proposal    Creates and publishes a contract update proposal UTXO from the
                                   JSON spec file

Calling init-definition will get you started and prompt you for the information you need. Afterwards you’ll call publish-definition with the file you created, and then do the same process for init-constitution and publish-constitution. For more detail about Contract Definitions and Constitutions, see the RFC.

Here’s a list of the PR’s recently merged:


  • add an encrypted value to the TransactionOutput (#4148) (01b600a)
  • add sender to instructions (#4234) (6c116ac)
  • add validator node checkpointing (#4217) (8b0add0)
  • base_layer: basic contract constitution validation (#4232) (c2efd5e)
  • base_layer: basic validations for proposals, proposal acceptances and amendments (#4238) (64f8972)
  • base_layer: validate duplicated acceptances (#4233) (3d8a3b2)
  • base_layer: validate that contract definitions are not duplicated (#4230) (0a2812c)
  • base_layer: validation of committee membership in contract acceptances (#4221) (641844a)
  • base-node: improve contract utxo scanning (#4208) (0fcde31)
  • change tari explorer block view (#4226) (652cba3)
  • ci: build both x86/arm64 docker images from GHA (#4204) (28a8f8b)
  • console-wallet: generate issuer key for contract init-definition (#4202) (7317d6b)
  • contract auto acceptance (#4177) (87f9969)
  • core: add contract index to blockchain database (#4184) (b7e97f4)
  • core: new output features for changes in contracts (#4169) (41570f6)
  • miner: friendlier miner output (#4219) (4245838)
  • publication of contract update proposal acceptances (#4199) (e3b2b9b)
  • scan base node for constitutions (#4144) (310a2d2)
  • swap dalek bulletproofs for bulletproofs-plus (#4213) (46f9bb8)
  • use tari_crypto’s updated “extended pedersen commitment factory” (#4206) (50ce20a)
  • validator_node: add global db (#4210) (3965267)
  • validator-node: add logging (#4189) (2ed859f)
  • validator-node: allow network to be configured via cli (#4190) (6a4c1a4)
  • vn: record contract states (#4241) (92ae4ab)
  • wallet selects previous checkpoint for spending (#4236) (90a5ec3)
  • wallet: adds contract_id to outputs db (#4222) (6f331f8)
  • wallet: allow UTXO selection by specific outputs and by token (#4227) (f2a7e18)
  • wallet: new cli commands to initialise proposals and amendments (#4205) (40cbd50)
  • wallet: new command to publish a contract update proposal (#4188) (0e3bee0)
  • wallet: publish contract amendment (#4200) (edcce4a)

Bug Fixes

  • add prettierignore for partials (#4229) (923cf07)
  • contract-index: adds support for ContractAmendment to contract index (#4214) (a41d0c9)
  • core: cleanup duplicate maturity check (#4181) (5e55bf2)
  • test: integration test for validator node is broken (#4192) (16d6ba5)
  • test: unifying dan layer integration tests (#4175) (f3495ee)
  • validator-node: return error if contract_id empty for publish_contract_acceptance grpc (#4191) (8874114)
  • validator: set tor_identity base path (#4187) (e324b80)
  • wallet: select only basic utxos when building a transaction (#4178) (42269ae)
  • wallet: use correct type for contract_id in the contract constitution file format (#4179) (669a1bd)
  • core: replace OutputFlags with OutputType (#4174) (d779f43)