Sidetree Core GO

_images/TrustBloc-Final.png

Introduction of the project TODO

Have Questions?

We try to maintain a comprehensive set of documentation for various audiences. However, we realize that often there are questions that remain unanswered. For any technical questions relating to TrustBloc not answered here, please use

Gitter (an alternative to Slack) on the #trustbloc-questions channel.

Note

Please, when asking about problems you are facing tell us about the environment in which you are experiencing those problems including the OS, which version of Docker you are using, etc.

Overview

This library implements core components required to implement Sidetree Protocol:

Batch Writer

Batch writer batches multiple document operations(create, update, delete, recover) in a single batch file. Batch files are stored in a distributed content-addressable storage (DCAS or CAS). A reference to the operation batch is then anchored on the blockchain as Sidetree transaction.

Operation Processor

All document ‘processing’ is deferred to resolution time. Resolution of the given ID to its document is done by iterating over all operations in blockchain-time order (starts with ‘create’). Each operation is checked for validity before we apply JSON patch to document.

Document Handler

Document handler performs document operation processing and document resolution. It supports both DID documents and generic documents.

Operation Processing

Upon successful validation against configured validator an operation will be added to the batch.

Resolution

Document resolution is based on ID or initial state values.

– DID : The latest document will be returned if found.

– Long Form DID can be requested in the following format:
did:METHOD:<unique-portion>:Base64url(JCS({suffix-data, delta}))