Identity Mixer Support for both Fabric Gateway SDK for Java and Fabric Gateway Client API for Java
Description
Idemix is a cryptographic protocol suite, which provides strong authentication as well as privacy-preserving features such as anonymity, the ability to transact without revealing the identity of the transactor, and unlinkability, the ability of a single identity to send multiple transactions without revealing that the transactions were sent by the same identity. More details here - https://hyperledger-fabric.readthedocs.io/en/release-2.2/idemix.html
Current JavaSDK doesn't support to store Idemix credentials in Hyperledger Fabric Wallet. Objective of this mentorship program to support wallet to store idimix identities.
Here is Some fabric Java SDK changes required to complete this mentorship program.
- Idemix identity provider defined, similar to https://github.com/hyperledger/fabric-gateway-java/blob/main/src/main/java/org/hyperledger/fabric/gateway/impl/identity/X509IdentityProvider.java
- Idemix identity type defined, similar to: https://github.com/hyperledger/fabric-gateway-java/blob/main/src/main/java/org/hyperledger/fabric/gateway/impl/identity/X509IdentityImpl.java
Alternatively, if you are (or can) use Fabric v2.4, the new Fabric Gateway client API, while not currently including an Idemix implementation out-of-the-box, would allow you to plug in one without modifying the client API by just supplying:
- Idemix Identity representation (just MSD IP and credential bytes): https://hyperledger.github.io/fabric-gateway/main/api/java/org/hyperledger/fabric/client/identity/Identity.html
- Idemix signing function: https://hyperledger.github.io/fabric-gateway/main/api/java/org/hyperledger/fabric/client/identity/Signer.html
Additional Information
https://hyperledger-fabric.readthedocs.io/en/release-2.2/idemix.html
Learning Objectives
To explore the Open Source Contribution methodology
To Contribute Code to Hyperledger Fabric Project
To Know more about Hyperledger Fabric
To make more connection with Fabric Contributors
Expected Outcome
Ability to store Idemix Identity in a Wallet by using Fabric Gateway SDK for Java
Ability to store Idemix Identity in a Wallet by using Fabric Gateway Client API for Java
Ability to use the Stored Idemix Identity from a Wallet to fire transaction to the Hyperledger Fabric Network in both Fabric Gateway SDK for Java and Fabric Gateway Client API for Java
Write Unit Tests and Add Examples in fabric-samples Repository
Relation to Hyperledger
Hyperledger Fabric, Hyperledger Fabric Gateway SDK for Java, Hyperledger Fabric Gateway Client API for Javayperledger Fabric, Hyperledger Fabric Gateway SDK for Java, Hyperledger Fabric Gateway Client API for Java
Education Level
Any Graduate or student
Skills
Basic Understanding of Hyperledger Fabric
Programming Experience in Java
Future plans
Contribute this code to fabric JavaSDK
Preferred Hours and Length of Internship
Part time or full time.
Mentor(s) Names and Contact Info
Kamlesh Nagware, Kamlesh.nagware@gmail.com Snapper Future Tech knagware#6976