May 17, 2022
A Tari Game of Chess
Building a game using the Tari network
Something a little different this week. While development effort has been focused on planning and implementation of the [digital asset layer], the Tari development community has been thinking about some interesting use-cases for e2e-encrypted messaging routed on the Tari DHT network.
The raison d’être of the network routing/messaging feature is to allow wallets to complete Mimblewimble transactions without requiring both participants to be online at the same time. To briefly explain how this works, a wallet broadcasts some encrypted payload to the network addressed to some other network address. That message is routed within the Tari network until either the destination is reached or, failing that, is kept by neighbours and handed over when destination wallet comes online.
That’s all pretty nifty, but can this only be used for sending Mimblewimble transactions? As you may have guessed, the answer to that is no. In fact, the routing and storing nodes can’t really tell the difference between transaction messages and any other message sent on the network. This “store-and-forward” functionality, allows a number of interesting use-cases normally reserved for centralized servers.
As an experiment, one of the development contributors decided to implement a toy multiplayer chess game in Rust where the game participants never directly connect to each other – all communication is routed through the Tari network. If your opponent is offline, they will receive your move when they are next online.
You can check it out on github.