Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zilliqa/zilliqa
Zilliqa is the world's first high-throughput public blockchain platform - designed to scale to thousands of transactions per second.
https://github.com/zilliqa/zilliqa
zilliqa
Last synced: 3 days ago
JSON representation
Zilliqa is the world's first high-throughput public blockchain platform - designed to scale to thousands of transactions per second.
- Host: GitHub
- URL: https://github.com/zilliqa/zilliqa
- Owner: Zilliqa
- License: gpl-3.0
- Created: 2017-12-27T07:42:33.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-11-12T07:30:13.000Z (about 1 month ago)
- Last Synced: 2024-12-12T23:07:22.682Z (10 days ago)
- Topics: zilliqa
- Language: C++
- Homepage: https://www.zilliqa.com
- Size: 51.6 MB
- Stars: 1,126
- Watchers: 106
- Forks: 280
- Open Issues: 130
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Zilliqa
## Overview
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](https://dev.zilliqa.com/docs/contributors/contribute-buildzil).
* If you’re interested in hacking on the Zilliqa code base, see the [Coding Guidelines](https://github.com/Zilliqa/Zilliqa/wiki/Coding-Guidelines).> **NOTE**: The `master` branch is not for production as development is currently being worked constantly, please use the `tag` releases if you wish to work on the version of Zilliqa client that is running live on the Zilliqa blockchain.
## Zilliqa Mainnet
The current live version on the Zilliqa Mainnet is Zilliqa [v9.2.3](https://github.com/Zilliqa/Zilliqa/releases/tag/v9.2.3) and Scilla [v0.13.3](https://github.com/Zilliqa/scilla/releases/tag/v0.13.3).
| | URL(s) |
|:---------|:-------|
| **API URL** | `https://api.zilliqa.com/` |
| **Block Explorer** | [**Viewblock**](https://viewblock.io/zilliqa)
[**DEVEX**](https://devex.zilliqa.com/) |## Developer Testnet
The current live version on the Developer Testnet is Zilliqa [v9.2.5](https://github.com/Zilliqa/Zilliqa/releases/tag/v9.2.5) and Scilla [v0.13.3](https://github.com/Zilliqa/scilla/releases/tag/v0.13.3).
| | URL(s) |
|:---------|:-------|
| **API URL** | `https://dev-api.zilliqa.com/` |
| **Block Explorer** | [**Viewblock**](https://dev-explorer.zilliqa.com)
[**DEVEX**](https://devex.zilliqa.com/?network=https%3A%2F%2Fdev-api.zilliqa.com) |
| **Faucet** | [**Link**](https://dev-wallet.zilliqa.com) |## 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
## Available Features
The current release has the following features implemented:
* [Network sharding](https://dev.zilliqa.com/docs/basics/basics-zil-sharding#network-sharding)
* [Transaction sharding](https://dev.zilliqa.com/docs/basics/basics-zil-sharding#transaction-sharding)
* [Ethash Proof of Work (PoW) for joining the network](https://dev.zilliqa.com/docs/contributors/core-gossip)
* [GPU (OpenCL and CUDA) for PoW](https://dev.zilliqa.com/docs/contributors/core-pow#gpu-mine)
* [Block rewarding mechanism](https://dev.zilliqa.com/docs/basics/basics-zil-reward/)
* [Gas pricer](https://dev.zilliqa.com/docs/contributors/core-global-gas-price)
* [Coinbase rewards](https://dev.zilliqa.com/docs/contributors/core-coinbase)
* [EC-Schnorr signature](https://github.com/Zilliqa/schnorr)
* [pBFT Consensus mechanism](https://dev.zilliqa.com/docs/contributors/core-consensus)
* Data layer and accounts store
* [Smart contract layer](https://scilla.readthedocs.io)
* 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](https://dev.zilliqa.com/docs/contributors/core-view-change)
* Node recovery mechanism
* Protocol upgrade mechanism
* [Gossip protocol for network message broadcasting](https://dev.zilliqa.com/docs/contributors/core-gossip)
* [Seed Node Staking](https://dev.zilliqa.com/docs/staking/staking-overview)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](https://dev.zilliqa.com/docs/miners/mining-zilclient#hardware-requirements) page.
## Build from Source Code
Starting with Zilliqa [v8.6.0](https://github.com/Zilliqa/Zilliqa/releases/tag/v8.6.0), the officially supported operating system is **Ubuntu 22.04**.
If you'd like to experiment with a different distro (including the previously supported Ubuntu 18.04), please make sure to install gcc >= 11.
Run the following to install the build dependencies:
```bash
sudo apt-get update
sudo apt-get install autoconf \
build-essential \
ccache \
clang-format \
clang-tidy \
git \
lcov \
libcurl4-openssl-dev \
libssl-dev \
libtool \
libxml2-utils \
ninja-build \
ocl-icd-opencl-dev \
pkg-config \
python3-dev \
python3-pip \
libgmp-dev \
bison \
gawk
git submodule update --init --recursive
```
Run the following to install latest version of cmake. CMake version >= 3.19 must be used:```
wget https://github.com/Kitware/CMake/releases/download/v3.19.3/cmake-3.19.3-Linux-x86_64.sh
mkdir -p "${HOME}"/.local
bash ./cmake-3.19.3-Linux-x86_64.sh --skip-license --prefix="${HOME}"/.local/
export PATH=$HOME/.local/bin:$PATH
cmake --version
rm cmake-3.19.3-Linux-x86_64.sh
```To install, clone vcpkg to a separate location (do not use brew on macos):
```shell
$ git clone https://github.com/Microsoft/vcpkg.git /path/to/vcpkg
$ cd /path/to/vcpkg && git checkout 2022.09.27 && ./bootstrap-vcpkg.sh
$ cd /path/to/zilliqa
$ export VCPKG_ROOT=/path/to/vcpkg
```
As part of building our source code, we patch websocketpp 0.8.2 to compile on C++20; please
see the license: https://github.com/zaphoyd/websocketpp/blob/master/COPYING.Build Zilliqa from the source:
```shell
# build Zilliqa binary
$ ./build.sh
```If you want to contribute by submitting code changes in a pull request perform the build with `clang-format` and `clang-tidy` enabled by doing:
```shell
$ ./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](https://github.com/Zilliqa/scilla) for build and installation instructions.
## Boot Up a Local Testnet for Development
1. Run the local testnet script in `build` directory:
```shell
$ cd build && ./tests/Node/pre_run.sh && ./tests/Node/test_node_lookup.sh && ./tests/Node/test_node_simple.sh
```2. Logs of each node can be found at `./local_run`
3. To terminate Zilliqa:
```shell
$ pkill zilliqa
```## Start a local network development environment
This is similar to the above, but deploys a local testnet to a local minikube cluster.
You can find documentation on how to do this on your local machine in `docs/localdev.md`.
You can find scripts which will set up an Ubuntu 22.04 machine in the cloud (or install necessary dependencies on your machine) in `docs/setup/README.md`.
## Further Enquiries
| | Link(s) |
|:---------|:-------|
| **Development discussion (discord)** | |
| **Bug report** | |
| **Security contact** | `security` :globe_with_meridians: `zilliqa.com` |
| **Security bug bounty** | HackerOne bug bounty |