Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tcfw/didem
Decentralised IDs, Claims and Messages
https://github.com/tcfw/didem
blockchain consensus decentralized did distributed-systems go golang ipfs p2p storage w3c-did w3c-vc
Last synced: 2 months ago
JSON representation
Decentralised IDs, Claims and Messages
- Host: GitHub
- URL: https://github.com/tcfw/didem
- Owner: tcfw
- License: mit
- Created: 2022-05-23T05:32:19.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-04T08:02:23.000Z (over 2 years ago)
- Last Synced: 2024-11-01T15:51:52.549Z (2 months ago)
- Topics: blockchain, consensus, decentralized, did, distributed-systems, go, golang, ipfs, p2p, storage, w3c-did, w3c-vc
- Language: Go
- Homepage:
- Size: 489 KB
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
DIDEm
A simple distributed storage register and p2p messaging service for Decentralised Identities (DID) and Verifiable Claims (VC).
# State
Very much NOT production ready.
# Components
### Storage
The underlying storage mechanism for the blockchain data is [IPFS (Interplanetary File System)](https://ipfs.io/). IPFS has been chosen for its content-based addressing which is perfect for storing blockchain components.
### Node Communication
[libp2p](https://libp2p.io/) provides the multiplexing and p2p components for all internode communication. For the blockchain, gossipsub messaging relays the consensus and block information between each peer.
### Blockchain
The blockchain is loosely based on the TenderMint consensus algorithm to provide a simple and efficient agreement on top of permissioned nodes. The blockchain provides a simple storage agreement protocol for recording DID and VC's within IPFS as well as maintaining the active or revoked state of the records.
Each consensus round only has 1 proposer. The round proposers are selected via an external randomness beacon provided by [drand](https://drand.love/).
Blocks contain transactions of an action to add, update or remove DIDs, VCs or nodes, all of which require a cryptographic signature, checked by a validator.
### DID/VC & Messaging
The DID and VC data structures are directly taken from the w3c specifications for DIDComm, DID and VC's.
## Running
You may use DIDEm by running directly using `go` or run in a container runtime from the image `ghcr.io/tcfw/didem:main` (amd64 or arm64)
## Configuration
TBC
## Contributing
TBC
## License
Please see [LICENSE](https://github.com/tcfw/didem/blob/main/LICENSE) file.