Zilliqa Project Update #8 — Events Around the World, The First Zilliqa Progress Update Event
What an incredible past two weeks it has been for Zilliqa.
We’re immensely proud of the encouragement and input we receive from our community and much of our success is due to them. We truly have one of the best communities in the blockchain world and we are humbled by their continual support. Moreover, in the past two weeks, our communities have seen a large number of newcomers, we take this opportunity to welcome them. Thank you!
Zilliqa is a project that has brought together some of the leading academics, programmers, and entrepreneurs in the world with the goal of building a better blockchain infrastructure that is scalable, safe, and secure. To do this, we have built the first blockchain platform that uses the technology of sharding to achieve high throughput which we released to the public in our Testnet v1.0: https://explorer.zilliqa.com/home.
The second component of our vision for Zilliqa is to fix major security issues with existing smart contracts. To do this, we are introducing a new, intermediate-level smart contract language called Scilla, which will allow developers to more easily and safely write smart contract applications. In the future, anyone will be able to port their applications from Solidity to Scilla.
On May 23, at our first progress update event in Singapore, we will be releasing the first version of Scilla to the world.
As always, to learn more about Zilliqa or to discuss technical aspects of the project, feel free to connect with us through any of our official channels below:
Over the past two weeks we attended a number of events throughout Asia, including the World Digital Assets Summit here in Singapore, hosted by our partner and investor FBG Capital.
In the coming weeks, our team will be presenting at events around the globe all leading up to our first Zilliqa project update event in Singapore on May 23.
May 15 — New York
Zilliqa will be holding a meetup with Enigma in New York during Blockchain Week.
May 16 — Singapore
Tech in Asia Singapore 2018 Blockchain Stage
May 17 — Singapore
Blockchain Technicals Fundamentals Reading Group
May 17 — Stockholm
Bloxpo2018 — Keynote Speech
May 18 — Stockholm
Sharding and Smart Contract Security Meetup
May 20 — Sibiu
Zilliqa — Sharding for Blockchain Scalability (And of course secure smart contracts)
Zilliqa Progress Update Meetup in Singapore
May 23 — Singapore
Most importantly, we are hosting a major meetup in Singapore where we will be sharing more on our progress, which partners are coming onboard and a preview of our new smart contract language, Scilla. To attend, register via meetup:
If you are unable to attend in person, please don’t worry as we will also be live-streaming the event.
For the past two weeks, we distributed test tokens for the third round and plenty of our community members have tried out the feature of sending/receiving transactions. We thank our community members for their help in testing our wallet and explorer, as well as running local tests. We always welcome your feedback on these tools and contribution to our codebase.
Our tech team has been working on enhancing the consensus protocol and testnet deployment using docker/Kubernetes, and revision of transaction / account format to support smart contracts.
We finished the integration of the recovery mechanism for lookup, DS, and normal nodes into the core codebase. In the current version, any node has the capability of re-joining the network for the next DS epoch when it gets out sync or disconnected from the system. We also substituted conditional variables for the busy-loop implementation in DSBlock / sharding consensus protocols. This eliminates subtle timing issues as the program logic can now be triggered based on certain events. To improve the stability of the network layer, we leveraged libevent to replace the implementation of network connections. We further improved the mechanism of view change, which happens when the protocol doesn’t proceed to reach consensus for a period of time and triggers a timeout. When there is a timeout, the DS committee will run view-change protocol, which piggybacks on the existing BFT protocol, to agree on the the new DS leader to resume the protocol. After that, the faulty leader will get pushed to the last slot in the DS committee and the candidate leader takes on the role as the new DS leader. We also implemented view-change block and block header, which contains view-change information including co-signatures from backup nodes.
A summary of the tasks accomplished on the main protocol is listed below:
- Updated the state transition for Directory Service committee.
- Implemented validator for view change consensus.
- Removed inefficient sha2 update and used OpenSSL hash concatenation.
- Used libevent as network receiving framework.
- Replaced busy-loop with conditional variable in consensus protocols.
- Finished updating the AWS script to be compatible with the integration of Zilliqa-Daemon.
Improved Testnet Deployment
We containerized our main project Zilliqa and created a public registry on docker hub. We launched a 500-node Kubernetes cluster on our cloud provider and ran internal tests to run the large-scale Zilliqa testnet on it. We solved several critical performance issues while setting up the cluster and cleared the way towards a 1000-node cluster. We also improved the testnet token distribution (for testing purpose) process to get it ready in a shorter period of time after the testnet is launched.
For testnet deployment, previously we implemented scripts to leverage AWS APIs to set up large-scale testing. When the testnet size is over 1000 the bootstrap phase (e.g., instance creation and distribution of the executable) sometimes took a long time to complete. In addition, debugging by checking logs was difficult and costly due to the fact that the storage is tied to the running of instances, causing cost inefficiency and inflexibility of using AWS Cloud. With the migration to Kubernetes-managed cluster, now the deployment of a testnet is simply specifying the manifests of docker images and connecting the images in an orderly manner. Managing cloud resources have become much easier and with greater flexibility, maintainability and organization.
- Images. The foundation of Kubernetes is docker image, which is a multi-layered binary package that keeps the libraries and executables used for replicable tasks in an isolated and light-weight container. It standardizes the packaging of user-created binaries along with essential parts of the underlying kernel and makes running binaries on remote machines an effortless task. In the new workflow of deployment, we simply create the image source files (Dockerfile) and use both public and private docker registries for reliable storage and fast distribution.
- Manifest. The configuration files in Kubernetes, are resource manifests that bind the images with the underlying cloud computing resources, which describe the way a computation on cloud is done. We converted most of our legacy deployment scripts into the new form of Kubernetes manifests, and made use of industry-level tools in Kubernetes ecosystem, such as kops and kubectl, to minimize the interface gaps between developers and cloud operations.
Supporting Smart Contracts
We’ve refined the implementation of transaction / account to support smart contracts. Here are two types of transactions related to smart contracts: those which result in message calls to contracts and those which result in the creation of new contracts. Both types of transactions specify the same set of fields and we’ve added these fields in the current implementation, e.g., code and data. As for accounts, we do not distinguish between non-contract and contract accounts. Both types of accounts will have the same number of fields, except that some of the fields for non-contract accounts will be set to NULL. New fields, e.g., storageRoot (The hash of the root node of a Merkle Patricia tree that encodes the storage contents of the account) and codeHash (The hash of the bytecode of this account) have been added to the account. In the meantime, we have also started implementing the logic of processing smart contract transactions, including parser and storage.
We are very glad to welcome Jasmine Song to join our team as a Finance and Operations Executive!
Jasmine has previously worked in various industries such as banking, IT, logistics and trading. Accounting reconciliation, audit and tax computation, business case writing and analysis are just some of the many skills she has as an Finance and Operations Executive. As a self starter, Jasmine has run several successful initiatives over the years, and is constantly seeking to bring the same success by spearheading new initiatives at Zilliqa.
We are actively interviewing and seeking to bring on high quality members to help Zilliqa achieve its maximum potential. We’re looking for programmers with deep C++ experience, compiler engineers, and associates and executives in business development. Please reach out if you feel you can bring value to the growing Zilliqa ecosystem!
Zilliqa in the News
We announced some applications in the insurance industry that are keen on building on Zilliqa: https://www.reinsurancene.ws/deloitte-fwd-zilliqa-and-insurance-market-partner-on-blockchain-eco-system/
Zilliqa reached an important milestone by hitting a $1 billion market capitalization: https://www.coindesk.com/zilliqa-becomes-latest-crypto-to-break-1-billion-market-cap/
And also became the biggest blockchain by market cap native to Singapore:
We are honored to be one of the top performing ICOs this year:
Video interview with Xinshu and CryptoSquare: https://www.youtube.com/watch?v=EbY8HJ8mNyo&t=19s
Yaoqi Jia’s Interview with Crypto Beadles:
Amrit’s panel talk in De/centralize conference: