Zilliqa Project Update #30 — Academic Adoption

Saiba Kataruka
Zilliqa — Official Blog
6 min readMar 19, 2019

Greetings everyone. Over the past two weeks we have been very busy with events and outreach along with technical tuneups as we approach the end of bootstrap phase and begin the full-scale roll out of the Zilliqa mainnet.

While we are an academic team with a heavy focus on creating high-quality and ultimately meaningful innovation, we also understand the importance of inspiring people to use what we are building. A natural progression that is a perfect fit for our expertise and background is to work directly with universities to begin directly inspiring and educating students about blockchain, decentralization, and Zilliqa.

We recently announced Blockchain A-Z, in partnership with King’s College London Blockchain Organization, a 4 part workshop beginning on March 26 designed to give students an introduction to blockchain and smart contracts taught by Saiba, our Developer Marketing Lead.

This is the first educational offering we have put together, but we hope to make Blockchain A-Z and similar education initiatives available at more campuses around the world shortly. If you or a campus organization you know is interested in blockchain education programs, feel free to reach out to us at: enquiry@zilliqa.com

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

Blockchain Technology World — London

Token 2049

Upcoming Events

We have a few major events coming up in the next two weeks. Feel free to reach out if you would like to connect with us.

March

April

May

New Team Members

Aparna Narayanan

Position: Communications Manager

Education: MSc Public Policy & Management, King’s College London

LinkedIn: https://www.linkedin.com/in/aparna-narayanan-b6b5b661/

Aparna is a communications and public affairs specialist with extensive experience in implementing strategic campaigns for the technology, energy, public and not-for-profit sectors. She is interested in the interface between advocacy, policy and technology — particularly in the use of tech for social impact. Aparna recently graduated with an MSc in Public Policy & Management from King’s College London and also has a B.A in Political Science from McGill University.

Tech Updates

The mainnet is now running on v4.3.1 which the core tech team worked on for the past two weeks. Here we highlight the main features of this new release.

First, the main purpose of this release was to increase the number of nodes from the mining community that can join the network as shard nodes. The mainnet has been receiving plenty of proof-of-work submissions from miners the past few weeks — more than the defined maximum, in fact. With sufficient computing power to keep the mainnet running on no fewer than one shard, we decided the time was right to lower the guard rails and increase the stake of the community.

Second, we regularly push out functional and security fixes with every new release, and this version is no different. In this round, we re-coded the coinbase rewarding algorithm to improve the performance by reducing the number of redundant key searches. We also ensured that all Directory Service nodes had the same view of the Lookup nodes when determining the rewards for these (when Lookup nodes go offline for any reason, the DS nodes could potentially end up having differing views, leading to reward mismatches and consensus failures).

This release also includes corrections to the PoW signature for our remote mining feature and to the initialization of our node synchronization type variables. Finally, along the security front, we ensured messages are re-serialized before any buffering to prevent potential DoS attacks from excessive message sizes.

In the coming weeks, expect the team to conduct more extensive testing to prepare for the end of the bootstrap phase. Apart from the regular fixes, we will also be pushing additional features aimed at addressing storage issues and usability.

Scilla Interpreter

During the last two weeks, we have continued our work on supporting external libraries in Scilla contracts and cashflow analysis. Details on these and other code refactoring are given below:

External library support: We have continued our work on supporting external libraries for Scilla contracts. To this end, we now scan init.json file of libraries and contracts to enable loading files. Note that the syntax for independent libraries is identical to the syntax of standard libraries. They are treated the same within the checker/interpreter after import.

Libraries are allowed to import other libraries. However, values and types in an indirectly imported library are not available for use by the indirect importer. For example, if C imports A and A imports B, the values and types defined in B are available only for A (and used in type checking A) but will not be available in C. If values or types in B are required in C, then C needs to directly import B. In the case of a conflict between names in libraries (to the extent where they are visible), an error is raised by the checker.

Static analysis: We are at the last iteration step of cashflow analysis to which we have recently added support for algebraic datatypes. Previously, the analysis was unable to handle lists, natural numbers, and user-defined types. This has been fixed, so that fields of those types are now reported correctly.

Furthermore, an additional feature has been added for user-defined type constructors. The analysis now attempts to track how the arguments to a user-defined constructor are used, and tags them accordingly. This should help the user ensure that his or her types are used consistently throughout the contract.

Summary of other improvements and bug fixes:

  • Fixed a bug in testing for ground types and added tests.
  • Fixed a bug in inconsistent output channels for different errors.
  • Refactored handling of fatal errors throughout the codebase.
  • Refactored code for Syntax module and added unit tests for it.
  • Refactoring builtins into a structured representation.
  • Refactored the builtins multi-dictionary to further increase robustness of builtins processing.
  • Improved location reporting in syntax errors.
  • Fixed contract tests.
  • Added printing colored diff on testsuite failures [this should make the life of external contributors easier].
  • Documentation edits.

Stress Testing and Dev Tools

As we near the end of the bootstrap phase, we have focused our efforts on ensuring the correctness of the core protocol under stress conditions. In general, the tests we have conducted involve ensuring that the state of the blockchain transitions are as expected while processing transactions sent at a volume and with entropy similar to the levels we anticipate once tokens are swapped and full scale usage commences on the main net.

In the same vein, we have also patched a few bugs in the online IDE for our blockchain language, Scilla. As always, we appreciate feedback and bug reports from users who use our tools in day-to-day work or experiments.

Zilliqa in the News

A snapshot of coverage on our blockchain education initiative, Blockchain A-Z:

Hg Exchange was mentioned as a venture in the industry that’s experimenting with tokenised stocks:

Our CTO Yaoqi reflected on Zilliqa’s beginnings, what makes our platform unique, and his thoughts on the mainnet launch and the bootstrap phase in a Q&A with CoinCodex:

To kick off Altcoin Buzz’s new series, “Quick Concepts”, Zilliqa was mentioned as a project in the space that’s leveraging sharding technology in order to tackle existing scalability limitations:

Altcoin Buzz, Sharding Explained — Quick Concepts

--

--