libscott 5e9b7f4ffe Remove condition details signature, rename subfulfillments to subconditions (#1589)
* implement output.condition.details marshalling and remove signature field

* rename outputs[].condition.details.subfulfillments to subconditions

* simpler threshold depth overlow handling

* pass public_key as kwarg

* change ccv1 condition uri in docs

* import base58 at top in test_transaction
2017-06-30 09:44:22 +02:00
..
2016-11-22 11:17:06 +01:00
2016-12-12 15:15:38 +01:00

Introduction

This directory contains the schemas for the different JSON documents BigchainDB uses.

The aim is to provide:

  • a strict definition/documentation of the data structures used in BigchainDB
  • a language independent tool to validate the structure of incoming/outcoming data (there are several ready to use implementations written in different languages)

Learn about JSON Schema

A good resource is Understanding JSON Schema. It provides a more accessible documentation for JSON schema than the specs.

If it's supposed to be JSON, why's everything in YAML D:?

YAML is great for its conciseness and friendliness towards human-editing in comparision to JSON.

Although YAML is a superset of JSON, at the end of the day, JSON Schema processors, like json-schema, take in a native object (e.g. Python dicts or JavaScript objects) as the schema used for validation. As long as we can serialize the YAML into what the JSON Schema processor expects (almost always as simple as loading the YAML like you would with a JSON file), it's the same as using JSON.

Specific advantages of using YAML: