Zilliqa Project Update #5 — April 2
It is official — sharding is now live in action with Zilliqa. This bi-weekly update marks the end of Q1 2018 and as we enter Q2, we have reached an important milestone with the release of Zilliqa testnet v1.0 (codenamed Red Prawn).
This testnet release is an important achievement for Zilliqa because it marks the first step for the future of our project and a landmark moment for blockchain technology. The Zilliqa testnet is the first public, permissionless blockchain to implement the technology of sharding.
As shown in our explainer video, the transaction throughput under “stress mode” reached a high of 2000 tx/s with 1000 nodes. While we keep improving the stability and features of our codebase, we have released a testnet with more conservative settings with a wallet and a block explorer to allow public testing.
Many people ask why we built Zilliqa the way we did and how it compares to other existing projects. The simplest explanation is that we are building a scalable blockchain platform, capable of processing thousands of transactions per second, that is public, decentralized, and most importantly: secure. Several of Zilliqa team members have spent years as researchers in cyber security before joining Zilliqa. Their field experience has played an important role in the design and implementation of Zilliqa.
Moving forward we will be moving our bi-weekly updates to Mondays.
As always, to learn more about Zilliqa or to discuss the technical aspects of our project, feel free to connect with us in any of our official channels below:
Telegram: https://t.me/zilliqachat
Slack: https://invite.zilliqa.com/
Twitter: https://twitter.com/zilliqa
Reddit: https://www.reddit.com/r/zilliqa/
Github: https://github.com/Zilliqa/zilliqa
Gitter: https://gitter.im/Zilliqa/
Community Updates
Infographic Contest
We’re excited to announce that we have received over 140 submissions for the Zilliqa Infographic Contest. Many of them were very well done and we would like to thank everyone who spent time creating an infographic or otherwise participated in the contest.
The Finalists — 5 will be selected by a retweeting vote on Twitter and another 10 will be selected by the team together with Mindshare, our partner and one of the largest creative agencies in the world. We will be announcing the shortlist soon.
Whirlwind European Tour
Amrit and Saiba held meetups in London, Berlin, and Amsterdam over the span of just a few days. Every event was packed and the discussions were fantastic and often thought provoking. We hope to be back in Europe in the near future.
A video of the Amsterdam meetup is available here.
Welcoming our Taiwan Ambassador Ray Chen
Ray is an active member of the Zilliqa community and has joined as a Zilliqa ambassador in Taiwan.
Last week Ray held a Zilliqa workshop at the National Taiwan University with Xinshu and En Hui joining via video conference. The team enjoyed the highly technical Q&A with the audience and hope to hold similar events across various campuses in Taiwan going forward.
In India, our ambassador Ratul Saha conducted two events in Chennai with startups and incubators and two events in colleges, in Bangalore and Bhubaneswar. Pictured below is an event at KIIT E-cell with 350+ students:
Upcoming Events
Meetup in Seoul on April 5: https://www.meetup.com/Krypto-meetups/events/249138266/?eventId=249138266
And on April 6 again in Seoul with other projects as a part of Blockchain Asia (1st Meetup).
In Tokyo on April 10 with Blockchain Tokyo (thank you for the overwhelming response so far!)
https://blockchain-tokyo.connpass.com/event/82381/
Technical Updates
Our dev team has been working around the clock to give the final touches to Testnet v1.0. For the past two weeks, we’ve been actively working on the stability of the system, persistent storage, recovery of nodes and enhancement of the wallet/explorer.
Core Protocol
We have completed persistent storage using levelDB for normal nodes and lookup nodes, e.g., storing DS/tx blocks, transactions and state of accounts. In the meantime, we have implemented the recovery mechanism for persistent storage-including recovery of DS blocks, tx blocks and state of accounts.
We also optimized the persistence functionality to increase efficiency and reduce storage capacity as much as possible. For normal nodes, we are keeping the transaction data for recent DS epochs in levelDB to reduce the storage capacity without compromising on system functionality and robustness. We have improved the feature to allow new nodes to join — this includes synchronization of DS Blocks, information on the DS committee, tx blocks and state of accounts. Further, we rewrote the logic of updating account states into levelDB to reduce the time to process each transaction. A summary of the other enhancements is below.
- Testnet infrastructure setup and testing
- Parameters experimentation
- Handling shard leader failure
- Increased the robustness and optimized the transmission and receipt of microblocks
- Optimized transmission of network messages (for DS/tx blocks and transactions) to lookup nodes
- Increased number of nodes transmitting network messages to lookup nodes
- Improved handling of state transition
- Situation handling where microblocks are not received from shards
- Handling Schnorr signature concurrency issues
- Code refactoring and cleanup
- Performance testing of Patricia Merkle Trie
- Experimental docker support (contribution from the community)
Wallet & Block Explorer
For the wallet and the explorer, we have implemented many APIs in the backend to provide useful information about our testnet, e.g., total number of nodes, number of DS/tx blocks and transactions processed by the system. A summary of the tasks accomplished on the wallet and explorer is given below:
- Implementation of explorer APIs, e.g., DSBlockListing, TxBlockListing, GetTransaction (TxnHash) and GetRecentTransactions
- Integration with the block explorer
- Documentation of APIs
- Exception handling in the backend of the explorer
- Consistent CSS scheme and UI design for wallet
- Updating js library for APIs and removed unnecessary jquery dependencies
- Color scheme, input and hover styles, responsive CSS, scroll, loading spinner and other miscellaneous fixes for both wallet and explorer
- Next/prev page caching for explorer
- Input validation and recaptcha for wallet
- Removed jquery and added explorer APIs from JSlibrary
We also improved the coding style checker and the formatter. The entire codebase has been reformatted following a set of renewed coding guidelines and all the newly added code will be first checked against them. This offloads developers’ effort on following the guidelines and improves the developer experience in contributing new code and reviewing changes. A summary of the code improvement is as follows:
- Improved coding style enforcement and checking via clang-format and clang-tidy
- Cleaned up unused libs, functions, variables
- Fixed several bugs found by increasing the compiler error-reporting level
- Improved the efficiency of thread pool
- Improved transaction validation
- Revamped transaction prefilling
- Reduced the building time by using cache in local development and continuous integration
Zilliqa in the Press
A great editorial by Yaoqi in Bitcoin Magazine that goes over the basics of sharding: https://bitcoinmagazine.com/articles/op-ed-many-faces-sharding-blockchain-scalability/
The biggest problem with blockchain and how to solve it, illustrated: https://www.techinasia.com/biggest-problem-blockchain-company-solving
One of our co-founders, Max Kantelia, was interviewed at Money 20/20: https://www.youtube.com/watch?v=4dfIlexYh4Q&feature=youtu.be
We were also mentioned by Bitcoin.com: https://news.bitcoin.com/76-of-this-years-icos-are-already-under-water/
Amrit and Ilya Sergey, our advisor and co-author of the Scilla whitepaper, spoke with TechRepublic: https://www.techrepublic.com/videos/how-scilla-could-speed-up-blockchain-transactions/