roots-id / rootswallet Goto Github PK
View Code? Open in Web Editor NEWAn open source identity/credential wallet built for grass roots efforts in multiple countries.
Home Page: https://www.rootswallet.com
License: Apache License 2.0
An open source identity/credential wallet built for grass roots efforts in multiple countries.
Home Page: https://www.rootswallet.com
License: Apache License 2.0
If we root every interaction to the relationships the interface becomes more intuitive. for now, one person one relationship one chat. that will be acceptable for alpha prototype.
We need to decide which license best apply to our project: MIT, Apache, etc
Key generations were embedded as part of did:peer and Prism libraries. We need to move out from the native modules so they can be available by javascript, enabling the integration with the storage module.
feedback from several people about the demos.
I open this issue to create a list of coding best practices that we can discuss and publish afterwards:
Present QR code for DID JSON and Credential JSON.
This is mostly an exercise for displaying a QR code. we'll work out the actual details of what data to present in a future ticket.
The technology stack and specifications for Decentralized Identity are not mature, I expect a lot of rework on the near future. To avoid doing much rework on the QC procedures I think the best is to do a QA strategy focused on the lower levels (unit test)
All expo based testing is done. Now we need to get the app working via an APK file installation (like Play Store does).
For instance if a credential is unverified and your phone does not have connectivity to check revocation status or is still processing the verification steps.
The user will receive actionable wallet messages
and receive system messages indicating status of actions
and be able to get detail messages to understand what is technically occurring during each action as well as current state.
we will prototype a separation of these messages in a chat view and then discuss.
I tried a quick hermes/drawer upgrade to rootschat and it digressed quickly. i'll start with a clean project to see what progress will take.
We will need several graphics, layout, and color bits to make a consistent looking app. These elements include:
#Components Needed
For guidance, refer to this issue:
This issue is created to list reasons, pros and cons, for selecting React Native as the initial framework:
Should we use something similar as Discord app?
From https://youtu.be/d-5MmLLd3xY
Register
Route
Authcrypt
Plaintext
Oblige
Key_admin
Se_admin
Rule_admin
finish adding hooks in app for all of these credential operations
Prompt user for wallet password and store the wallet by password
If we follow the Aries steps, the Aries Interop Profile (AIP) provides a clear path, for an MVP I believe these are the most basic requirements:
Stablish envelop protocol
This is the first step to establish a connection here QR, URL or JSON Invitation files are used (un-encrypted):
https://github.com/hyperledger/aries-rfcs/tree/bed4989dd6517f7a9de3696800e57e4c6ef49231/features/0434-outofband
Here a pairwise relation is created, DIDs are interchanged (DIDComm):
https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0023-did-exchange
Content protocol
Protocol for issuance
https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0453-issue-credential-v2
Protocol for credential verification
https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0454-present-proof-v2
Other notes
Error reporting related to #13
https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0035-report-problem
If we also implement the features below we can use https://indicio-tech.github.io/mediator/ as mediator agent so the mobile app can receive messages from other agents (need to do more research on this one):
https://github.com/hyperledger/aries-rfcs/blob/main/features/0211-route-coordination/README.md
https://github.com/hyperledger/aries-rfcs/blob/main/features/0160-connection-protocol/README.md
Create a transport layer and provide usage example to send didcomm messages between two devices in same network
make wal-lib/prism operations clickable
unite the work!
This issue is to research and decide if we should implement DIDComm V1 or V2 (or both) and select a library.
These operations are left to do, since we've successfully created/published DIDs and credentials in this demo
roots-id/rootschat@d5a7be5
The initial template was created as follows:
If first time with React Native, install expo cli:
yarn global add expo-cli
Generate blank TypeScrip template:
expo init rootswallet
Generate Android and iOS code (use com.rootswallet as Android Package and iOS Bundle Identifier):
cd rootswallet
yarn eject
Then I created PrismModule.kt, RootsWallet.java loaded in MainApplication.java. Add kotlin and prism code in build.gradle.
How to build and run:
If first time with React Native, install expo cli:
yarn global add expo-cli
Install dependencies:
yarn install
In my MAC I had to:
export ANDROID_SDK_ROOT=/Users/rodolfo/Library/Android/sdk
Export Prism SDK password:
export PRISM_SDK_PASSWORD=ghp_2CTxxxxxxxxxxx
Install Android Studio, and open Simulator from ADV Manager
Build and run:
yarn android
See app launching in simulator, click to generate DID, and see generated DID in log
Instead it saves the passphrase. Need to be able to work with keys in secure store.
Note: this is mostly being done as a bug, to see how bug issues look in our system.
Update slides/website/repo w/ v2 branding
Prototype saving passphrase and did from our test page using expo secure store.
Test that a pull request closes this ticket.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.