/QRL

quantum resistant ledger

Primary LanguagePythonMIT LicenseMIT

GitHub version Build Status Codacy Badge Codacy Badge Snyk Vulnerability Analysis

QRL - Quantum Resistant Ledger

Python-based blockchain ledger utilising hash-based one-time merkle tree signature scheme (XMSS) instead of ECDSA. Proof-of-stake block selection via a signed iterative hash chain reveal scheme which is both probabilistic and random (https://github.com/theQRL/pos).

Hash-based signatures means larger transactions (6kb per tx, binary), longer keypair generation times and the need to record 'state' of transactions as each keypair can only be used once safely. Merkle tree usage enables a single address to be used for signing numerous transactions (up to 2^13 computationally easily enough). Transactions have an incremented nonce to allow wallets to know which MSS keypair to use - currently XMSS/W-OTS+ are natively supported.

More information:


QRL Testnet (Instructions for alpha testers)

You are welcome to install the alpha version and join the testnet. Be aware that work is in progress and there might be frequent breaking changes.

Ubuntu ✅

Ensure your apt sources are up to date and install dependencies

sudo apt update
sudo apt -y install swig3.0 python3-dev python3-pip build-essential cmake pkg-config libssl-dev libffi-dev

To get the source and start the node, use the following:

git clone https://github.com/theQRL/QRL.git
cd QRL/
sudo pip3 install -r requirements.txt
python3 start_qrl.py

Debian Jessie ✅

Debian has some issues in old packages, so you need to install some backports. Debian does not have sudo by default, if you have not installed sudo, the use su and later do not forget to exit. Do NOT run the node as root. The following lines show [sudo] as optional. Adjust accordingly.

echo "deb http://ftp.debian.org/debian jessie-backports main" | [sudo] tee -a /etc/apt/sources.list
[sudo] apt-get update
[sudo] apt-get -t jessie-backports install cmake swig3.0
[sudo] apt-get -y install swig3.0 python3-dev python3-pip build-essential cmake pkg-config libssl-dev libffi-dev
[sudo] pip3 install -U setuptools pip

To get the source and start the node, use the following:

git clone https://github.com/theQRL/QRL.git
cd QRL/
sudo pip3 install -r requirements.txt
python3 start_qrl.py

OSX ✅

If you dont have brew yet, we think you should :) Install brew following the instructions here: https://brew.sh/

Now install some dependencies

brew update
brew install cmake python3 swig boost

To get the source and start the node, use the following:

git clone https://github.com/theQRL/QRL.git
cd QRL/
sudo pip3 install -r requirements.txt
python3 start_qrl.py

Raspberry Pi (Raspbian Stretch) ✅

Install dependencies

sudo apt update
sudo apt -y install swig3.0 python3-dev build-essential cmake ninja-build libboost-random-dev libssl-dev libffi-dev
sudo pip3 install -U setuptools pip

To get the source and start the node, use the following:

git clone https://github.com/theQRL/QRL.git
cd QRL/
sudo pip3 install -r requirements.txt
python3 start_qrl.py

Raspberry Pi (Raspbian Jessie) 🌱

NOT TESTED. Your feedback is appreciated!

Debian has some issues in old packages, so you need to install some backports. Debian does not have sudo by default, if you have not installed sudo, the use su and later do not forget to exit. Do NOT run the node as root. The following lines show [sudo] as optional. Adjust accordingly.

echo "deb http://ftp.debian.org/debian jessie-backports main" | [sudo] tee -a /etc/apt/sources.list
[sudo] apt-get update
[sudo] apt-get -t jessie-backports install cmake swig3.0
[sudo] apt-get -y install swig3.0 python3-dev python3-pip build-essential pkg-config libssl-dev libffi-dev
[sudo] pip3 install -U setuptools pip

To get the source and start the node, use the following:

git clone https://github.com/theQRL/QRL.git
cd QRL/
sudo pip3 install -r requirements.txt
python3 start_qrl.py

If you get the following error:

 The 'cffi>=1.7' distribution was not found and is required by cryptography
 get an error with 

Add the cffi package:

[sudo] pip3 install cffi

Windows 🌱

Windows support in the current version is limited. An alternative is to use an Ubuntu VM (virtualbox). Docker containers are not working wel in Windows at the moment

We are working on a solution to native Windows support