2021 is largely in the rear-view mirror. While the degens were buying pixelated animal JPEGs with enough ETH to put
small countries out of the red, the Tari devs were grinding away.
Stuff in Tari that wasn’t there 12 months ago:
SHA-3 and RandomX Mining pools.
Cross-chain atomic swaps.
Cursory DAN support.
Hotstuff BFT consensus.
NFT-like contracts proof of concept.
Yuge performance improvements.
Stability and performance improvements
Here’s our take on Number Go Up (TM) technology: Performance metrics.
While there are many new features to discuss, a primary focus for Tari has been stability and performance improvements.
We regularly perform significant stress tests on the network where we will flood the network with 36000 transactions in
the space of a minute and see how the wallets and base nodes cope. In September 2020, we did a stress test of this scale,
and after 12 hours, only 71% of the transactions made it onto the chain. Issues revealed by these stress tests included
problems with our P2P networking protocols flooding the network with propagated messages. Our data storage layers thrashed
the CPU and memory of the host machines. We also found many issues in our various high-level chain transaction monitoring,
transaction and block broadcast and propagating strategies.
This year in July, we ran the same scale test and achieved a 100% success rate with all the transactions being mined within
500 blocks where the absolute minimum number of blocks they could have fitted in was 54 blocks. Finally, in December, the
same stress test was again 100% successful, and all the transactions were mined within 300 blocks, with 97% of them mined
within 100 blocks from the beginning of the test. There is still work to be done, but this considerable improvement in
stability and performance has resulted from many hard-won lessons.
For example, this year, we moved most of our network communications to an RPC-style request-response framework. This
replaces the fire-and-forget style messaging we initially built, which is now reserved only for the sending of asynchronous
transaction negotiation messages. There have also been many improvements to our higher-level communication strategies.
For example, the method by which wallets broadcast transactions into the mempool, the way base nodes sync headers and blocks
between themselves, to name just a few.
The Weatherwax testnet launched in July. In 6 months, it has seen 400k transactions and contains 1.8 million UTXO’s.
Apropos of nothing, over the same period, Grin had around 150k transactions in that time and has around 150k UTXOs. Don’t @me.
Tari Script
One of the most significant additions to the base layer has been the implementation of
TariScript
. This is one of Tari’s
Mimblewimble
protocol and is a scripting language that massively expands the capabilities of the Tari
This year we rolled out the first feature to make use of
TariScript
which was the implementation of
One-sided payments allow a wallet to make a payment to a recipient without the recipient’s wallet needing to be online,
solving a long time criticism levelled at Mimblewimble based protocols. We also used
TariScript
to implement cross-chain
Bitcoin
and wrote an RFC for our implementation of an atomic swap with
Monero
This is just the tip of the iceberg of the capabilities Tari Script adds to the protocol, and in 2022 we will see many
more applications of
TariScript
to the base layer and the
Wallets
The common wallet backend library used by the desktop console wallet and Android and iOS Aurora app was the focus of many
of the performance and stability improvements. In addition to the features added by the support of
TariScript
wallet can now recover its funds using the 24-word seed phrase by scanning the blockchain and
to find the outputs that belong to it. To make the recovery process less intensive on the wallet client applications, we
scheme to encrypt the seed phrase and encode the wallet’s birthday into the 24-word seed
phrase. Knowing the wallet’s birthday greatly reduces the work a wallet needs to do to recover its funds as it only has
to scan the blocks since the birthday rather than all the way from the genesis block.
This year we created the standalone desktop console wallet client and iterated on our iOS and Android Aurora apps to make
use of all the new features afforded by the backend, such as wallet encryption and custom base node support. Furthermore,
the Aurora apps have been integrated with
to allow you to send tXTR to Yat’s with associated addresses in addition
to the existing Emoji ID addresses.
Digital Assets Network (DAN)
As the base layer stabilises, the development of the second layer
is going full steam ahead. We have implemented a
proof of concept Validator Node application that includes a HotStuff BFT consensus algorithm and NFT-like contracts.
Mining
This year we rolled out mining node applications for RandomX merge-mining and SHA-3 mining. The
application enables merge mining of Tari along with Monero. And we forked
NodeJsPool
to support Tari merge
mining for Monero pools and also added SHA-3 mining to our fork of the
Miningcore
mining pool framework.
Tari 2021 wrap up
Tari 2021 wrap up