Aleo Testnet III: a developer’s gateway to the future
I am Heorhii, and I am thrilled to guide you through the revolutionary space of Aleo Testnet III. While it’s not production-ready yet, this trusted testnet serves as a playground for developers, offering a sneak peek into the decentralized future. Before we dive in, note that rigorous auditing and testing are in the pipeline before it reaches production.
snarkOS: the decentralized operating system
At the core of Aleo’s infrastructure lies snarkOS, a decentralized operating system tailored for anonymous web applications. It empowers developers to checkpoint and finalize application states in a publicly-verifiable manner. This backbone is open-source and hosted on GitHub, inviting collaboration and exploration.
Querying the network
Connecting to Aleo Testnet III
To interact with Aleo Testnet III, developers can make requests to a designated bootnode. The API is organized around REST, providing a familiar and flexible interface.
Launching a local instance. Utilizing a local instance of snarkOS, developers can seamlessly launch a client node. The API becomes accessible at 0.0.0.0:3033
.
- Command:
snarkos start --client --nodisplay
Dockerizing the experience. For streamlined deployment, Docker offers a quick solution. By initializing a Docker container, developers can interact with the API effortlessly.
- Command:
docker run -it --name snarkos --hostname snarkosc -p 4133:4133 -p 3033:3033 --mount type=bind,source="$(pwd)",target=/aleo/data aleohq/snarkos:latest /aleo/bin/snarkos start --client --nodisplay
This initializes a container called snarkos
and maps the container port 3033
to 3033
on your system. Once the client is initialized, you can access the API as usual (http://0.0.0.0:3033/testnet3/latest/height
).
You can close the container with ctrl
+ c
and restart it with:
docker start -a snarkos
API exploration. The Aleo Testnet III API provides an array of endpoints, facilitating various interactions with the network. Here’s a glimpse of some key endpoints:
- Latest Height:
/testnet3/latest/height
- Latest Hash:
/testnet3/latest/hash
- Latest Block:
/testnet3/latest/block
- Latest State Root:
/testnet3/latest/stateRoot
- Get Block:
/testnet3/block/{height_or_hash}
- Get Blocks:
/testnet3/blocks?start={start_height}&end={end_height}
- Get Height:
/testnet3/height/{blockHash}
- Get Block Transactions:
/testnet3/block/{height}/transactions
- Get Transaction:
/testnet3/transaction/{transactionID}
- Get Memory Pool Transactions:
/testnet3/memoryPool/transactions
- Get Program:
/testnet3/program/{programID}
- Get Mapping Names:
/testnet3/program/{programID}/mappings
- Get Mapping Value:
/testnet3/program/{programID}/mapping/{mappingName}/{mappingKey}
- Get State Path for Commitment:
/testnet3/statePath/{commitment}
- Get Beacons:
/testnet3/beacons
- Get Peers Count:
/testnet3/peers/count
- Get Peers All:
/testnet3/peers/all
- Get Peers All Metrics:
/testnet3/peers/all/metrics
- Get Node Address:
/testnet3/node/address
- Find Block Hash:
/testnet3/find/blockHash/{transactionID}
- Find Transaction ID from Program ID:
/testnet3/find/transactionID/deployment/{programID}
- Find Transaction ID from Transition ID:
/testnet3/find/transactionID/{transitionID}
- Find Transition ID:
/testnet3/find/transitionID/{inputOrOutputID}
- Get Environment Information:
/testnet3/node/env
- Transaction Broadcast:
POST /testnet3/transaction/broadcast
…and many more. Refer to the API documentation for an exhaustive list.
Conclusion. Aleo Testnet III opens a portal for developers to explore, innovate, and lay the groundwork for the decentralized future. As subsequent testnets undergo a trusted setup process, the Aleo ecosystem continues to evolve, inviting developers to shape the landscape of decentralized applications.
Prepared by Colliseum