Software Stack

Menu...

The Nexus architecture is designed as a seven-layered software stack that includes a 64-bit register-based contract engine. Each layer is designated to carry out a specialized process independently, providing additional functionality to the existing Internet stack, the OSI model.

The Nexus Software Stack is a scalable and secure foundation for enterprise blockchain applications:

  • Applications can be customised to utilise as many layers of the Nexus Stack as desired.
  • Layers allow developers from all levels of experience to develop on the layer that is most suited to them.
  • Each layer is assigned a role for providing a specific function, letting the processing be split up across multiple types of nodes allowing large workloads to be processed in parallel.
  • A layered system follows natural law in providing levels of abstraction that creates efficiency and safety.
  • Lower layers require standardisation to ensure lower level logic is secure and efficient.

Software Stack

© Copyright 2019 Content by www.nexus.io

Interface

The interface is the user space and can be accompanied by various technologies from AR/VR to mobile interfaces. The official Nexus Interface layer provides a platform for modules and applications to embed directly into the Nexus Wallet.

© Copyright 2019 Content by www.nexus.io

Logical

The first layer of the developer application space, which forms the logic of most applications. This layer interacts directly with the API below it, and provides functionality that does not depend on direct access to the blockchain. An example of this could be simple requests such as: ‘Send a message to this user if another user completed this event.’ The logical layer can be accompanied by AI systems.

© Copyright 2019 Content by www.nexus.io

API

This layer provides an interface that allows developers to gain direct access to blockchain functionality. It is based on a simple verb and noun semantics, and accepts a wide variety of encoding. It is the gateway into the blockchain, that can be used without direct access to the lower levels of the software stack, making development on Nexus as easy as developing a web application.

  • Nexus APIs are HTTP based and accept JSON or form encoding, allowing for easy integration and interoperability with any existing system.
  • Nexus APIs abstract the complexity of the blockchain, allowing developers to build applications on the software stack in the language of their choice.
  • Allows businesses to create a universal and efficient system to conduct business internationally and reduce development costs.

© Copyright 2019 Content by www.nexus.io

Operation

Operations are instructions or actions that give registers context, and define more complex contract logic. A contract is an object containing: a register pre-state (the register that is being operated on that was passed upwards from the Register Layer), a primitive operation (only one primitive operation per contract), and a set of conditions (any amount of conditional operations).

Conditional Contracts
Conditional Contracts are an agreement between participating parties, outlining a set of requirements that must be met for a transaction to complete. They are the building blocks that allow users to engage with one another, such as contract expiration, or the exchanging of items. More advanced forms of non-custodial escrow or arbitration are also possible. Conditional statements have no limit to their complexity, being capable of handling groups of groups of conditions that together evaluate to either true or false. In the case the conditions return true, this allows the recipient of the transaction to claim their funds or object (depending on if this was a TRANSFER or DEBIT). In the case that the recipient is unable to satisfy the conditions, after a period of time set by the sender, the transaction will be redeemable.

© Copyright 2019 Content by www.nexus.io

Register

Registers are a data storage system that maintain an immutable record and history, including current and previous states, therefore they can be used to record the state of applications. The ownership of a register can be transferred between Sigchains, and thus perform as Assets, Tokens or simple objects. A register can also be owned by a token, creating partial ownership of the asset it represents. The Register Layer consists of three main components: Object Registers, State Registers, and a 64-bit Register Based Virtual Machine for condition execution.

Object Registers
Object Registers are programmable type-safe objects recorded with a predetermined structure which describes an asset, token, or programmer’s object. They can be used for a wide variety of purposes including company shares, digital assets, certificates, data files, and accounts. Data fields inside the object carry specifiers that define whether the field can be mutable, making the object itself able to enforce certain fields to have read-only or write access.

An example of this can be seen below:

Photographic Asset
Image ID: 108629084398374
License Type: Enhanced
Image Title: Arizona Sunset

The above example displays a meta-data format for a photographic asset that is stored in a programmable object register. This format can be augmented with mutable and immutable type specifiers, meaning that a field such as ‘Image Title’ in the example above, could be mutable and able to be modified, while the other fields would remain immutable.

State Register
A state register is a simple register that can store data in any sequence without an enforced format by the Ledger. These can be used by applications to record an immutable state. State Registers have two forms: RAW and APPEND. A RAW register is bound by its initial size, and can be written to at any time, while an APPEND register can only have data appended to its state, keeping the original contents immutable.

Virtual Machine
Conditional Statements are processed on top of the Nexus Virtual Machine which uses 64-bit registers to maintain the state of temporary condition variables as they are processed. The VM increases the efficiency of conditional statements, as it doesn’t carry the overhead of ‘pushing and popping’ from the stack as do other VMs. This part of the Register Layer is responsible for the incredible speed of conditional execution, requiring only 50 nanoseconds on average per instruction.

© Copyright 2019 Content by www.nexus.io

Ledger

The Ledger is responsible for ensuring all data is formed under consensus and is immutable by nature. It manages ownership between parties using cryptographic primitives such as hashing, digital signatures, and consensus protocols. It is composed of signature chains for user-level states, and the proposed architecture of the Three-Dimensional Chain (3DC) for the global state.

© Copyright 2019 Content by www.nexus.io

Network

The Network is responsible for the end-to-end communication between nodes, handling the relaying and receiving of ledger level data. Nexus augments this layer by using ‘overlays’ which provide IPv6 functionality to the network, which allows the user to control their IP address through cryptography.

LISP
LISP (Location Indicator Separation Protocol) creates better connectivity between peers as the overlay functions as a layer of ‘elevated trust’ to the Internet when combined with the ledger (blockchain), which increases the safety, reliability, and security of digital applications. The LISP overlay combines IPv6 Crypto EIDs with Signature Chains, enabling a fully encrypted peer-to-peer communication system and identification of the cryptographic keys through the ledger.

© Copyright 2019 Content by www.nexus.io