Public code release of Zilliqa v0.1 (Alpha) source code (codename Durian)

Note: ➤ We’re on Slack and Telegram! Join our community, ask us questions, and get updated on the latest (and hopefully the greatest!)

Zilliqa is a new blockchain platform capable of processing thousands of transactions per second with sharding built into it. With sharding, Zilliqa has the potential to match throughput benchmarks set by traditional payment methods (such as VISA and MasterCard). Even more importantly, Zilliqa’s transaction throughput increases (roughly) linearly with its network size —a feature missing in all popular blockchains.

The Evolution of Zilliqa, Until Now

The Zilliqa story began in 2016 with the sharding paper titled “A Secure Sharding Protocol For Open Blockchains” co-authored by two of our advisors Loi Luu and Prateek Saxena. The protocol was later developed into a permissioned blockchain and was trialed in a regional exchange.

Mid 2017, a team of scientists and engineers was formed with the mission of building a scalable public blockchain named Zilliqa. The protocol was redesigned with new primitives to improve the original sharding proposal and then built from the ground up.

In September 2017, we released the first experimental results clocking 1,389 transactions per second using 4 shards (with a total of 2,400 shard nodes). A month later, we released the second set of experimental results, clocking 2,488 transactions per seconds using 6 shards (with a total of 3,600 shard nodes).

Fun fact: we exhausted ALL of the available Amazon Web Service (AWS) Singapore’s server resources when we ran our testnet.

Introducing Durian

Today, we are thrilled to announce that we have open sourced the Zilliqa codebase. The Zilliqa source code is currently in alpha stage and we are opening the codebase to the community for them to evaluate, help us find bugs, and contribute to the development of Zilliqa. The alpha version of the Zilliqa source code can be found at: https://github.com/Zilliqa/zilliqa.

Please note that Durian is an alpha version. Instability and bugs are expected. The current codebase can be locally tested by simulating nodes. However, the visualization is limited. To make the compilation and local testing easier, we will be rolling out VMs/containers in the coming days.

The code remains strongly dynamic as we are constantly adding new features to it. We will also be releasing more documentation and plans over the next few weeks, including details about how to run a Zilliqa node on the public testnet. Stay tuned for more details and feel free to discuss the project by joining the official Zilliqa Telegram (https://t.me/zilliqachat)and Slack Channels (https://invite.zilliqa.com/).

Available features in Durian

The current release has the following features implemented:

  • Proof of Work 1 (PoW1) and 2 (PoW2) for joining the network
  • Network and transaction sharding
  • Consensus for DS block, sharding structure, shard microblock and final block
  • EC-Schnorr signature and multi-signing
  • Data layer and accounts store
  • Looking up nodes to allow new nodes to join
  • Persistent storage for transactions
  • Merkle Patricia Trie
  • Transaction verification

In the coming months, we plan to have the following features:

  • Incentive structure
  • Zilliqa wallet
  • Zilliqa explorer
  • Gossip protocol for network message broadcasting
  • View change
  • Smart contract design and implementation
  • GPU support for PoW
  • Further unit and integration tests
  • Enhancement of existing features
  • More operating system support
  • And much more …

Getting the source code of Zilliqa

The Zilliqa source code is available for download at: https://github.com/Zilliqa/Zilliqa/releases/tag/Durianv0.1 or alternatively, you can clone the repository from https://github.com/Zilliqa/zilliqa.

Minimum system requirements

To run Zilliqa, we recommend the following minimum system requirements:

  • x64 Linux operating system such as Ubuntu
  • Recent dual core processor
  • 2 GB RAM

Dependencies

To compile and run the Zilliqa codebase, you will need the following dependencies to be installed on your machine:

  • Boost
  • OpenSSL
  • Jsoncpp
  • Leveldb
  • Cmake
  • build-essential

For a Debian-based system, you can use the following command to install the dependencies:

sudo apt-get install libboost-all-dev libssl-dev libleveldb-dev libjsoncpp-dev cmake build-essential

Running Zilliqa locally (using 10 shard nodes and DS node locally)

1. Build Zilliqa from the source.

./build.sh at code directory

2. Run the local testnet script

Go to code directory. Run ./test/Node/test_node_simple.sh

3. Logs of each node can be found at local_run directory

4. To terminate Zilliqa,

pkill zilliqa

For further enquiries

If you have issues running a node, do join our Zilliqa gitter channel and ask us questions there! Our gitter link is https://gitter.im/Zilliqa. You can also submit your issue at our github repository https://github.com/Zilliqa/zilliqa/issues.

License

We are currently looking into various popular open source licenses and working on a formal license for Zilliqa. For the time being, we are using a temporary license for the alpha version for testing purposes. It is located at https://github.com/Zilliqa/zilliqa/blob/master/LICENSE. We will switch to the formal open source license once ready.

To follow the project or learn more visit www.zilliqa.com

Please NOTE the social groups below are the ONLY official Zilliqa communication channels:

➤ Telegram Chat: https://t.me/zilliqachat

➤ Telegram Announcement: https://t.me/zilliqa

➤ Slack: https://invite.zilliqa.com

➤ Twitter: https://twitter.com/zilliqa

➤ Reddit: https://www.reddit.com/r/zilliqa

➤ Gitter Development Channel: https://gitter.im/Zilliqa