https://github.com/alan-turing-institute/trustchain

Trustworthy decentralised PKI

https://github.com/alan-turing-institute/trustchain

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    5 of 12 committers (41.7%) from academic institutions
  • Institutional organization owner
    Organization alan-turing-institute has institutional domain (turing.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.4%) to scientific vocabulary

Keywords from Contributors

hut23
Last synced: 9 months ago · JSON representation

Repository

Trustworthy decentralised PKI

Basic Info
Statistics
  • Stars: 17
  • Watchers: 5
  • Forks: 5
  • Open Issues: 80
  • Releases: 8
Created almost 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License

README.md

Trustchain

This repo hosts the reference implementation of Trustchain.

Trustchain is a decentralised approach to public key infrastructure designed for application to digital identity. In particular, it builds on the W3C standards for decentralised identifiers (DID) and verifiable credentials (VC).

These two standards are closely linked: credential verification involves retrieval of verification material contained in the issuer's DID document. For example, the verification material may be a public key, in which case the verification method is to use the key to verify a digital signature contained in the VC.

Trustchain enables the creation of DIDs which are themselves verifiable. Via this mechanism, chains of trustworthy DIDs can be constructed in which downstream DIDs (dDIDs) contain an attestation from an entity represented by an upstream DID (uDID).

More information about the concept and state of development can be found on our wiki. The following links may be of particular interest: - Trustchain on Github pages - Trustchain preprint - Trustchain FAQ - Slides & videos - Technical notes

Installation guide

This brief guide is intended for experienced users/developers who want to get started quickly. See the full guide for more detailed, platform-specific instructions.

Step 1. Install ION

Trustchain delegates all DID method operations to a wrapped node on the ION network.

The ION install guide gives step-by-step instructions on how to setup and run your own ION node.

We encountered a few problems with the official installation guide. Hence we recommend to use our modified instructions for ION installation on Mac or ION installation on Linux.

Step 2. Install Rust

Follow the Rust install guide.

Step 3. Install Trustchain

Trustchain can be built and tested using cargo: git clone https://github.com/alan-turing-institute/trustchain.git cd trustchain cargo build Install the Trustchain CLI with: shell cargo install --path crates/trustchain-cli

Usage Guide

Once installed, the CLI is callable with: trustchain-cli --help DID subcommands: trustchain-cli did --help Verifiable credential subcommands: trustchain-cli vc --help

Testing

Run unit tests with: cargo test To include integration tests, which will fail unless a running ION node is reachable on localhost, use: cargo test -- --include-ignored

License & disclaimer

Trustchain is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-MIT and LICENSE-APACHE for details.

Acknowledgements

This work was supported, in whole or in part, by the Bill & Melinda Gates Foundation [INV-001309].

Owner

  • Name: The Alan Turing Institute
  • Login: alan-turing-institute
  • Kind: organization
  • Email: info@turing.ac.uk

The UK's national institute for data science and artificial intelligence.

GitHub Events

Total
  • Create event: 23
  • Release event: 6
  • Issues event: 19
  • Watch event: 5
  • Delete event: 14
  • Issue comment event: 24
  • Push event: 63
  • Pull request review event: 7
  • Pull request review comment event: 5
  • Pull request event: 33
Last Year
  • Create event: 23
  • Release event: 6
  • Issues event: 19
  • Watch event: 5
  • Delete event: 14
  • Issue comment event: 24
  • Push event: 63
  • Pull request review event: 7
  • Pull request review comment event: 5
  • Pull request event: 33

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 1,072
  • Total Committers: 12
  • Avg Commits per committer: 89.333
  • Development Distribution Score (DDS): 0.305
Past Year
  • Commits: 709
  • Committers: 12
  • Avg Commits per committer: 59.083
  • Development Distribution Score (DDS): 0.341
Top Committers
Name Email Commits
Sam Greenbury s****y@t****k 745
Tim Hobson t****n@t****k 177
Luke Hare l****e@t****k 56
Ed Chapman - Turing e****c@g****m 50
LydiaFrance l****e@t****k 13
pwochner p****r@t****k 13
Sam Greenbury 5****y 9
Ed Chapman 9****8 4
Tim Hobson t****8@g****m 2
pwochner 7****r 1
lukehare 4****e 1
Benjamin Goering 1****o 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 124
  • Total pull requests: 100
  • Average time to close issues: 4 months
  • Average time to close pull requests: 23 days
  • Total issue authors: 5
  • Total pull request authors: 7
  • Average comments per issue: 1.18
  • Average comments per pull request: 0.3
  • Merged pull requests: 87
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 22
  • Pull requests: 30
  • Average time to close issues: 20 days
  • Average time to close pull requests: 2 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 0.73
  • Average comments per pull request: 0.03
  • Merged pull requests: 26
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • sgreenbury (52)
  • thobson88 (46)
  • pwochner (13)
  • edchapman88 (5)
  • lukehare (5)
Pull Request Authors
  • sgreenbury (53)
  • thobson88 (50)
  • edchapman88 (4)
  • pwochner (4)
  • github-actions[bot] (2)
  • lukehare (2)
  • gobengo (1)
Top Labels
Issue Labels
good first issue (9) hack week (8) mini-showcase (5) CLI (5) enhancement (4) documentation (3) AI UK (1) bug (1)
Pull Request Labels

Packages

  • Total packages: 7
  • Total downloads:
    • cargo 5,384 total
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 7
  • Total maintainers: 1
crates.io: trustchain-ffi

FFI for Trustchain.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 681 Total
Rankings
Forks count: 19.5%
Dependent repos count: 23.4%
Stargazers count: 26.8%
Dependent packages count: 31.1%
Average: 39.2%
Downloads: 95.4%
Maintainers (1)
Last synced: 10 months ago
crates.io: trustchain-http

HTTP Trustchain library and application.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 762 Total
Rankings
Dependent repos count: 23.4%
Dependent packages count: 31.1%
Average: 50.0%
Downloads: 95.4%
Maintainers (1)
Last synced: 10 months ago
crates.io: trustchain-cli

CLI for Trustchain.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 638 Total
Rankings
Dependent repos count: 23.4%
Dependent packages count: 31.1%
Average: 50.0%
Downloads: 95.4%
Maintainers (1)
Last synced: 10 months ago
crates.io: trustchain-api

API for Trustchain.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 801 Total
Rankings
Dependent repos count: 23.4%
Dependent packages count: 31.1%
Average: 50.0%
Downloads: 95.4%
Maintainers (1)
Last synced: 10 months ago
crates.io: trustchain-ion

Trustchain implementation for ION DID method.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 863 Total
Rankings
Dependent repos count: 23.4%
Dependent packages count: 31.1%
Average: 50.0%
Downloads: 95.4%
Maintainers (1)
Last synced: 10 months ago
crates.io: trustchain-core

Core Trustchain functionality.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 900 Total
Rankings
Dependent repos count: 23.4%
Dependent packages count: 31.1%
Average: 50.0%
Downloads: 95.4%
Maintainers (1)
Last synced: 10 months ago
crates.io: trustchain

Trustchain decentralised PKI reference implementation.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 739 Total
Rankings
Dependent repos count: 23.4%
Dependent packages count: 31.1%
Average: 50.0%
Downloads: 95.4%
Maintainers (1)
Last synced: 10 months ago

Dependencies

.github/workflows/rust.yml actions
  • actions-rs/clippy-check v1 composite
  • actions/checkout v1 composite
  • actions/checkout v3 composite
  • dtolnay/rust-toolchain stable composite
trustchain-core/Cargo.toml cargo
  • mockall 0.11.2 development
  • async-trait 0.1
  • base64 0.13
  • canonical_json 0.4.0
  • chrono 0.4
  • clap ~4.0
  • futures 0.3.21
  • lazy_static 1.4.0
  • petgraph 0.6
  • serde 1.0
  • serde_jcs 0.1.0
  • serde_json 1.0
  • sha2 0.10
  • ssi 0.4
  • tempfile 3.3
  • thiserror 1.0
  • tokio 1.20.1
  • toml 0.5
trustchain-ion/Cargo.toml cargo
  • glob 0.3 development
  • mockall 0.11.2 development
  • async-trait 0.1
  • bitcoin 0.29.2
  • bitcoincore-rpc 0.16.0
  • canonical_json 0.4.0
  • clap ~4.0
  • did-ion 0.1.0
  • flate2 1.0.24
  • futures 0.3.21
  • hex 0.4.3
  • ipfs-api-backend-hyper 0.6
  • ipfs-hasher 0.13.0
  • lazy_static 1.4.0
  • mongodb 2.3.1
  • reqwest 0.11
  • serde 1.0
  • serde_jcs 0.1.0
  • serde_json 1.0
  • sha256 1.1.1
  • ssi 0.4
  • thiserror 1.0
  • tokio 1.20.1
  • toml 0.7.2
Cargo.toml cargo
trustchain-api/Cargo.toml cargo
  • tokio 1.20.1 development
  • async-trait 0.1
  • did-ion 0.1.0
  • futures 0.3.28
  • serde_json 1.0
  • ssi 0.4
trustchain-cli/Cargo.toml cargo
trustchain-ffi/Cargo.toml cargo
trustchain-http/Cargo.toml cargo
  • axum-test-helper 0.2.0 development
  • async-trait 0.1
  • axum 0.6
  • base64 0.21.0
  • chrono ^0.4
  • clap ^4
  • did-ion 0.1.0
  • execute 0.2.11
  • gloo-console 0.2.3
  • hyper 0.14.26
  • image 0.23.14
  • lazy_static 1.4.0
  • log 0.4
  • qrcode 0.12.0
  • reqwest 0.11.16
  • serde 1.0
  • serde_jcs 0.1.0
  • serde_json 1.0
  • ssi 0.4
  • thiserror 1.0
  • tokio 1.20.1
  • toml 0.7.2
  • tower 0.4
  • tower-http 0.4.0
  • tracing 0.1
  • tracing-subscriber 0.3
  • uuid 1.2.2