Zilliqa Technical Update 7 May

Hi all,

As readers may recall, our core tech team rolled out Zilliqa version v4.5.0 just before the start of the token swap period two weeks ago. Since that time, versions v4.5.1 and v4.6.0 have also been released. This time around, the focus has been on making improvements and fixes to the lookup nodes. Here is what you can expect from the latest version:

Core Tech

  • We have improved the robustness of our seed nodes by adding auto-rejoining code to them. Seed nodes are the level 2 lookup nodes that are configured to support queries such as transaction creation. As such, it is vital to keep these nodes in sync with the network at all times. Being out-of-sync can happen when, for instance, the seed node somehow misses any data block. With the auto-rejoining code in place, a seed node can recognize when it has gone out-of-sync, prompting the fetching of missing data from lookup nodes in an effort to return to a synced state
  • The server API for mining information that was released in the previous two versions has now also been made available to our lookup nodes. This allows us to get more accurate information on the state of the lookups, such as whether they are in sync or not. As part of this update, the default port for querying the mining information has changed to 4301 to avoid reusing the one originally used by lookups for servicing the network
  • Transactions are collected by lookups and periodically dispatched in batches to shards in the network. We recently discovered that the shard assignment process could be incorrectly performed on cached transactions in the event that the network has crossed a new epoch and the number of shards in the network has changed, resulting in missing transactions. This issue has been addressed in v4.6.0

Scilla Interpreter

We are happy to announce that we have released a new minor version of Scilla tagged v0.3.0. This release comes with several enhancements and bug fixes. Some of these are listed below. For an exhaustive list of changes introduced in this version, please refer to the release notes.

Language:

  • External library support for Scilla. This will allow smart contract developers to import non-standard libraries
  • Disallow names that start with _ (underscore) to be created in a contract. This is to avoid potential shadowing of implicit variables such as _amount, _balance, etc.
  • Namespaces for Scilla to avoid name clashes
  • Location reporting in syntax errors
  • Restrict substr arguments to uint32
  • More stable hashing scheme for complex literals, fix some bugs with hashing along the way

Bug-fixes:

  • Catch exceptions from Yojson.Basic.Util
  • Fix builtin arithmetic operations. Added exhaustive safe arithmetic tests to provide strong guarantees for Scilla builtin arithmetics
  • Convert hex message to raw data before signature verification
  • Add checks for arguments to builtin substr
  • Fix bug in is_ground_type and add tests
  • Fix parsing of standalone expressions and types
  • Fix free type variables extraction function
  • Fix parsing of type of Map values

Static Analysis:

  • Gas usage analysis for Scilla
  • ADT support in cashflow analysis.

For further information, connect with us on one of our social channels: