Sawtooth is a Distributed Ledger Blockchain platform which is being fostered under the Hyperledger Umbrella. Sawtooth is slowly gaining momentum in the Blockchain industry as well and becoming the second Hyperledger Blockchain Platform to do so after Fabric.

To get started on Sawtooth you need to download

After setting those up, you need to download this docker compose file for sawtooth which will alow you to run your Sawtooth network in Docker containers.

Once you have downloaded the file, go to its directory and run the command

docker-compose -f sawtooth-default.yaml up

This will download and start up all the docker containers required for your sawtooth network.

To see your running containers, run the command in another terminal

docker ps

You will need to access the client container to interact with your sawtooth network. Log into the client container by running

docker exec -it sawtooth-shell-default bash

Now run this command from inside the container to make sure that the validator is up & running

curl http://rest-api:8008/blocks

If everything is in order, lets proceed to playing Sawtooth’s built in tic-tac-toe game!
First, we’ll have to register two users. Run the following commands

sawtooth keygen Taha
sawtooth keygen Danyal

Now we have two users named “Taha” & “Danyal”

We will be using the “xo cli” for this tutorial. This cli will be responsible for sending transactions to the validator. To make sure that it is up & running, run the following command inside the client container
xo -h

Now lets start the game by
xo create game --url http://rest-api:8008 --username Taha

To check if our game has been successfully created
xo list --url http://rest-api:8008 --username Taha

You should see a “game” object in this list. Now lets actually start the game by taking the first player turn!

xo take game 5 --url http://rest-api:8008 --username Taha
This would’ve marked the first player at the 5th position of the board. To confirm, lets run

xo show game --url http://rest-api:8008 --username Taha

This will show you the current state of the board with a cross in the middle.
Now, let the 2nd player do their turn

xo take game 1 --url http://rest-api:8008 --username Danyal

And again, after doing this you can check the state of the board by

xo show game --url http://rest-api:8008 --username Danyal

Now keep repeating these steps to complete your game and hopefully you’ll find a winner. In our case, it was a draw!

If you need more help with Hyperledger Sawtooth, Please feel free to contact us.