Dash Platform Protocol Specification
The DPP spec defines a protocol for data objects which can be stored outside the blockchain layer. These objects can be verified using the blockchain via the inclusion of a cryptographic hash of the data objects into a DIP2 special transaction (which are indeed part of the Dash blockchain).
We define data objects which themselves are JSON and validated using the JSONSchema specification, using pre-defined JSON Schemas and meta-schemas which are currently available at: https://github.com/dashevo/js-dpp/tree/master/schema.
In addition to adherence to pre-defined JSON Schemata, we also define rules for hashing and serialization of these objects.
The included meta-schemas allow for creation of conforming schemas (called DPP-schemas) which are used to define fields in a Dash Platform application.
Objects are hashed using double-sha256. All objects to be hashed must use CBOR encoding as input to the hash function.
In pseudocode this example looks like:
const obj = {'dppid': 1234};
const cbor = CBORify(obj);
const theHash = hash(cbor);
Feel free to dive in! Open an issue or submit PRs.
MIT © Dash Core Group, Inc.