Zilliqa Project Update #29 — New Team Members, Major Events
Over the past few weeks we have been heads down monitoring and making improvements to our mainnet. We have had three upgrades to the network in order to further enhance its stability. We have also been gathering feedback from the community and are using that feedback to make further improvements. Specifically, in order to achieve wider adoption by the mining community, we need a more miner-friendly client and opt-in upgrading mechanism. In addition, we are also fine-tuning the public-facing APIs by implementing more features like incremental DB to enhance the process for miners to join and recover from the latest states. We have also been coordinating with exchanges for the Zil token swap, which we will be announcing details of shortly.
On the internal side, we’re proud to announce some new Zilliqa team members who have have recently joined us (learn more about them below). At Zilliqa we place a very strong emphasis on team dynamic and we take all new hirings very seriously. Since we began the journey of building Zilliqa almost 18 months ago, we’ve assembled an incredible team of some of the best engineers, academics, and entrepreneurs in the business. We’re always looking for eager, passionate, and intellectual people to join our team and help us build the next generation of blockchain infrastructure.
If you or someone you know is interested in work for Zilliqa, visit our Careers page or contact us directly.
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
Han Wen and Edison attended DeveloperWeek at Oakland, California from 21 to 22 February 2019 to reach out to developers. The DeveloperWeek is a generic developer event which draws thousands of developers from all over the world. This year’s event was focused on DevOps, Javascript Development and Machine Learning. We are pleased to see such a good turnout for the event as many developers from non-crypto backgrounds are showing interest in blockchain programming.
Hanwen presenting on blockchain development at DeveloperWeek
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
- Blockchain Technology World | 12–13 March | London, UK
- Token 2049 | 13–14 March | Hong Kong
- Money 20/20 Asia | 19–21 March | Singapore
April
- Paris Blockchain Week | 13–19 April | Paris, France
- FiNext Conference | 25–26 April | Singapore
May
- Consensus 2019 | 13–15 May | New York
New Team Members
Noel Yoo
Position: Blockchain Application Developer
Education: BSE in Computer Science and Engineering, Yonsei University, Seoul
LinkedIn: https://www.linkedin.com/in/noel-yoo/
Noel is a software engineer specializing in web development and blockchain application development. His focus is on building applications safe and scalable with quality codes and high standards. He is an open source enthusiast.
Anton Trunov
Position: Research Engineer
Education: Tomsk State University of Control Systems and Radioelectronics
LinkedIn: https://www.linkedin.com/in/anton-trunov-1a7bb1107/
Anton’s interests lie in the field of formal methods, program verification, interactive theorem proving, dependent types and functional programming. He loves proving theorems using computers!
As a software developer he has worked on embedded systems for coal mines safety equipment, programmed supercomputers to simulate high current beams of charged particles and worked on the formalization of a fine-grained concurrent separation logic.
Ada Tan Miao Hui
Position: Operations Executive
Education: Bachelor of Business in Public Relations and Marketing (Double Major), Murdoch University
Linkedin: https://www.linkedin.com/in/ada-miao-hui-tan-86a6b6123/
Ada is a double degree holder of Public Relations and Marketing from Murdoch University. She has experience in working in various sectors like insurance and food manufacturing and that experience has helped her be adept at coordinating with external and internal stakeholders. She looks forward to contribute to the team by bringing the procedural efficiency of the traditional industries to the team’s operations.
Tech Updates
In our continued efforts to closely monitor and improve the operation of the mainnet during this bootstrap phase, the core tech team released two new versions of Zilliqa over the past two weeks. Here’s a quick rundown of these two new versions.
Version 4.1.1
, released a few days after our previous tech update, mostly contained security improvements such as the addition of missing checks to the gossip message parsing and the final block consensus. A minor fix was also applied to make our node recovery procedure work correctly during the vacuous epoch (i.e., the epoch just before the next proof-of-work round).
The current version 4.2.0
, released last week, contains both fixes and improvements to some existing features. The most visible change is the removal of the strict version checking. Users will now simply be informed if they are running an older version of Zilliqa, and can decide to upgrade immediately or defer it to another time.
Another notable fix is the reduction of the time window for mining for the DS-level difficulty. Previous versions prolonged the window unnecessarily by not taking into account the time consumed for mining the lower shard-level difficulty. Miners can expect to save on cost with the shorter, more accurate window in place.
Some fixes were also applied to our lookup nodes, which readers may recall are the nodes essential for allowing shard and directory service nodes to both join the network and get information relevant to the blockchain and the operation of the network. One fix ensured that offline lookups correctly notified other lookups once they were back online. Other fixes addressed some missing information that lookups required during joining or the updating of persistent storage.
Finally, a slew of both functional and security-related changes have been made, including:
- Addition of more checks for target DS block number and difficulty before processing transactions
- Limiting PoW submissions based on the miner’s public key
- Checking the state at critical junctures during consensus to address corner-case state transitions
- Checking consensus commit and response submissions against the IP address of the sender
- Checking the operation of important functions in Account, AccountStore, JsonUtils, and Schnorr libraries
- Checking transaction code size at the point of transaction creation
- Preventing message size overruns at the gossip and message processing levels
Scilla Interpreter
The focus of the last two weeks have been on adding support for external libraries and improving the cashflow analysis. Below, we discuss these two in more detail.
Supporting external libraries: We have started working on supporting external libraries (which will not be part of stdlib
). This will allow developers to deploy their own standalone libraries that contain purely mathematical functions. Once deployed, any smart contract may use those libraries by “linking” with them statically. Standalone libraries will have the extension .scillib
and will be type-checked before deployment.
To declare library dependencies of a contract, one must specify the library names and their addresses in init.json
. This may for example take the following form, where, the contract depends on a library LibFoo
deployed at address 0x98…
:
{
“vname” : “_extlibs”,
“type” : “List(Pair String ByStr20)”,
“value” : [
{
“constructor” : “Pair”,
“argtypes” : [“String”, “ByStr20”],
“arguments” : [“LibFoo”, “0x986556789012345678901234567890123456abcd”]
},
]
}
We also plan to allow a library to import other libraries.
Static analysis of contracts: We been continuing our work on cashflow analysis. Our earlier version was unable to handle List
and Nat
data types because of their inductive nature, but more importantly it was also unable to handle custom ADTs. This restriction made the analysis somewhat unhelpful because contract fields representing cash will often wrap the amount in an ADT constructor containing other values as well.
For instance, a multi-signature wallet contract needs to keep track of the transactions that are awaiting signatures. A transaction consists of an amount of money and a recipient, and so would typically be represented by a special ADT for transactions.
We have now improved the cashflow analysis so that custom ADTs (and List
and Nat
data types) can be handled.
A summary of other improvements and bug fixes are given below:
- Code refactoring and better error messages.
- Fixed a free type variable capturing issue.
- Improve internal representation of primitive types.
- Build system enhancement: use pkg-config utility from Dune.
- Introduce CODEOWNERS file to facilitate external contributions.
- Added a Wiki page with instructions around our development process to aid new contributors.
- Fixed a small bug with checking
builtin substr
. - Fixed a minor bug in parsing standalone expressions.
Developer Tools
In the past couple of weeks, as we worked to onboard the various supporting exchanges by helping them to make the transition from ERC20 ZIL to native ZIL, we noticed that developers in the ecosystem lack a definitive resource with practical examples of how to use the blockchain.
As a result, we stealth launched the Zilliqa developer portal last week. It currently contains to-the-point tutorials, with full working examples, for miners and exchanges that wish to get started with testing their infrastructure and/or applications on the testnet. We intend to add another set of tutorials aimed specifically at DApp developers in the coming weeks.
We hope that developers in the ecosystem will give us feedback for improvements, and report issues on the developer portal repository.
We have also made improvements on the following tools:
- The Scilla remote checker and interpreter has been patched to work with the latest Scilla binaries.
- Kaya RPC has been patched to work with the latest remote interpreter and checker.
- Kaya RPC will be undergoing a major revamp in the next few weeks to increase its reliability and correctness.
Zilliqa in the News
Our Head of Business Development, En Hui shared her thoughts on JPMorgan Chase’s announcement of the JPM Coin:
Our Application Lead, Edison reflected on the state of developer-focused blockchain education initiatives and their impact on the wider industry:
For our Japanese community: our CEO, Xinshu spoke with Nikkei XTECH about our use of sharding and how it addresses the scalability issues that are impacting blockchain games today:
- Nikkei XTECH, 2020年、ブロックチェーンは全く異なる「何か」になる
Santiment included Zilliqa in their list of top 10 ERC-20 projects with the highest-recorded developer activity for February:
CCN included us in a roundup of promising blockchain projects with the potential to rival Ethereum:
CryptoGlobalist covered our recent announcement to the community that we would be extending our bootstrap phase, describing it as a positive move for the long-term viability of our platform:
- Crypto Globalist, Zilliqa (ZIL) — Bootstrap period extended: A positive move for the future of this project
Calling all CODEX users: in anticipation of the token swap, CODEX pre-emptively announced that they will be temporarily de-listing Zilliqa tokens as we migrate to our own blockchain platform.