Celebrating Six Years of Post-Quantum Security: The Journey of QRL

Read More

Last Month at QRL - January 2022

QRL Mainnet V3.0 (codename Cesium) has been released, a look and appreciation of QRL Community Code Initiatives, the World’s 1st Steampunk Quantum Computer Resistant Blockchain Node, and a plethora of code updates!

technical

2nd February 2022

Table of Contents

Highlights

QRL Mainnet v3.0 (Cesium) has been released!

We’re pleased to announced that QRL mainnet version 3 (codenamed Cesium) has been released!

This mainnet release is the result of QRL Improvement Proposal #16 (QIP-016) which proposed to reduce QRL emissions in order to improve the network. As part of the QIP process, many of the positive and negative considerations were discussed at length before being put to our first on-chain vote resulting in the QIPs approval. The final determination can be found on the QIP GitHub discussion page.

The hard fork implements an emission reduction by a multiplication factor of 0.4x of the per block coinbase reward starting at the hard fork block height of 1,938,000, which has an estimated date time of 2022-02-25 07:30 UTC as of this blog.

Updating is simple, and consists of no API changes so wont break any environments.

1
2
3
4
5
6
# Step 1. Stop QRL node
# Step 2. Update QRL node
pip3 install qrl -U

# Step 3. Start QRL node
start_qrl

You can read more detailed instructions in our mainnet v3 release blog or our recent video guide featuring the construction of a QRL steampunk node!

Community Code Initiatives

We often pride ourselves on maintaining a high level of code-transparency with 55 public and open-source (MIT) source repositories (65 total), but this month we’d like to highlight the works of the QRL community, which have contributed 14 repositories to date. The two most recent from January are QRLtoSQLite and zeus-proxy-advanced, which we’re featuring this month.

Other community code initiatives have included:

  • QRLtoSQLite: SQLite database of the QRL state
  • zeus-proxy-advanced: Tool for developers to use GRPC functions via a REST API + a testnet faucet
  • qrllight: PyQt5 blockchain wallet for Quantum Resistant Ledger, a post quantum secure blockchain, using XMSS
  • qrlbutler: Discord.js bot that helps support the QRL community through helpful functions
  • qrl-tokenomics: Tools and datasets to evaluate QRL tokenomics of the QRL blockchain project
  • tipbot: Tipbot written in javascript to enable tipping of QRL across social media sites
  • Qrllib_Windows: Windows native support for the QRL Core Library
  • QRL_Android: Running a QRL node on Android
  • QRL_rpi: Running a QRL node on a Raspberry Pi
  • faqq: Frequently asked quantum questions

The QRL Community consists of forward-thinking professionals and amateurs of various backgrounds and ages around the world that strives to create an accessible and open environment for everyone to thrive. Without them, the QRL project would not exist as it is today. With code being the engine that turns gears of a working blockchain and the ecosystem that surrounds it, having a strong community of contributors can ensure that those maintainers who write the code, while individually ephemeral, are collectively eternal. Longevity at its finest.

From the beginning, we’ve always had QRL Improvement Proposals (QIPs), where anyone can form a proposal for core protocol changes. Last year, we made headway with on-chain voting so that the community can better steer the direction of QRL. That lead to the first on-chain vote, which resulted in QRL Mainnet v3.0. We also hosted our first hackathon, which we will be doing more of.

In the coming years, we’ll be taking this further. Many reading may have heard of the QRL Enhancement Program (tentative title) which is under development, and aims to give a broader focus to community driven initiatives which covers more ground. Anything outside of core protocol updates would apply here, including everything from social media campaigns and graphic design, to the internationalisation of content or local meetups. While it’s imperative to do everything right, with the amount of demand from the community that wants to hit the ground running, we’re looking at a way we can have an intermediate solution, so stay tuned!

Have a development project that’s not included in The QRL Community GitHub organisation? Get in touch with a team member in Discord, and we’ll be able to add it either as a mirror or as a source.

New Release: QRLtoSQLite

The QRL blockchain uses LevelDB to store its information. While a very capable key value store database with a focus on performance, it’s not one that’s readily accessible for those wanting to analyze the QRL blockchain or us it in other programs that may be more suitable with a RDMS.

The QRLtoSQLite repository by 0xFF0 (@0xFF in Discord) provides tooling to create an SQLite database from the data directory of a QRL node and includes the occasional snapshot of a database accessible directly from the GitHub repo.

New Release: zeus-proxy-advanced

Zeus-proxy-advanced from successor1 (@runforest in Discord) is a tool inspired from zeus-proxy(different code base) for developers to use GRPC functions via a REST API.

It’s also meant for users, who can use it as a testnet faucet for the QRL Blockchain over at quantafaucet.xyz

Current methods are:

  • POST /api/faucet
  • GET /grpc/mainnet/GetBalance/{qaddress}
  • GET /grpc/mainnet/GetBlock/{headerhash}
  • GET /grpc/mainnet/GetBlockByNumber/{number}
  • GET /grpc/mainnet/GetHeight
  • GET /grpc/mainnet/GetMiniTransactionsByAddress/{qaddress}
  • GET /grpc/mainnet/GetOTS/{qaddress}
  • GET /grpc/mainnet/GetStats
  • GET /grpc/mainnet/GetTotalBalance/{qaddress}
  • GET /grpc/mainnet/GetTransaction/{transaction_hash}
  • GET /grpc/testnet/GetBalance/{qaddress}
  • GET /grpc/testnet/GetBlock/{headerhash}
  • GET /grpc/testnet/GetBlockByNumber/{number}
  • GET /grpc/testnet/GetHeight
  • GET /grpc/testnet/GetMiniTransactionsByAddress/{qaddress}
  • GET /grpc/testnet/GetOTS/{qaddress}
  • GET /grpc/testnet/GetStats
  • GET /grpc/testnet/GetTotalBalance/{qaddress}
  • GET /grpc/testnet/GetTransaction/{transaction_hash}

The World’s 1st Steampunk Quantum Computer Resistant Blockchain Node

Michael Strike from the core QRL team walks us through the creation of a fully functioning steampunk themed QRL node as well as upgrading the node to the latest mainnet release v3.0 (codnamed Cesium).

You’ll be in Michaels capable hands as he goes over why you’d want to update your QRL node, including Areas covered:

  • Why should I upgrade my QRL node?
  • What happens if I don’t upgrade my node?
  • How to upgrade your QRL Node 3.0 (Cesium)
  • Inspiration for the Steampunk themed QRL custom node
  • Steampunk themed QRL node- Full Walkthrough of build
  • Build complete & fully functioning

Quantum News

Million-Qubit Quantum Computing? How SEEQC Plans To Scale Quantum Computers

“What we’re focused on really is figuring out a strategy for how to scale a quantum computer,” CEO John Levy told me recently on the TechFirst podcast. “As much as IBM will get to a thousand or thousands of qubits … the question is how do we get to ten thousand, a hundred thousand, a million qubits so that we actually scale quantum computers to the complexity of the problems that large companies care about.”

“And that’s what we’re doing.”

Read more at Forbes

A new method for quantum computing

Physicists from the University of Amsterdam have proposed a new architecture for a scalable quantum computer. Making use of the collective motion of the constituent particles, they were able to construct new building blocks for quantum computing that pose fewer technical difficulties than current state-of-the art methods.

Read more on EurekAlert

What is the quantum apocalypse and should we be scared?

Imagine a world where encrypted, secret files are suddenly cracked open - something known as “the quantum apocalypse”. … Seriously? That does sound completely apocalyptic, so why haven’t we heard more about this?

The answer is that yes, OK, this would indeed be the case if no precautions were being taken. “If we weren’t doing anything to combat it then bad things would happen,” says a Whitehall official who asked not to be named.

In practice, mitigation efforts are already in train and have been for some years. In the UK, all government data classified as “top secret” is already “post-quantum” - that is, using new forms of encryption which researchers hope will be quantum-proof.

Read more on BBC News

Development Changelog

theQRL/block-explorer

Dependency spring clean

  • [d19ad] Upgrade dependencies
  • [fb6c2] Node v14 in CI
  • [d8a27] Merge pull request #409 from jplomas/master Upgrade dependencies
  • [de8ef] Merge branch ‘master’ into testnet

Upgrade dependencies

  • [d19ad] Upgrade dependencies
  • [fb6c2] Node v14 in CI

MS_VOTE tx page invalid QRL address [Testnet -> Mainnet]

  • [9346d] Merge pull request #376 from theQRL/master Rebase onto master & redeploy
  • [ae0df] Merge pull request #380 from theQRL/master Latest node version
  • [85f4a] Merge pull request #384 from theQRL/master Herominers update
  • [37b49] Update to Meteor 2.5.1
  • [d96aa] Merge pull request #402 from theQRL/master Even testnet and mainnet code
  • [4f580] Merge remote-tracking branch ‘origin/master’
  • [0d911] Merge pull request #405 from jplomas/master Meteor 2.5.1
  • [f3323] Prevent invalid txhash -> QRL address conversion
  • [5a46d] Merge pull request #407 from jplomas/master Prevent invalid txhash -> QRL address conversion

Prevent invalid txhash -> QRL address conversion

  • [f3323] Prevent invalid txhash -> QRL address conversion

Meteor 2.5.1

  • [37b49] Update to Meteor 2.5.1
  • [4f580] Merge remote-tracking branch ‘origin/master’

Fixes issue with MS address not in state

  • [fa417] fix: multi-output tokens received on address page (Issue #399)
  • [eceee] Add meta description to header
  • [8674e] Merge branch ‘master’ of github.com:jplomas/block-explorer
  • [bbfce] Merge branch ’theQRL:master’ into master
  • [50b62] Fix unhandled error on MS addresses not in state which could lead to explorer crash
  • [5f5fc] Merge remote-tracking branch ‘origin/master’

Even testnet and mainnet code

  • [d9c81] Add volt-mine config from PR & up node version
  • [8d9c4] Add pools from @jackalyst PR
  • [b0e39] Merge branch ‘master’ into master
  • [58c5b] Merge pull request #393 from jplomas/master Amalgamate PRs and fix CI checks
  • [40401] Bump to use node v12 - dependencies updated - broken SHA512 implemetation on newer node versions fixed - semantic->fomantic
  • [b5ff2] Merge branch ‘master’ of github.com:jplomas/block-explorer
  • [13d53] Merge branch ‘master’ into master
  • [c17b1] Use crypto-js v4.0.0
  • [a691f] Merge branch ‘master’ of github.com:jplomas/block-explorer
  • [6ed09] Merge pull request #394 from jplomas/master Node v12
  • [5b8b8] Add meta description to header
  • [2fbf9] fix: multi-output tokens received on address page (Issue #399)
  • [53a6d] Merge pull request #396 from jackalyst/master Add meta description to header
  • [8e2fe] Merge branch ‘master’ into master
  • [f901a] Merge pull request #401 from jplomas/master fix: multi-output tokens received on address page (Issue #399)
  • [fa417] fix: multi-output tokens received on address page (Issue #399)
  • [eceee] Add meta description to header
  • [8674e] Merge branch ‘master’ of github.com:jplomas/block-explorer
  • [bbfce] Merge branch ’theQRL:master’ into master
  • [50b62] Fix unhandled error on MS addresses not in state which could lead to explorer crash
  • [5f5fc] Merge remote-tracking branch ‘origin/master’
  • [8a74e] Merge pull request #404 from jplomas/master Fixes issue with MS address not in state

theQRL/qips

Move QIP016 from “in development” to “awaiting hardfork”

  • [a08e2] Move QIP016 from in development to awaiting_hardfork

theQRL/theqrl.org

Add network stats map

  • [7242c] Add script to update various statistics
  • [e66b4] Add network stats map
  • [b9558] Update data

Add QRL Mainnet v3.0 release blog

  • [94b52] Add QoL ‘copy’ function to code sections
  • [430de] Add QRL Mainnet v3.0 release blog
  • [f42d9] Emission chart alignment fix
  • [6f33a] Additional fixes Michael Strike/Ryan Malinowski

New QRL Wallet v1.8.1 Release!

  • [da22b] New QRL Wallet Release!

New blog: QRL Winter Hackathon 2021 results

  • [625c5] Add preliminary table styles
  • [457af] New blog: QRL Winter Hackathon 2022 results
  • [b18a4] Hackathon blog text

theQRL/qrl-wallet

Even Testnet/Mainnet

  • [cd913] Fix for Ledger Set XMSS/OTS index & version display
  • [9fe1e] Merge pull request #509 from jplomas/master Fix for Ledger Set XMSS/OTS index & version display
  • [164b4] Hard fork node compatibility & rewrite of proto hash verification
  • [91060] Merge pull request #511 from jplomas/master Hard fork node compatibility & rewrite of proto hash verification

Hard fork node compatibility & rewrite of proto hash verification

  • [164b4] Hard fork node compatibility & rewrite of proto hash verification

theQRL/qrl-cli

feat: Adding notarization command & node connection retry on connection failure

  • [f043e] feat: Notarization message transaction (#16) Using a given sha256sum of user data, will send a message transaction formatted with notarization encoding onto the chain.
  • [5ad62] fix: Circleci test failing Circleci failing when args without variables are in the before() block. Moving back to the previous location.
  • [c951c] fix: Qrlnetwork.connect() failure when connection to node fails upon first attempt. Adding fault tolerance when attempting to connect to nodes. Will now try (5) times on connection failure before failing. Catching connection failure, gracefully printing error to console upon fail.

feat: adding messages to send transactions & unit testing overhaul

  • [80233] Adding optional 80 byte message data to QRL transfer, send additional testing
  • [0469d] fix wallet encryption password passed through cli flag (-p) password –> walletPassword
  • [9f380] Rework unit tests for new testnet transactions moving to locally generated addresses/txn’s each time tests are run
  • [00f5c] Cleanup
  • [24751] Adding gitignore and empty directorys for test files
  • [2c682] Fixing before hook to fire before testing runs to populate needed files.
  • [8925f] Updating tests to function with new testnet network genesis.
  • [a20b4] Rework and improved failure testing.
  • [4365e] Updating README instruction
  • [03c7d] Fixing tests, grabbing tx_hash for lookup from file for args
  • [c8a52] Testing variables pulled from generated files order
  • [a6892] Testing variables pulled from generated files order
  • [aafc4] Remove end of file block
  • [ee30d] Remove end of file block
  • [539cb] Remove console.log()
  • [41082] Moving args to Before(done =>{}) block for variable args from generated files and consistency
  • [a5430] Moving args before command

Latest proto file and node v12

  • [8c97e] sign-tx-offline command
  • [43b84] Merge branch ‘master’ of github.com:jplomas/qrl-cli
  • [f7b39] Use latest proto file & graceful status command fail
  • [7abbd] Bump to node v12
  • [f4e7b] Use node v12 binaries in distribution
  • [ad461] node v16 (!)
  • [9fd08] Use node v16 in CI

theQRL/QRL

Update README.md

Merged Dev

  • [e56c3] Hard fork code for Emission reduction, added more checks, CLI fixes
  • [a007a] Added State Migration code from version 0 to 1 and updated testnet hardfork height
  • [d4c72] Removed unused imports
  • [10b7a] Merge pull request #1736 from cyyber/dev Hard fork code for Emission reduction, added more checks, CLI fixes
  • [3d3d1] New Testnet config & genesis file + version check post hard fork for mainnet
  • [a2b6d] Changed hardfork height for testnet to 3000
  • [74951] Merge pull request #1737 from cyyber/dev New Testnet config & genesis file + version check post hard fork for mainnet

New Testnet config & genesis file + version check post hard fork for mainnet

  • [3d3d1] New Testnet config & genesis file + version check post hard fork for mainnet
  • [a2b6d] Changed hardfork height for testnet to 3000

Hard fork code for Emission reduction, added more checks, CLI fixes

  • [7bce6] Merge pull request #1730 from theQRL/dev Merged Dev
  • [e56c3] Hard fork code for Emission reduction, added more checks, CLI fixes
  • [a007a] Added State Migration code from version 0 to 1 and updated testnet hardfork height
  • [d4c72] Removed unused imports

theQRL/explorer-helpers

Linting fixes & wallaby.js cfg

  • [1a63a] Linting fixes & wallaby.js cfg

dependency fix & migrate to v2 bech32 module

  • [620be] dependency fix & migrate to v2 bech32 module
  • [e0d9f] Use node v10 in CI
  • [45c0b] Update babel to v7

theQRL/qryptonight

Automatically use software AES when hardware AES is not supported

  • [034d3] Attempt to use method pointers to determine whether to use hardware AES
  • [78c7f] Determine which function to use from within Qryptonight::hash instead
  • [abaff] Initialise function pointer only once
  • [e278b] Set up function pointer, while still allowing init() to remain static
  • [46e5e] Use function pointer directly instead of index
  • [7b6e1] Rename variables
  • [78183] Added comment on protected variable prefix

theQRL/qrllib

Add shasha Rust implementation

  • [3265e] Add shasha Rust implementation
  • [f5a60] set crate versioning for sha2 and hex, and remove libc dependency
  • [10898] Merge branch ‘master’ into shasha

Want to learn more?

Give our website theqrl.org a browse or join us for a chat in one of our many communities on Telegram, Discord, Reddit, Facebook, or KakaoTalk.

Want to stay up to date? Follow us on Youtube, Twitter or our Telegram news channel.

Want to dig into our audited, MIT open-source, enterprise-grade codebase? Check out our github at: https://github.com/theQRL/QRL/

technical

2nd February 2022


Jack Matier

WRITTEN BY

Jack Matier