After a great deal of quiet, focused work, the Topos Testnet, a test and development deployment of the Topos ZkEcosystem, was launched recently. It’s now time to start building and experimenting on Topos. Topos brings ease of deployment, uniform security, and scalability, through an innovative application of cryptography and Zero-Knowledge Proofs. Topos provides a permissionless ecosystem where anyone can participate, deploying their own subnet and interoperating with other subnets.
A network that is sovereign in execution and performs certificate submissions in order to settle its state and interoperate with other subnets.
This definition is notable for what it doesn’t say. The word “blockchain” isn’t in the definition. It doesn’t say that a subnet is a blockchain. This is important. A subnet performs certificate submissions in order to settle its state and interoperate with other subnets. It can be a blockchain, and in many cases will be a blockchain, but it doesn’t have to be a blockchain. Essentially, if it can submit Topos certificates to a sequencer, it can be a Topos compliant subnet. Of course, there’s more to it than that, but stay tuned for more on that in the future!
The Topos Playground — What to Expect or What is the Topos Playground?
The potential with Topos and its subnets is exciting, and one tool introduced by Topos to bridge the understanding gap and to facilitate running a full Topos deployment locally is the Topos-Playground. The Playground provides a simple CLI that can be used to start, stop, and manage a locally deployed devnet. In addition, looking into the structure of the Playground provides an insightful glimpse into the functionalities and the structure of the Topos ecosystem.
Key Features of the Topos Playground
The Playground is built on top of Docker and uses Docker to run a number of different systems which collectively provide a functioning Topos network.
The first of these is the Topos Subnet. This is composed of four Polygon Edge containers, the first of which generates keys and formulates the genesis block of the subnet. It also ensures that the consensus is set to Istanbul Byzantine Fault Tolerant (IBFT). In addition, a sequencer container is launched. The sequencer maintains communications with the TCE Network, which will be introduced in a moment.
The playground launches one other subnet, Incal. This subnet mirrors the Topos Subnet in terms of network topology, with four Polygon Edge nodes, and a sequencer node. The Topos Subnet is a core component of the Topos Ecosystem. Incal, however, is intended to represent a generic subnet. One of the features of Topos is that it is permissionless. Anyone can register a subnet within Topos. After the TCE Network is launched and active, Incal will be available as a registered Topos Subnet.
The piece of the ecosystem which is responsible for ordering and settling certificates is the TCE (Transmission Control Engine) Network. The playground bootstraps the TCE with one node, and then it launches four replicas, creating a five-node TCE Network. Once this network is launched and is running, Incal and the Topos subnets will synchronize with it.
For most users, their primary interface with the Playground will be through the ERC20 Messaging dApp. This application consists of a simple web server and a frontend application, which uses ethers.js to invoke smart contracts. Using the ERC20 Messaging Frontend, one can register tokens on a subnet, and invoke cross-subnet messages, using those tokens. In this example, the cross-subnet message, being a simple token transaction, seems trivial. Topos cross-subnet messages, however, can transfer any arbitrary data between independent subnets in the Topos ZkEcosystem. So while the playground example is simple on the surface, under the covers, these actions involve all of the components of the playground to create a transaction on one subnet, have the certificate, issued by the sequencer on that subnet submitted to the TCE, and have the transaction picked up and acted on by another subnet, and could potentially carry a much more interesting data payload than a token transaction.
The final important component within the Playground is the executor service. The Topos Executor Service executes cross-subnet messages on receiving subnets. It listens for certificates and then submits the transaction payload and the Merkle proof of inclusion for execution.
How to Use the Topos Playground
To see all of this come together, take a look at this video. It demonstrates starting the topos-playground, using it to register a token on two subnets, the Incal subnet and the Topos Subnet, and then running cross-subnet transactions between the two subnets.
Join the Topos Community
The Topos Playground is not just a tool, it’s a community-driven initiative. We encourage you to join our vibrant community of developers on Discord or Github, where you can share your experiences, learn from others, and contribute to the evolution of the playground. Together, we can shape the future of web development and make it more accessible to everyone.
If building on this platform intrigues you, the Topos Builders Program could be your next destination. Apply to join the next cohort of people building on Topos. And for those with questions or seeking more insights, the Topos Discord server is open to everyone. We welcome anyone to join, to participate, and to ask questions.