Closed ccoldwell closed 6 years ago
Hi Everyone ... happy to answers any questions that arise from this opportunity.
Is there a strict 2-page limit on proposals?
Thanks!
That is an order of magnitude suggestion. The idea being not 10 pages .. if its a bit longer that 2 that is fine if the extra space is needed.
Great, thanks for the clarification!
Done
On Jan 30, 2018, at 15:16, Ian Costanzo notifications@github.com<mailto:notifications@github.com> wrote:
Great, thanks for the clarification!
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/bcgov/TheOrgBook/issues/164#issuecomment-361767724, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AD-6DFi06msfL2uU5CaKZkR77vSpO8E0ks5tP6LbgaJpZM4RsHQT.
Thanks to everyone for their interesting and bids. We are pleased to assign this opportunity to ianco. If you bid and would like a debrief .. please contact me.
This opportunity has been assigned
This work is now complete.
Value: $50,000.00Closes: Wednesday, January 31, 2018Location: Victoria In-person work NOT required
Opportunity Description
This is part of an effort to understand the applicability of emerging technologies to solve some challenge problems in public sector. We are working in the open source community, in particular, the Hyperledger Indy community to explore challenges in the service to business domain. We want to find ways to improve the experience of BC businesses in their interactions with government. This work falls into a new area that is known in the industry as "self-soveriegn identity" or decentralized identity.
In the self-sovereign identity (SSI) world, “wallet” is the go to term for the digital equivalent to the physical place you keep your data. The type of data held in the wallet depends somewhat on the role of the identity in a self-sovereign ecosystem - a claims issuer, holder (aka prover) or verifier (aka inspector). Any particular identity might take on multiple roles and so have any and all types of SSI data. We expect that for most "typical" use cases for wallets, the major implementations will be provided by 3rd parties in the market. For example, there are software vendors working on mobile wallets targeting consumers, whose primary role is as a holder of claims about themselves (they are the subject of the claims). As well, we understand software vendors are working on "Enterprise Agents" - applications that have wallets for the purpose of primarily operating as either or (more commonly, we think) both claims issuers and claim verifiers.
TheOrgBook is somewhat different from both of those "typical" models. It is primarily a claims holder, but quite a different one from a consumer-type claims holder. It will only be holding public claims about organizations. Notably, it will hold large scale data volumes, and the claims that it holds are about many subjects (organizational entities) - not about itself. As such the requirements of its wallet are quite different from those of a typical consumer wallet.
A claims holder wallet (consumer or TheOrgBook) would be expected to contain the following:
Note that the private keys may or may not (by implementation) go in the wallet - they may deliberately be kept separate to prevent the theft of a wallet giving the thief access to the use and all the information in the wallet.
While we expect the TheOrgBook wallet to hold those same pieces of data to be used for the operations as a consumer wallet, there are several requirements that are quite different:
Large Scale Persistence
TheOrgBook currently uses the default Hyperledger Indy wallet implementation based on an encrypted version of SQL-Lite (SQLCipher). To both handle the volume of claims that TheOrgBook will need to support and to provide more robust database administration handling, we want to update the wallet implementation to use (likely) PostgreSQL for persistence. TheOrgBook runs on the BC Government's private Red Hat OpenShift Platform as a Service implementation, and for relational databases, PostgreSQL is the preferred choice. Note that if the developers feel that a noSQL-based wallet solution would be better, we would like go to MongoDB (although Redis is available out of the box with OpenShift).
Getting Claims for Proof Requests
The current Hyperledger Indy wallet interface has a call that given a Proof Request (an array of claim names, each from a possibly different credential associated with one or more schema and/or issuers) returns all of the credentials in the wallet that could satisfy each claim in the Proof Request. Since, as noted above, the wallet of TheOrgBook holds the same claim for (literally) millions of subjects, Proof Requests will return from the default wallet API call millions of credentials - likely causing a significant performance issue. To prevent a performance impact we have proposed that a Proof Request can include an optional filter condition that allows the call to the wallet to filter based on claim values the credentials of interest for a given Proof Request. In case of TheOrgBook, the filter condition will usually simply be the unique identifier of the Organization of interest - the subject of the claim. Our proposal for an update to the Hyperledger Indy Proof Request format to support this functionality can be found in the Hyperledger Indy JIRA system (IS-486).
While we think that change could be used to resolve this issue, we are open to other proposals. In addition, we think (but again, could be wrong) that because of the data volumes in TheOrgBook, the wallet implementation will need to do this credential filtering at as low a level as possible - ideally at the database level - to prevent the manipulation of large volumes of data for each Proof Request. There may be challenges with this depending on how the existing wallet implementation stores the data.
Opportunity
This is an opportunity to work with the Verifiable Organizations Network team to deliver enhancements to both a Hyperledger Project and BC Government projects.
The fixed-price reward is for a potential total of $CDN 50,000* for satisfaction of the Acceptance Criteria below, per this payment schedule:
* The full amount is dependent on an evaluation of outputs at the end of Phase 1, during which Verifiable Organizations Network team will determine whether or not work will continue into phases 2 and 3.
Acceptance Criteria
How to Apply
Go to the Opportunity Page, click the Apply button above and submit your proposal by 16:00 PST on Wednesday, January 31, 2018.
We plan to assign this opportunity by Friday, February 2, 2018 with work to start on Monday, February 5, 2018.
Proposal Evaluation Criteria