Sidetree
This repository contains both the blockchain-agnostic Sidetree specification and a Node.js based reference implementation.
Specification
See the latest spec for the full Sidetree specification.
See the API spec for the full API specification to interact with a Sidetree node.
Specification Editing/Contributions:
- Clone the repo.
- Create a topic branch for your spec contributions.
- run
npm install
- run
npm run spec:edit
- If you see errors like
UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open './www/spec/index.html'
... create the missing directories and files and try again (they will be overwritten). - Type
npx serve .
in the root directory and openhttp://localhost:5000/www/spec
. - Modify files in the
spec/markdown/
directory to make changes, refresh to see changes. - Do not commit build assets.
- Try and make blocks of text small so that changes can be suggested easily on specific lines.
- When you are happy with your changes, commit to your topic branch and open a Pull Request on GitHub and reviewers will be alerted to review for a potential merge.
- Make sure to tag people continuously to ensure your PR is reviewed in a timely manner.
- PRs that sit open without comments / reviews, will be closed at the editors discretion.
Reference Implementation
Code Coverage
See the test vectors for input fixtures that are expected by all sidetree implementations.
See the reference implementation document for description of the reference implementation.
See the styleguide for details regarding this specification and implementation conformance to industry conventions for JSON and HTTP.
Release Process
Refer to here for details on the release process of the artifacts in this repository.