Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  •  1 Integrate TrustID with Fabric utility emissions channel (dropped)
  •  2 Use Metamask external HSM to register users and sign Fabric transactions through TrustId.
  •  3
  •  4

Milestones

Eval 1:

  •  a Integrate TrustID with Fabric
  •  b Get Metamask Demonstrate how to sign transactions through TrustIdwith offline private key stored in clients browser session

Eval 2:

  •  c Integrate HSM into utility emissions channel for register/enrol users and invoke transactions
  •  d Setup softHSM in external container and setup proxy to connect with fabric client app

Eval 3:

  •  e.
  •  f.

Eval 4:

  •  g.
  •  h.

...

WeekTask/PlanStatus
May 24 - May 28Set up project plan.  
May 31 - June 11Review TrustID from our previous call.  Develop plan for integrating Fabric, TrustID, and Metamask.  Integrate TrustID with Fabric.
June 14 - June 25

Finish integration of TrustID with Fabric.  Integrate Metamask into TrustID to sign Fabric transactions.

This Task has been revised as these weeks I have simply been understanding how to sign transactions on Fabric with private key and csr generated by the client offline (not the Fabrik SDK).   The key only needs to be stored on the client wallet ( metamask), as singing can be done off the server.

We could also share the pKey generated by the Fabric (TrustID app) with the client to upload to their wallet. However, the key generator must be compatible with the client Wallet. In the case of Ethreum (e.g. Metamask) we need to generate secp256k1 key, however fabric certificate signer does not support this EC.

Trust ID is a good solution as it can register a public key (DID) generated from custom private key that is authorized by Fabric CA to commit endorsements to the chaincode. Note, Trust ID currently only supports infra EC P-521, but this should be easy to update.

Based on discussion with the mentors, the first task was reframed as completing the offline signing of transactions on Fabric using a private key (secp256k1 for ethereum compatibility) generated by the client and store on their wallet (not on the server). The next task Next we want to use the private key to establish a DID (e.g. using TrustID) that can be used to access other networks

June 28 - July 2

Get ready for first Evaluation.

Return to TrustID integration to register secp256k1 DID to execute transactions on Fabric. Understand why REST-API for connecting to utilityemissionschannel is returning error when sending endorsement proposal to peers. This is happening with both self-signed (offlie private key) and Fabric generated certificates.

Error: No valid responses from any peers. Errors:\n    peer=peer1.auditor1.carbonAccounting.com:7051, status=500, message=error in simulation: transaction returned with failur


July 5 - July 9

Integrate Hardware Security Module (HSM) into utility emission channel client app using softHSM. Include softHSM libraries when building API docker image. Initialize softHSm token to be used when enrolling new users.

Update register and enrol typescript to save HSMX.509 identity to local filesystem.

Complete


July 12 - July 23

Prepare schematic for HSM integration with fabric node. Research HSM cloud integration. Understand how to create a proxy pod that connects the client app/service to the HSM device. I.e., the HSM device (e.g. softHSM) is not part of the same container image as the hyper-ledger Fabric node. E.g., see https://developer.ibm.com/articles/leverage-ibm-cloud-hsm-in-your-ibp-network/


Complete
July 26 - August 6Implement proxy to link external HSM device (e.g., softHSM) to fabric client app. Understand how to configure HSMoptions to setup and add external HSMprovider to a wallet with HSMX509 types.July 5 - July 9

In

July 12 - July 23July 26 - August 6
August 9 - August 13

August 16 - August 27


Eval 2



August 30 - Sept 3

Sept 6 - Sept 17

Sept 20 - 24



Sept 27 - Oct 1


Eval 3



Oct 4 - Oct 15



Oct 18 - Oct 29



Nov 1 - Nov 5

Nov 8 - Nov 12

Eval 4

Final evaluation and presentation of project 


...