Zilliqa Project Update #28

— Mainnet Growth, Marketing Focus

Since the launch of our mainnet on January 31, the network has grown significantly in hashing power, nodes participating, and difficulty (see the Tech Updates below for details). At the current rate, we are looking to open up our mainnet to actual transactions beginning in early March — at which time we will begin to test and implement smart contract applications on our platform. We want to thank everyone who is actively mining, building, and contributing to the Zilliqa community. We also encourage anyone interested in learning more about what we are creating and hearing more about how they can get involved to reach out to us in our Forum, via email, or through our social channels.

In the coming weeks, we will be preparing separate announcements with instructions about how to swap your ERC-20 ZIL tokens to mainnet ZIL tokens, so stay tuned. There will be plenty of time. If you follow the Zilliqa blog or any of the official social channels you will certainly be kept up to date.

Our Marketing Focus

At Zilliqa, our goal has always been to become the foundation of future decentralised applications and solutions. To achieve that goal, our marketing strategy has been focused on, and will continue to focus on, driving developer adoption, and showcasing the true potential of our technology. So far, we have made great inroads in industries ripe for a high-throughput solution, including digital advertising with Mindshare, finance with Hg Exchange and gaming with EMONT Alliance, to name a few. In addition to our constant focus on the technology, we are also continuing to put the Zilliqa story in the spotlight, which you may have seen in our recent interviews, features, and news articles, as well as driving dev relations through engaging with students and developers globally, and improving our documentation and tooling for developers.

We have made much progress in the last few months. It is, therefore, with a heavy heart that I share with you that our Chief Marketing Officer, Yiling Ding, will be leaving the company due to personal reasons. She has played a pivotal role in shaping our story, amplifying our voice, and building our network. Although we will all miss her, we wish her nothing but the best for the future. In the interim, our marketing efforts will be spearheaded by our co-founder, Max Kantelia with support from the wider team, including our Developer Marketing Lead Saiba Kataruka, Developer Advocate Han Wen Chua and Head of Communications Addison Huegel. We’re also actively interviewing strong candidates for the roles to lead Zilliqa’s various marketing initiatives.

Moving forward, now with our mainnet launched, the possibilities for building enterprise solutions and far-reaching consumer DApps will be limitless. Our marketing North Star remains the same: developer engagement, enterprise use cases, and real-world impact.

We’re ramping up our outreach efforts, for example, through our sponsorship of the Future of Blockchain competition. We’ll also be encouraging developers to build on Zilliqa at ETHDenver and Developer Week in San Francisco, and will be at many more events over the next few months. In terms of updates to our partnerships, our first campaign with Mindshare is now live, and approval for Hg Exchange is expected in the coming months. We also hope to see successful adoption of BOLT, EMONT Frenzy by Etheremon, and exciting games from Krypton and MixMarvel take off with consumers. We have more exciting news coming up, and will share them in due time.

As always, please feel free to connect with us in any of our social channels:

Discourse Forum: https://forum.zilliqa.com/

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/ (Dev-related topics including the Ecosystem Grant)

Previous Events

ETHDenver (15–17 Feb)

We are proud to be a sponsor of ETHDenver, and we’ve enjoyed the opportunity to interact with developers in the blockchain space. We have been really excited about cross-chain tech, and we gave out bounties to these two amazing teams who created proof-of-concepts (PoC) for :

We firmly believe that the future of blockchain is collaborative and will continue efforts to bridge the gap of interoperability of blockchains in this space. Edison, our Blockchain Application Lead, also gave a presentation on Smart Contract Security at ETHDenver. The video of the presentation is available here: https://www.youtube.com/watch?v=CwJU498ttUI

Edison and Han Wen with the two teams that won Zilliqa bounties at the ETHDenver Hackathon 2019

Upcoming Events

We are happy to share that we will be attending a slew of events across Asia, Europe, and the USA in the first half of the year, and will be adding more to this list as they get confirmed.

February

  • Developer Week | 20–22 February | San Francisco, CA
    We will be hosting a 2-hour developer workshop during this event, hope to see some of you there!

March

April

May

Tech Updates

Since we launched our mainnet, our network has marched to over 17,000 transaction blocks and over 900 nodes from the community have joined the network. Meanwhile, the shard difficulty has reached 34 (~17 GH/s, 1 GH/s is 1,000,000,000 (one billion) hashes per second) and DS difficulty has reached 40 (~ 1100 GH/s). Thanks for the continuous support from our community.

The first two weeks of operation of the mainnet has also given us the opportunity to identify more areas for improvement, and we have introduced a few changes that are ready to roll out in the next update. Users can expect the core tech team here at Zilliqa to continue to make improvements like the ones below as we draw closer to the end of the bootstrap phase.

For starters, to make it easier to avoid version incompatibility issues, the startup sequence now includes checking the repository for the latest version of Zilliqa before attempting to join the network. The version number is also logged for added convenience.

Next, we observed view changes were happening too frequently. To mitigate this, we have re-enabled the consensus subsets, an existing feature heretofore unused, so that the chances of view changes occurring due to missing responses are reduced. One type of broadcasting — another long-unused feature — also triggered the unnecessary exchange of some messages, causing a lot of network traffic. This feature has now been removed. Additionally, to better assist us in identifying problematic nodes, the logs now display the list of peers who participated in the commit phase but not in the response phase.

Along the same vein of view change-related fixes, we also identified and resolved a couple of corner-case situations that were recently identified. First, there appeared to be a very short window within the consensus operation within which the candidate leader calculation could potentially have become incorrect. Also, we observed that reward calculation was incorrectly skipped whenever a view change would happen during the vacuous epoch (i.e., the transaction epoch just before the next proof-of-work round).

Some transaction-related code changes were also made recently. For instance, we realized that gas consumption mismatches were occurring on a regular basis because of some uninitialized variables. Several changes should also significantly improve the performance once the upgrade is performed: moving the transaction processing to before (instead of during) the consensus, skipping the smart contract execution if the Scilla checker detects failures, and avoiding the unnecessary pre-loading of accounts into memory during state retrieval.

Finally, we have also improved our socket communication code to avoid blocking on each connection. This should bring some further improvement to every node’s performance, and of the mainnet’s overall performance as well.

Scilla Interpreter

We have recently released Scilla version 0.2.0. This release introduces the following changes to the language:

  • Restrict Map keys solely to primitive types, e.g., (String, Int32, etc.). Similarly, values in a Map are not allowed to be or contain functions. In the previous release (v0.1.1), it was possible to declare a Map using a type variable (e.g., Map ‘A Int32), and the type variable ('A) could be instantiated to any type.

The desired behaviour was enforced by scilla-runner during execution, but since such contracts are illegal, they should be rejected by scilla-checker (even before scilla-runner is actually invoked). This was fixed by enforcing the desired behaviour in the parser, so that such contracts are no longer parseable neither by scilla-checker nor by scilla-runner.

  • _tag in send can only be a String literal.
  • list_to_map has been removed from stdlib.
  • New strlen builtin function for String.
  • Relaxation of constraints on let-in expressions.

Following changes specific to scilla-checker has also made it to the release:

  • Check contracts for payment acceptances, i.e., if a contract has no transitions that accept payment, then raise a warning. Also, if a transition has any code path with potentially multiple `accept` statements in it, raise a warning. We thank Adam Spiers (a member of the community) for his work on this feature.
  • Print information on ADTs (both custom and built-ins). Output of the checker can then be used by end clients such as IDEs to allow users to enter ADT values as parameters to transitions.

We have also done some work on our test framework. The main issue was that the tests contracts for scilla-checker and scilla-runner were not synchronised, and over time this had led to the scilla-checker test contracts being somewhat outdated. The contracts have now been synchronised.

Dev Tools

Since the mainnet has launched we have now turned our attention to updating and improving developer tools and documentation for the Zilliqa ecosystem in preparation for the end of the bootstrap phase. In the past weeks, we have worked on:

  • Building a developer portal, containing a collection of tutorials for participants in the ecosystem such as miners, developers, and exchanges.
  • Updating the in-browser Scilla IDE to use the latest (stable) version of the Scilla interpreter, which includes numerous improvements.
  • Miscellaneous bug fixes to the Scilla IDE, which is currently undergoing a minor overhaul of its internals.

Apart from that, in conjunction with the developer portal, we will shortly release instructions for those interested in running Zilliqa seed nodes on the mainnet.

Zilliqa in the News

An exclusive feature on our sponsorship of the Future of Blockchain, a 3-month competition with top UK universities:

Our CTO Yaoqi comments on the dangers of keyloggers in cryptocurrency:

More coverage of our mainnet launch:

Coverage of our recently-launched bug bounty:

Our sharding technology in simple terms: