Skip to content

qlcchain/go-qlc

Repository files navigation

Logo

Actions Status codecov


QLC Chain is a next generation public blockchain designed for the NaaS. It deploys a multidimensional Block Lattice architecture and uses virtual machines (VM) to manage and support integrated Smart Contract functionality. Additionally, QLC Chain utilizes dual consensus: Delegated Proof of Stake (DPoS), and Shannon Consensus, which is a novel consensus developed by the QLC Chain team. Through the use of this dual consensus protocol, QLC Chain is able to deliver a high number of transactions per second (TPS), massive scalability and an inherently decentralized environment for NaaS related decentralized applications (dApp). The framework of QLC Chain will enable everyone to operate network services and benefit from it.

Network-as-a-Service (NaaS) is sometimes listed as a separate cloud provider along with Infrastructure- as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS). This factors out networking, firewalls, related security, etc.

NaaS can include flexible and extended Virtual Private Network (VPN), bandwidth on demand, custom routing, multicast protocols, security firewall, intrusion detection and prevention, Wide Area Network (WAN), content addressing and filtering, and antivirus.


Key Features

  • Multidimensional Block Lattice Structure
  • QLC Chain Smart Contract
  • Dual Consensus Protocol

    For more information, see YellowPaper.

Build and Run

make clean build
./gqlc

Docker

You can build the docker image yourself or download it from docker hub

Build docker images

cd docker
./build.sh

Download docker images from docker hub

docker pull qlcchain/go-qlc:latest

Start docker container

You can choose to run a normal node without an account or run an account node.

Run a normal node without an account

docker container run -d --name go-qlc \
    -p 9734:9734 \
    -p 127.0.0.1:9735:9735 \
    -p 127.0.0.1:9736:9736 \
    qlcchain/go-qlc:latest

Run an account node

You only need to assign a value to the environment variable seed to run the account node

docker container run -d --name go-qlc \
    -p 9734:9734 \
    -p 127.0.0.1:9735:9735 \
    -p 127.0.0.1:9736:9736 \
    qlcchain/go-qlc:latest --seed=B4F6494E3DD8A036EFF547C0293055B2A0644605DE4D9AC91B45343CD0E0E559

Run node by Docker Compose

  • create docker-compose.yml

    version: "3.5"
    
    services:
        qlcchain_node:
            image: qlcchain/go-qlc:${version}
            container_name: qlcchain_node
            command: ["--configParams=rpc.rpcEnabled=true", "--seed=B4F6494E3DD8A036EFF547C0293055B2A0644605DE4D9AC91B45343CD0E0E559"]
            ports:
                - "9734:9734"
                - "9735:9735"
                - "127.0.0.1:9736:9736"
            networks:
                - qlcchain
            volumes:
                - type: bind
                    source: ./data/
                    target: /qlcchain/.gqlcchain/
            restart: unless-stopped
    
    networks:
        qlcchain:
            name: qlcchain
    
  • run

    docker-compose down -v && docker-compose up -d

Contributions

We love reaching out to the open-source community and are open to accepting issues and pull-requests.

For all code contributions, please ensure they adhere as close as possible to the contributing guidelines

If you...

  1. love the work we are doing,
  2. want to work full-time with us,
  3. or are interested in getting paid for working on open-source projects

... we're hiring.

To grab our attention, just make a PR and start contributing.

Links & Resources