Skip to content

BurstChain®

BurstChain® is a blockchain protocol that manages BigData digital assets (not cryptocurrency). The platform’s blockchain protocol enables immutability, distribution, replication, time-stamping and cryptography. These features have been integrated into a Big Data-backed datastore to allow Big Data analytics and cognitive computing to be combined with blockchain.

An asset (i.e., a block of data) is the key object in BurstChain®. A chain consists of assets that are added and then verified before being accepted into the chain. The modified Proof-of-Stake (mPOS) model allows nodes to prove the asset is viable before acceptance. During that process, the asset cannot be transferred (aka, double-spent). The platform also time-stamps, hashes and signs the asset to preserve its authenticity and immutability in the chain. This process ensures that the asset is provable in the future.

BurstChain® is a BigData and blockchain platform that allows you to store and manage large data sets (assets) in a distributed ledger architecture. On top of BurstChain®, the platform includes three layers that add critical functionality to the core data management layer.

  • Consent Contracts - a set of APIs that allow you to create and execute customizable smart contracts for sharing of data with your partners, customers, patients, or other third parties.
  • AdaptiveIQ (AIQ) - a dashboard and customizable analytics web app that allows you to quickly build analytics tools to support your business needs. AIQ includes various functions, such as drill down, pivot, dashboards, interactive graphs, etc. If you will not be using BurstChain® for analytics, you will not need to use the AIQ tool.
  • Tokenization & Exchange - (COMING SOON) a set of APIs that allow you to create health tokens, connect financial transactions to data sharing (Consent Contract) transactions, connect to the BiQ Exchange and more.

Getting Started

First, BurstIQ will create for you:

  1. a username/password credential for an admin role
  2. a new client data-space (known as the client name)

Remember that your “client” name identifies a unique data-space within BurstChain® that segments that your company’s data from others.

Tutorials
Hello World cURL
Hello World Insomnia
Hello World Postman
File Loader API
SAS
R

The following are the major sections and functions of the BurstChain® (not comprehensive, see the Swagger API documentation for all possible functions). These sections are demonstrated in the BurstChain® Hello World Tutorial.

Note: These steps can be done view cURL commands, a Restful GUI (Insomnia or Postman are two commonly used options) or by using our Python or Javascript SDK Scripts. The SDK Scripts run all of the steps outlined below and also contain some helper functionality to help with making the api calls a little easier.

Chain Definition

BurstChain® allows you to have a segmented data-space to define multiple chains and store assets within a chain. In order to interact with a chain, the chain must be defined (see Metadata -> Dictionary). Only admins can create/modify dictionaries, but other users can interact with the assets via a Private and Public ID.

Authentication with Private/Public IDs

All users must have a private/public ID pair in order to interact with a chain. Each ID pair is tied to one (and only one) user. The ID enforces ownership of an asset and identifies users that have been granted access to non-owned assets via Consent Contracts (more on this later). Within a chain, users can only query and view assets that they “own” and assets for which they have permissioned access to via a Consent Contract. Assets must have at least one owner but may have multiple owners.

Any entity can request a private ID by calling the endpoint below with a valid client (data space) name.

GET {base_url}/api/burstchain/ip/private

All BurstChain® endpoints require the user’s private ID to be supplied in the Authorization header:

Authorization: ID {private_id}
content-type: application/json
accept: application/json

The entity can request it’s public ID at any time with the following endpoint, with the entity’s private ID in the header.

GET {base_url}/api/burstchain/ip/public

Asset Creation & Update

Based on the chain definition (dictionary), assets that meet that definition are created and stored in the chain. Assets can be added and updated using the burst-chain-ctrl endpoints. BurstChain® allows the owner of an asset to update that asset. In the event of an update, the previous asset will still be preserved in its location on the chain but is no longer available for query (except by the owner viewing the asset’s history). Consent Contracts only grant another user permission to view the most current version of the asset.

POST {base_url}/api/burstchain/{client_name}/{chain_name}/asset

PUT  {base_url}/api/burstchain/{client_name}/{chain_name}/asset

File Upload (Job)

It is possible to upload files as a bulk operation. This will create one asset per record of a file (formats include, CSV, XLS, XLSX, JSON, EDI, XML, etc). The response will be a job ID. The status of the job is query-able via a GET endpoint. Also it is possible to have the upload send an email once it is completed.

POST {base_url}/api/burstchain/{client_name}/{chain_name}/fileloader/job

GET {base_url}/api/burstchain/{client_name}/{chain_name}/fileloader/job/{job_id}

Asset Transfer

An owner can transfer ownership of an asset to another user or entitiy (that is identified by a PublicID) with the following endpoint.

POST {base_url}/api/burstchain/{client_name}/{chain_name}/transfer

Asset Query

There are multiple ways for a user to query a chain within the BurstChain®. Remember that the BurstChain® only allows the requester to see assets that it owns OR has been granted access to via Consent Contract(s) by other data owners.

Methods:

  • Map/Reduce - a map/reduce set of functions can be submitted to run against the chain
  • TQL - an ANSI-like SQL language that allows a user to write familiar SQL to query assets

Endpoints:

POST {base_url}/api/burstchain/{client_name}/{chain_name}/mapreduce/query

POST {base_url}/api/burstchain/{client_name}/{chain_name}/assets/query

Asset Erasure

It is possible for a data owner to completely erase an asset (and its history) from the chain. The chain will maintain consistency of the erased assets/blocks within their position of the chain, but the asset (and asset metadata) contents are erased.

Smart Contracts

There are currently four types of smart contracts (SC):

  1. Asset Creation: produces another asset(s) as part of its execution. For instance, the SC might choose to add another asset that documents the fulfillment of an order
  2. Asset Transfer: dictates that the asset that the SC is being fired against should be transferred to another user
  3. Consent: returns a Boolean value for BurstChain® to grant the requestor access to the asset
  4. Oracle/Service: (future, TBD)

Different modes for SC fire control:

  1. On-creation: will be performed on any new block being created
  2. On-demand: is invoked upon a user-request (against 1 or many blocks). Smart contacts can now leverage the power of a NoSQL database with tools like Map-Reduce and TQL in order to feed an on-demand SC execution
  3. On-event: currently this is a timer event which is fire a SC. An Escrow SC is an example of this; such that once two or more parties have fulfilled their agreed upon actions the asset released to the previously agreed upon party
  4. On-access: used for Consent Contracts, such that the SC can grant viewer access to an asset to someone other than the owner(s)