Use the Sandbox¶
Previous steps: Start your environment¶
If you haven't started a FireFly stack already, please go back to the previous step and read the guide on how to Start your environment.
Now that you have a full network of three Supernodes running on your machine, let's look at the first two components that you will interact with: the FireFly Sandbox and the FireFly Explorer.
Video walkthrough¶
This video is a walkthrough of the FireFly Sandbox and FireFly Explorer from the FireFly 1.0 launch webinar. At this point you should be able to follow along and try all these same things on your own machine.
Open the FireFly Sandbox for the first member¶
When you set up your FireFly stack in the previous section, it should have printed some URLs like the following. Open the link in a browser for the `Sandbox UI for member '0'. It should be: http://127.0.0.1:5109
ff start dev
this will take a few seconds longer since this is the first time you're running this stack...
done
Web UI for member '0': http://127.0.0.1:5000/ui
Sandbox UI for member '0': http://127.0.0.1:5109
Web UI for member '1': http://127.0.0.1:5001/ui
Sandbox UI for member '1': http://127.0.0.1:5209
Web UI for member '2': http://127.0.0.1:5002/ui
Sandbox UI for member '2': http://127.0.0.1:5309
To see logs for your stack run:
ff logs dev
Sandbox Layout¶
The Sandbox is split up into three columns:
Left column: Prepare your request¶
On the left-hand side of the page, you can fill out simple form fields to construct messages and more. Some tabs have more types of requests on them in sections that can be expanded or collapsed. Across the top of this column there are three tabs that switch between the three main sets of functionality in the Sandbox. The next three sections of this guide will walk you through each one of these.
The first tab we will explore is the MESSAGING tab. This is where we can send broadcasts and private messages.
Middle column: Preview server code and see response¶
As you type in the form on the left side of the page, you may notice that the source code in the top middle of the page updates automatically. If you were building a backend app, this is an example of code that your app could use to call the FireFly SDK. The middle column also contains a RUN
button to actually send the request.
Right column: Events received on the WebSocket¶
On the right-hand side of the page you can see a stream of events being received on a WebSocket connection that the backend has open to FireFly. For example, as you make requests to send messages, you can see when the messages are asynchronously confirmed.
Messages¶
The Messages tab is where we can send broadcast and private messages to other members and nodes in the FireFly network. Messages can be a string, any arbitrary JSON object, or a binary file. For more details, please see the tutorial on Broadcasting data and Privately sending data.
Things to try out¶
- Send a broadcast message and view the data payload in every member's FireFly Explorer
- Send a private message to one member, and verify that the data payload is not visible in the third member's FireFly Explorer
- Send an image file and download it from another member's FireFly Explorer
Tokens¶
The Tokens tab is where you can create token pools, and mint, burn, or transfer tokens. This works with both fungible and non-fungible tokens (NFTs). For more details, please see the Tokens tutorials.
Things to try out¶
- Create a fungible token pool and mint some tokens and view your balance in the FireFly Explorer
- Transfer some amount of those tokens to another member and view the transfer transaction in the FireFly Explorer
- Burn some amount of tokens and view the transaction and updated balances in the FireFly Explorer
- Create a non-fungible token pool and mint some NFTs
- Transfer an NFT to another member and verify the account balances in the FireFly Explorer
Contracts¶
The Contracts section of the Sandbox lets you interact with custom smart contracts, right from your web browser! The Sandbox also provides some helpful tips on deploying your smart contract to the blockchain. For more details, please see the tutorial on Working with custom smart contracts.
Things to try out¶
- Create a contract interface and API, then view the Swagger UI for your new API
- Create an event listener
- Use the Swagger UI to call a smart contract function that emits an event. Verify that the event is received in the Sandbox and shows up in the FireFly Explorer.
Go forth and build!¶
At this point you should have a pretty good understanding of some of the major features of Hyperledger FireFly. Now, using what you've learned, you can go and build your own Web3 app! Don't forget to join the Hyperledger Discord server and come chat with us in the #firefly channel.