Part V - Roadmap

(Link to part IV)

There are no hard dates yet. The main purpose of the road map is to provide you with an idea of what’s in store and what the scope of the project is.

Note that this is not the final road map by a long shot. Things may still change along the way, and there are lots of other ideas still laying around. Our focus will be on getting a Proof of Concept (PoC) version out as soon as possible. The items marked as future extension will most likely not be part of this PoC.

Abra:

Abra Specification : The reference documentation for the Abra language and its standard libraries.

: The reference documentation for the Abra language and its standard libraries. Abra to LLVM Compiler : A compiler that can cross-compile Abra code into x86/arm/etc code that can be run directly.

: A compiler that can cross-compile Abra code into x86/arm/etc code that can be run directly. Abra to FPGA Compiler : A compiler that can cross-compile a Abra code into Verilog code that can be loaded and run on an FPGA directly.

: A compiler that can cross-compile a Abra code into Verilog code that can be loaded and run on an FPGA directly. Abra Development Environment: Development environment that facilitates programmer-friendly creation of Abra code. Future extension.

Abra libraries

Abra Library Documentation : The reference documentation for the Abra libraries.

: The reference documentation for the Abra libraries. Abra Standard Library : A library of standard Abra functions.

: A library of standard Abra functions. Abra x86 Support Library : A library that maps some of the standard Abra functions to more efficient x86 equivalent. These will mostly be low-level functions that can be optimized by using specific x86 instructions. Future extension.

: A library that maps some of the standard Abra functions to more efficient x86 equivalent. These will mostly be low-level functions that can be optimized by using specific x86 instructions. Future extension. Abra FPGA Support Library: A library that maps some of the standard Abra functions to more efficient Verilog equivalent. These will mostly be low-level functions that can be optimized by using specific Verilog instructions. Future extension.

Qubic Protocol

Qubic Specification : The reference documentation for the Qubic protocol.

: The reference documentation for the Qubic protocol. Qubic Math Paper : A whitepaper-like document exploring the mathematical properties of some parts of the Qubic protocol.

: A whitepaper-like document exploring the mathematical properties of some parts of the Qubic protocol. Qubic PoC: Non-trivial example use case of the Qubic protocol running on the Tangle.

Q-Tangle:

Qubic Packager : A packager that packages Abra code into a qubic transaction.

: A packager that packages Abra code into a qubic transaction. Timestamps : Definition and implementation of reliable timestamps for use in various parts of the Qubic protocol.

: Definition and implementation of reliable timestamps for use in various parts of the Qubic protocol. Transactions : Definition, documentation and implementation of all Qubic-specific transactions.

: Definition, documentation and implementation of all Qubic-specific transactions. Assembly : The parts of the Qubic protocol that handle everything assembly-related. This includes creation and maintenance of assemblies by defining assembly and epoch parameters.

: The parts of the Qubic protocol that handle everything assembly-related. This includes creation and maintenance of assemblies by defining assembly and epoch parameters. Quorum : The parts of the Qubic protocol that handle everything related to quorums. This includes the oracles committing and revealing results and coming to consensus about the quorum. It also includes the qubic owner validating the quorum result.

: The parts of the Qubic protocol that handle everything related to quorums. This includes the oracles committing and revealing results and coming to consensus about the quorum. It also includes the qubic owner validating the quorum result. Rewards : The parts of the Qubic protocol that handle everything related to rewards. This includes the qubic owner side that determines to pay how much to which oracles. It also includes the oracle side that keeps track of actually being paid.

: The parts of the Qubic protocol that handle everything related to rewards. This includes the qubic owner side that determines to pay how much to which oracles. It also includes the oracle side that keeps track of actually being paid. Resource Test: The parts of the Qubic protocol that handle everything related to the resource test phase. This includes defining a Proof of Work qubic that can function as an initial implementation. It also includes the part of the Q-node that runs the resource test, posts the results, and agrees on the weighing factors.

Oracle Machine

Q-Tangle : Separate localized tangle optimized to support Qubic protocol. The Q-tangle will only contain the transactions relevant to the Qubic protocol. This part will hook into the Tangle message stream and filter out Qubic transactions.

: Separate localized tangle optimized to support Qubic protocol. The Q-tangle will only contain the transactions relevant to the Qubic protocol. This part will hook into the Tangle message stream and filter out Qubic transactions. URI Processor : Implementation of URI processor to handle accessing of external data.

: Implementation of URI processor to handle accessing of external data. Dispatcher : Handles triggering of events and schedules and runs qubics.

: Handles triggering of events and schedules and runs qubics. Q-Node: An IOTA full node that integrates the ability to run the Qubic protocol.