The github
method is meant to make working with DIDs very simple at the cost
of trusting Github.com for assisting in resolving DID Documents.
Many developers are familar with Github, and its 2 supported public key cryptosystems, GPG and SSH.
Linked Data Signatures are difficult to work with when operating a server or running a local node of some distributed system / blockchain is a requirement.
The objective of GitHub DID is to encourage contribution to the DID Spec and Linked Data Signatures, and allow rapid development of extensions to these without requiring the use of slow, or complicated more trustless infrastructure, such as blockchains or other distributed systems.
The namestring identifying this did method is github
A DID that uses this method MUST begin with the following prefix: did:github
.
Per the DID specification, this string MUST be in lowercase.
The remainder of a DID after the prefix, called the did unique suffix, MUST be a valid Github username
Example: did:github:gjgd
In order to create a Github DID, a Github user MUST:
- Create a repo named
ghdid
- Create a valid did document named
index.jsonld
- Push the document on the
master
branch
In order to resolve a did:github:USERNAME
, you MUST read the index.jsonld
document on the master
branch of the ghdid
repository of the user USERNAME
As a shortcut, a user MAY resolve the following URL:
https://raw.githubusercontent.com/USERNAME/ghdid/master/index.jsonld
In order to update a did document, a Github MUST update the index.jsonld
file
on the master
branch of their ghdid
repo
In order to delete a did document, a Github MUST delete the index.jsonld
file
on the master
branch of their ghdid
repo
- This method relies on trusting Github's for resolving DID Documents
- This method relies on trusting Github's for authenticating updates to a did
document, but a user MAY chose to use Linked Data Signatures via the
proof
field of their did document for a strong verifiable cryptographic proof