Block[Chain] Alchemy Lab

Block[Chain] Alchemy Lab Toolkit

Motivation

The goal of the project "Block[Chain] Alchemy Lab" ‒ creation of a toolkit for educational and research activities for blockchain-related tasks. This toolkit consist from programming framework and tools for modelling different blockchain and not only blockchain (indicated by the optionality of "chain") environments. Programming framework oriented to flexibility and possibility of changing different layers of architecture: consensus machinery, storage systems, transaction transport, smart contract implementation, etc.

Framework implemenation

The Block[Chain] Alchemy Library (BAL)

At present, the implemented Python framework consists of classes:

  1. BaseBlockChain with a basic blockchain functionality.
  2. POWBlockChain ‒ classical Proof Of Work (POW) blockchain with possibility of difficulty level setting.
  3. QuantumBlockChain ‒ blockchain with a Proof Of Infrastructure (POI) based on Quantum Key Distribution (QKD) technology. Basic implementations of HS3TN (High Speed Scalable Secure Transaction Network) tech. solutions:
    1. Quantum encoding/decoding of transactions
    2. Quantum consensus

The utiltity blockchain.py implements CLI for nodes running and REST API for handling of requests to nodes.

Mininet modelling

To model high-level networks, you can use extension classes for the popular SDN modeling system Mininet. Mininet's customization for BAL classes balmn.py adds several types of blockchain host nodes: Bitcoin, Etherium, modelling POW and Quantum nodes. You can run simulation networks using the standard mn utility or from Python programs.

Supporting tools

Supporting tools implements functionality related to QKD channels. This tools may emulate QKD hardware, serve QKD "pools" and encrypt transport channels between nodes. They include:

  1. QKD_emulator ‒ software emulator for QKD (Quantum Key Distribution) hardware.
  2. keyworker ‒ server for handling of Quantum keys pool.
  3. ctapudp ‒ quantum key codec TAP-interface.

Virtual machines

Virtual machine images:

  1. KVM image (SHA256SUM)
  2. VirtualBox image (SHA256SUM)

VMs are based on the NauLinux QNet distro:

  1. http://downloads.naulinux.ru/pub/NauLinux/sites/QNet/7.6/x86_64/iso/
  2. ftp://ftp.naulinux.ru/pub/NauLinux/sites/QNet/7.6/x86_64/iso/

More information

you may find in the project's Wiki.

2017-2019 (C) NauLinux Team