-
Notifications
You must be signed in to change notification settings - Fork 8.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor idemix implementation #2955
Conversation
LGTM, perhaps @adecaro can also take a look. Do we have any concern of non-determinism here, or are we OK since:
can you elaborate on that? |
cfb93bf
to
f593a20
Compare
good points. So:
|
Looks good, let's wait for @adecaro to make a pass too. |
This PR removes the internal implementation of the idemix protocol and uses an external dependency that contains the same implementation. Signed-off-by: Alessandro Sorniotti <[email protected]>
f593a20
to
8c1c8a3
Compare
LGTM. This PR will make Fabric lighter and will give more opportunities to enhance the idemix stack. |
@ale-linux Would you be interested in adding a client-side Idemix signing implementation to the fabric-gateway client API? All that needs to be provided at the client end is a mechanism to create a signing function of the form: Existing client signing implementations and the API provided to create them can be found at https://github.com/hyperledger/fabric-gateway/tree/main/pkg/identity:
If a specific hash algorithm is required for an Idemix signer, that can be added here. We would also want a scenario test to ensure an Idemix signer worked at runtime with a real Fabric network, but this should require very little code to extend the existing Cucumber scenario tests, similar to how the HSM signer is tested. |
@bestbeforetoday that sounds indeed like an interesting feature to add. It should be simple enough - see this test for example https://github.com/IBM/idemix/blob/main/bccsp/bccsp_test.go#L98 lines 98 through 189 basically show all the calls needed to fully set up an idemix stack and sign with it. Here instead https://github.com/IBM/idemix/blob/main/bccsp/bccsp_test.go#L853 we show how to load an idemix configuration from a client local msp store. |
This PR removes the internal implementation of the idemix protocol and uses an external dependency that contains the same implementation. The backport to release-2.2 is required since the new idemix dependencies support Go 1.17 while the old does not. Signed-off-by: Alessandro Sorniotti <[email protected]> Signed-off-by" David Enyeart <[email protected]>
This PR removes the internal implementation of the idemix protocol and uses
an external dependency that contains the same implementation.
Signed-off-by: Alessandro Sorniotti [email protected]
Type of change
Description
The idemix is factored out of the repo and now imported as a dependency.