digitalbazaar/bedrock-ledger-http

Name: bedrock-ledger-http

Owner: Digital Bazaar, Inc.

Description: A Bedrock module to control the creation and management of decentralized ledgers via an HTTP API.

Created: 2016-12-03 19:16:03.0

Updated: 2016-12-03 19:52:09.0

Pushed: 2017-05-11 20:03:43.0

Homepage:

Size: 87

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Build Status

Bedrock Ledger HTTP API

A bedrock module to control the creation and management of decentralized ledgers via an HTTP API.

Requirements
Quick Examples
install bedrock-ledger-http
s
actor = 'admin';

ledgerEndpoint = 'https://example.org/ledgers/';

ledgerConfigEvent = {
context': 'https://w3id.org/flex/v1',
: 'did:c02915fc-672d-4568-8e6e-b12a0b35cbb3/events/1',
pe: 'LedgerConfigurationEvent',
dgerConfig: {
id: 'did:c02915fc-672d-4568-8e6e-b12a0b35cbb3',
type: 'LedgerConfiguration',
name: 'test-ledger',
description: 'A test ledger',
storageMechanism: 'SequentialList',
consensusAlgorithm: {
  type: 'ProofOfSignature2016',
  approvedSigner: [ 'https://example.org/keys/authorized-1' ],
  minimumSignaturesRequired: 1
},

eviousEvent: {
hash: 'urn:sha256:0000000000000000000000000000000000000000000000000000000000000000';



s.sign(ledgerConfigurationEvent, {
algorithm: 'LinkedDataSignature2015',
privateKeyPem: myPrivateKey,
creator: 'https://example.org/keys/authorized-1'
 function(err, signedConfigEvent) {
if(err) {
  return console.log('Signature failed:', err);
}
request.post({
  url: ledgerEndpoint,
  body: signedConfigEvent,
  json: true
}, function(err, res, body) {
  if(err) {
    console.log('Ledger creation failed!');
  } else if(res.statusCode === 201) {
    console.log('Ledger created!')
  }
});
;
Configuration

For documentation on configuration, see config.js.

API
POST /ledgers

Create a new ledger

Schema: services.ledger.postConfig

POST /ledgers/{ledger}

Append a new event to a ledger.

Schema: services.ledger.postLedgerEvent

GET /ledgers

Get metadata for all ledgers known to the system.

GET /ledgers/{ledger}

Get metadata for specific ledger known to the system.

GET /ledgers/{ledger}/state

Get state machine information for a particular object.

GET /ledgers/{ledger}/{ledgerId}/events/{eventNumber}

Get metadata for specific ledger event.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.