Zilliqa Project Update #10

— Technology Adoption, Application Building

Over the past two weeks we’ve been busy preparing for the release of the next version of our Testnet and continuing the development of Scilla, our new smart contract programming language that aims to be developer friendly and more secure than Solidity (the programming language of Ethereum). In case you missed it, Amrit and Ilya — co-creator of Scilla and an advisor to Zilliqa, appeared on Epicenter to talk more about the language: https://epicenter.tv/episode/238/.

We are very excited to soon share with the world the next version of our testnet, which will allow users to actually begin testing smart contracts. Stay tuned for more updates and information this month.

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:

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

Community Updates

After a very busy month of May with events happening around the world, we have mostly had our head down focusing on building. That said, we have attended a few events throughout Asia over the past two weeks.

In the most recent Blockchain Technical Fundamentals Reading Group that we are supporting, Loi Luu, CEO of Kyber Network presented on SmartPool — a protocol design for decentralised mining pools.

Loi Luu speaking at the NUS Blockchain Fundamentals Technical Reading Group session on SmartPool

Yaoqi attended the Global Internet Architecture Conference in Shenzhen as well as an event hosted by Tsinghua University where he shared on Zilliqa and Scilla.

Presenting to a packed crowd at the Global Internet Architecture Conference in Shenzhen
Yaoqi at Tsinghua University

Back in Singapore, Xinshu presented at an event hosted in conjunction with Tsinghua X-Lab, an education platform designed to foster student creativity, innovation and entrepreneurship.

Zilliqa also attended the Huobi Chainge event in Singapore.

Xinshu with Pavel, CEO of Bluzelle.

Tech Updates

For the past two weeks, our tech team has been working on the implementation of view-change, integration of account storage with smart contracts, Scilla interpreter logger, and adding support for sample contracts (such as an ERC20-like contract) in Scilla.

Testnet

We have completed the implementation of the view-change protocol with new view-change blocks in DS committee. The existing view-change protocol allows the network to replace a malicious or non-functioning leader. The view-change protocol is particularly important for the DS committee as the leader of the DS committee drives the entire Zilliqa protocol and hence a non-functioning leader should be replaced in a timely manner so as to ensure that the protocol does not stall for long. With the current deployment of view-change, if the consensus protocol does not complete on time in the DS committee, nodes will be notified by a timeout and they execute the view-change protocol to reach an agreement on the new leader. Once the view-change has succeeded, the network will resume normal functioning.

To be compatible with the verification of smart-contract transactions, we have refactored the AccountStore class into polymorphism pattern and separated the logic of handling accounts from the ones for persistent storage. We have also implemented a temporary AccountStore data structure based on the refactored AccountStore class, which allows us to keep track of the account state changes in the current epoch. It can be further used for generating the account state delta, i.e., the difference between the old account state and the new one. In order to let nodes easily verify the correctness of the state delta, we have added the hash of state delta into microblock and finalblock.

On the DevOps side, we have refactored testnet deployment script for better maintainability, and integrated Zilliqa Explorer application to our Kubernetes-backed internal testnet. A summary of other accomplished tasks is listed below:

  • Removal of copy constructor and assignment operators from singleton class. This is to avoid the accidental copy/assignment of singleton instances.
  • Refactoring of transaction validation into a new class under libValidator.
  • Fixed race condition in PeerStore.
  • Added automatic image build for Zilliqa Explorer.
  • Added code coverage report for Zilliqa repository.

Scilla

We’ve implemented a logger mechanism for Scilla interpreter. This includes setting up a global configuration (that can be used for other similar purposes in the future) which can be queried for the current logging level (none, regular and verbose). Also, all interpreter output messages were modified to be channeled through this logging mechanism. Two special output channels are for stdout and stderr, which print on the console, in addition to logging to a file.

We have also implemented an ERC20-like contract and a ping-pong contract in Scilla. The ERC20-like contract maintains the balance of tokens in each account, and an approval map, in case an owner wants to authorize another person to be able to withdraw a limited number of tokens. Adding support for this also required supporting nested Maps in the interpreter JSON parser (the interpreter takes JSON as inputs).

The ping-pong contract is a Scilla application to demonstrate a contract calling another one through message calls. Two contracts keep invoking each other here, until their respective counters (a state variable) runs out. We have successfully tested the two contracts on the interpreter invoking code, for testing chain invocations.

On the client side, we have integrated the Scilla editor into the Zilliqa wallet. With this feature, it becomes possible for a client to sign contract-related transactions. The client may also deploy and interact with a smart contract through the web wallet and transfer funds if required. We have also implemented an automated parsing of contract code to know the transitions therein and their signatures. This is a lighter implementation of a full application binary interface (ABI) generator.

Join 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

A great article about Zilliqa by Giulio Prisco for Distributed that also ran on Nasdaq: https://www.nasdaq.com/article/high-throughput-blockchain-developer-zilliqa-showcases-next-generation-smart-contracts-cm975003

An article highlighting the strong group of investors that have backed Zilliqa: https://nulltx.com/cryptocurrency-hedge-funds-invest-in-zilliqa-aelf-icon-and-0x/

National University of Singapore recognizing our accomplishments so far: http://news.nus.edu.sg/highlights/disrupting-blockchain-sharding

Zilliqa is live on Zebpay, one of India’s leading crypt exchanges: https://bcfocus.com/news/zilliqa-zil-goes-live-on-zebpay-indian-crypto-exchange/13196/

Some optimistic thoughts about the future of Zilliqa: https://ethereumworldnews.com/why-ethereum-eth-has-a-tough-road-ahead-with-several-mainnet-platforms-going-live/

Video coverage by NewsBTC: https://www.youtube.com/watch?v=0qB1K6BifEk