GithubHelp home page GithubHelp logo

viaskyse / alastria-identity Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alastria/alastria-identity

0.0 1.0 0.0 3.24 MB

Alastria Identity solution

License: MIT License

JavaScript 83.47% Shell 1.14% HTML 8.95% Java 6.44%

alastria-identity's Introduction

ALASTRIA IDENTITY 0.1

Self-sovereign identity (SSI) implementation on Alastria network.

At this moment, this solution is being developed and tested for Quorum (Geth) on the Alastria T-Network. More information about its nodes and the network can be found in the alastria-node repository. In the future, the objetive is that this works with other Alastria networks such as Parity or Hyperledger Fabric.

A mobile Alastria Wallet on IONIC has been developed as a reference implementation to exploit and explore the self-sovereign identity concept. It has the logic for managing credentials to be stored and sended when required. Also, the app asks for user aceptance. Code is available on the alastria-wallet repository.

To interact with the identity contracts, there is a library to use from the wallet in the alastria-identity-lib repository.

Alastria Self-Sovereign Identity Model

To deepen the model, you have all the information in the wiki.

Contracts

Contracts must be deployed by Alastria. The version, the addresses and the ABIs of the deployed contracts are always updated at ContractInfo.md and at the contracts/abi folder. If you want to deploy them in your test-environment you can use dev-tools/deployContracts.

The GIST ID to open these smart contracts on Remix is 65747824fd972fcde14bac5101489032. Any contribution must follow the code quality rules for developers.

This SSI model has been implemented with three groups of contracts:

1. Identity Manager

Contract What it does
AlastriaIdentityManager.sol It generates access tokens, creates identities, deploys an AlastriaProxy for each identity and sends transactions through the proxy of the sender
AlastriaProxy.sol It is the Alastria ID itself. Only receives transactions from the IdentityManager and resends them to the target
AlastriaIdentityIssuer.sol It keeps a registry of the issuers identities
AlastriaIdentityServiceProvider.sol It keeps a registry of the service providers identities

2. Registry

Contract What it does
AlastriaCredentialRegistry.sol It manages all the credentials and keeps the registry and the status
AlastriaPresentationRegistry.sol It manages all the presentations and keeps the registry and the status
AlastriaPublicKeyRegistry.sol It manages all the public keys and keeps the registry

3. Libs

The previous contracts use some libraries which are:

Contract What it does
Eidas.sol It manages Eidas level of assurance for credentials
Owned.sol It assures that just the account which deployed a contract can update the version

Up & Running

Download and install:

$ git clone https://github.com/alastria/alastria-identity.git
$ cd alastria-identity
$ npm install

Developers tools

On the dev-tools directory you can find some interesting functionalities for developers and quick testing:

dev-tool What it does
createFakeIdentities Creates some fake Alastria identities to play with. You already have 5 mock-identities to play with!
deployContracts Deploys the contracts on the chosen network and, if it is Alastria T-Network, it updates their address, ABI and version on this repository
serviceprovider Service Provider site, capable of doing login and sending credentials

Need Help?

Our identity core team will be happy to listen to you at slack #identidaddigital

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.