Zilliqa is a scalable smart contract platform that aims to tackle the congestion issue plaguing the blockchain industry. Zilliqa utilises a unique sharded architecture to achieve parallel processing of transactions while maintaining a large number of public nodes. Hence, Zilliqa is a blockchain capable of reaching high throughput and processing more complex computations while remaining decentralised and secure.
- If you’re interested in mining Zilliqa, see here: https://dev.zilliqa.com/docs/miners/mining-getting-started/.
- If you’d like to use the interface with Zilliqa nodes to transfer ZIL and deploy/call smart contracts, see here: https://dev.zilliqa.com/docs/apis/api-introduction.
- If you’re interested more about the core protocol, see the developer portal.
- If you’re interested in hacking on the Zilliqa code base, see the Coding Guidelines.
masterbranch is not for production as development is currently being worked constantly, please use the
tagreleases if you wish to work on the version of Zilliqa client that is running live on the Zilliqa blockchain.
The current live version on the Zilliqa Mainnet is Zilliqa v0.9.1.
The current live version on the Developer Testnet is Zilliqa v0.9.1-alpha.0.
Zilliqa Improvement Proposal (ZIP)
The Zilliqa Improvement Proposals (ZIPs) are the core protocol standards for the Zilliqa platform.To view or contribute to ZIP, please visit https://github.com/Zilliqa/zip
The current release has the following features implemented:
- Network sharding
- Transaction sharding
- Ethash Proof of Work (PoW) for joining the network
- GPU (OpenCL and CUDA) for PoW
- Block rewarding mechanism
- Gas pricer
- Coinbase rewards
- EC-Schnorr signature
- pBFT Consensus mechanism
- Data layer and accounts store
- Smart contract layer
- State delta forwarding
- Lookup nodes and Seed nodes for receiving and dispatching transactions
- Persistent storage for transactions and state
- S3 storage retrieval from archival nodes
- View change mechanism
- Node recovery mechanism
- Protocol upgrade mechanism
- Gossip protocol for network message broadcasting
- Seed Node Staking
In the coming months, we plan to have the following features:
- Further unit and integration tests
- Enhancement of existing features
- More operating system support
- And much more...
Minimum System Requirements
To run Zilliqa, we recommend the minimum system requirements specified in our Mining page.
The officially supported operating system is Ubuntu 16.04, until Zilliqa v6.4.2.
Effective Zilliqa v7.0.0, the officially supported operating system is Ubuntu 18.04. Although Zilliqa continues to be backward compatible with Ubuntu 16.04, we recommend users to upgrade to Ubuntu 18.04 moving forward.
Run the following to install the build dependencies:
sudo apt-get update sudo apt-get install git libboost-system-dev libboost-filesystem-dev libboost-test-dev \ libssl-dev libleveldb-dev libjsoncpp-dev libsnappy-dev cmake libmicrohttpd-dev \ libjsonrpccpp-dev build-essential pkg-config libevent-dev libminiupnpc-dev \ libcurl4-openssl-dev libboost-program-options-dev libboost-python-dev python3-dev \ python3-setuptools python3-pip gawk
Additional Requirements for Contributors
If you intend to contribute to the code base, please perform these additional steps:
pip install pyyaml
/etc/apt/sources.list.d/llvm-7.listwith the following contents (reference):
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main
Run the following:
curl https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - sudo apt-get update sudo apt-get install clang-format-7 clang-tidy-7 -y
Build from Source Code
Build Zilliqa from the source:
# download the lastest stable Zilliqa source code $ git clone https://github.com/Zilliqa/Zilliqa.git $ cd Zilliqa && git checkout tags/v7.0.0 # build Zilliqa binary $ ./build.sh
If you want to build the development branch instead, do:
$ git checkout master
If you want to contribute by submitting code changes in a pull request, perform the build with
clang-tidy enabled by doing:
$ ./build.sh style
Build Scilla for Smart Contract Execution
The Zilliqa client works together with Scilla for executing smart contracts. Please refer to the Scilla repository for build and installation instructions.
Boot Up a Local Testnet for Development
Run the local testnet script in
$ cd build && ./tests/Node/pre_run.sh && ./tests/Node/test_node_lookup.sh && ./tests/Node/test_node_simple.sh
Logs of each node can be found at
To terminate Zilliqa:
$ pkill zilliqa
|Development discussion (discord)|
|Security bug bounty||Contact security