February 2020

Today we are releasing a foundational update to the Overledger SDK, starting with Javascript following by Java SDKs. You can watch the technical walkthrough and tutorial by Dr Luke Riley, Head of Innovation and R&D, Quant Labs.

We’ve been working tirelessly to further enhance the capabilities of Overledger and preparing the technology for multi-chain environments.

In this release, we have enabled standardisation of objects to abstract and simplify how to interact with different types of blockchains (UXTO and Account-based) in a common model.

We’ve also created the ability to directly deploy, invoke and query smart contracts directly through Overledger.

Finally, this update sets the foundations to build the ecosystem for the Overledger Network, allowing stakeholders other than Quant to write any type (DLT and non-DLT) Overledger connectors and sets up the ecosystem with multiple entry points for Overledger Gateways.

These updates open up the integration capabilities of Overledger to 3rd parties and create the foundations for the Overledger Network.

Standardisation

To solve this challenge for enterprise and developers, we’ve created the following principles to Standardisation which also aligns to the work in ISO TC307 and academic work from Dr Paolo Tasca and Dr Claudio Tessone:

Each object represents a core component of DL systems

Each object field groups similar properties in different DLs into one field

Each object can use an additional fields section for DL specific parameters to be added (and therefore no underlying transaction data will be lost)

Taken together, this will provide users with a clear distributed ledger data standard, which will be publicly released as we move closer to the deployment of Overledger Network. Furthermore, our object definitions will be released in versions to reflect continuing developments.

Without Overledger, you would have to individually code objects and how to interact with them manually for your applications. This is further amplified if you use different blockchain types for your application (UTXO vs Accounts Based) and further still when you have a multi-chain approach to then customise each interaction and object for all blockchains involved.

Practically, we have created the following framework to cater for objects and smart contracts:

Firstly we have integrated the transaction and smart contract objects

Transactions have 3 levels of inheritance, due to the inherent differences between UTXO and Accounts based-distributed ledgers.

Smart contracts have 2 levels of inheritance. Note that for smart contracts, the UTXO/Account difference matters less than the Turing-Complete/Non-Turing Complete difference, but it is not a large enough difference to warrant 3 inheritance levels.

Demonstration 1 — Overledger Transaction Object Standards

In the SDK Update video we show:

A UTXO standardized transaction being defined and deployed for the Bitcoin blockchain

Object standardisation here allows for transactions with n number of inputs, m number of outputs and paves the way for future updates regarding user-defined scripts.

Two Accounts standardized transactions being defined and deployed for the Ethereum blockchain and XRP ledger

Object standardisation here allows for a more clear distinction between value-based transactions and smart contract ones (see demonstration 2)

Demonstration 2 — Smart Contracts through Overledger

In the SDK Update video we show smart contracts for the Ethereum blockchain can be handled through Overledger: