Scalability (or rather the lack of it) is one of the biggest challenges with existing public blockchain platforms. Without scalability it is hard to imagine a real-world decentralized application built on a blockchain.
Whilst there are various different approaches to solving the scalability problem, sharding offers us a powerful solution.
Zilliqa is one of the few projects that have taken the sharding route. With the use of sharding, Zilliqa has the potential to match throughput benchmarks set by traditional payment methods (such as VISA and MasterCard). Even more importantly, sharding ensures that Zilliqa’s transaction throughput increases (roughly) linearly with its network size — a ground-breaking feature missing in all popular blockchains today.
The Journey So far
The idea of sharding in the context of blockchains was first proposed in a paper titled “A Secure Sharding Protocol For Open Blockchains” co-authored by two of Zilliqa’s advisors, Prateek Saxena and Loi Luu. The paper was seminal to the creation and development of the Zilliqa protocol.
Mid 2017, our team at Zilliqa was formed with the goal of building a scalable public blockchain with sharding. The base sharding protocol was redesigned with new primitives from recent academic papers to improve the original sharding proposal.
In September 2017, we released the first experimental results clocking 1,389 transactions per second using 4 shards (with a total of 2,400 shard nodes). A month later, we released the second set of experimental results, clocking 2,488 transactions per seconds using 6 shards (with a total of 3,600 shard nodes). Fun fact: we exhausted ALL of the available Amazon Web Service (AWS) Singapore’s server resources when we ran our trials.
In January 2018, we open sourced the alpha version of our code Durian at https://github.com/Zilliqa/zilliqa.
Recent Development at Zilliqa
During the last couple of months, we have been working on several core parts of the protocol to prepare for the testnet release. We have completed persistent storage (using LevelDB to store DS blocks, TX blocks and state of accounts and transactions for the latest several DS epochs), recovery from the persistent storage, enhancement of the consensus protocol, view change for shard nodes, JSON-RPC server, etc.
For the last few weeks, we have been mostly focused on adding peripheral support to Zilliqa such as a web wallet and a block explorer and their integration with the core protocol.
Testnet Release Today
We are happy to share with you testnet v1.0 codenamed Red Prawn. Red Prawn is a variety of durian known for its orange-red colour and curved flesh resembling that of a shrimp and is highly prized for its sweet taste.
Please note that Red Prawn is the first version of our testnet and we will be continuously updating the testnet on a weekly basis. In our internal testing, we ran experiments on about 2,000 to 3,000 nodes achieving 2,000–3,000 transactions per second. As we have implemented several new features in the past few weeks, we do realize that the stability of our testnet needs improvement. We are first releasing a testnet with 1,000 nodes (4 shards) running on AWS.
In the next few weeks, we will scale-up the network and focus on the following aspects of the protocol, which should be reflected in the updated versions of the testnet.
- Stability of the system on high-throughput;
- More nodes joining and leaving the network without interrupting the protocols; and
- Facilitating selected community members to start running nodes for the testnet.
What you will be able to do in the first version of the testnet?
Users will be able to send transactions through our web wallet to the network and use the block explorer to check the status of their transactions and other network and protocol parameters such as previously proposed blocks, transactions accepted by the network and the transaction throughput among others.
For concrete steps on how to use the wallet and the explorer, please refer to the tutorial video.
What you are not (yet) able to do with this testnet?
We would also like to clarify that this first version of the testnet does not allow users to:
- Run a node: We still require some more time to improve the stability of our implementation before inviting community members to run nodes for the testnet.
- Mine on Zilliqa: Mining for Zilliqa will only start when the Zilliqa mainnet is launched. The incentive layer for Zilliqa is still under development, and any tokens used on this version of the testnet are only for testing purposes and cannot be converted to ZILs.
- Run a smart contract: Our smart contract layer is still under development, and will only be integrated into our testnet in the next few months.
- Transaction validation: Transaction validation is not comprehensive, for instance nonce validation. This feature is slated to be enabled in the coming weeks.
In the coming few weeks, we will progressively be adding new features to the system. Some of these will in fact be live in the coming days as these are currently in the testing phase.
How to use the testnet?
We are collecting addresses to whitelist alpha users of our test wallet. After the first few days, the whitelisted users will be able to transact on our testnet. To be whitelisted, please fill out the form. We will be consolidating entries and starting to send out test ZILs soon. The testnet is running with some dummy transactions continuously. Feel free to check it out on the explorer.
How to report issues and bugs?
We have two channels to ask questions around testing the testnet and reporting issues. We strongly recommend community members to ask us questions around how to use the wallet or explorer, on our Gitter channel. In order to report bugs with the wallet, explorer or the core protocol, please create an issue directly on Github.
To learn more about Zilliqa or to discuss technical aspects of our project, feel free to connect with us in any of our official channels below:
Blog: https://blog.zilliqa.com/ (In order to target a larger audience we now have our technology blogs available in Chinese and Japanese)