-
Notifications
You must be signed in to change notification settings - Fork 403
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
Add Ethereum Support for HD Keys #652
Conversation
68b21d0
to
8593915
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi,
Thanks for the PR, the changes look good but I do have a request for the changes to the final integration test. Ideally we should be capturing the change in a test, and the ideal one here would be to do similar to what is done in the Fabric CI suite where multiple tests are run with different configuration files. In this case it is possible to run a test using the original configuration file, and then another with the config file that specifies the fromAddressSeed
The new configuration option should also be added to the docs
So one config file per feature in the integration? The integration test prior to the latest reboot had both explicit gas and estimated gas tests, I can set that up in separate tests, so I see 3 - estimated gas, explicit gas, and multi client HD wallets. |
@shemnon Yeah, something like that. The Fabric tests use the same network for every phase (start network, perform different stuffs different ways, shutdown network). I don't know whether this is feasible for the Ethereum/Besu tests. Should be, even if you deploy the same contract multiple times on different addresses. |
account to be deterministically derived from a seed value using BIP44 style key derivation. This is only supported for the fromAddress value. This enables besu support of multiple caliper clients instead of single client operations. The genesis file in the integration tests for besu have had the first 10 keys pre-seeded with test ether. The integration test for besu has also been updated to use a from address seed. The integration test is now a multi stage test with single client in stage 2 and multi client in stage 3. Signed-off-by: Danno Ferrin <[email protected]>
8593915
to
31d7bab
Compare
Integration tests updated (right now it's single client then dual client, we get the coverage we need). Docs are updated in #666 and samples are updated in hyperledger-caliper/caliper-benchmarks#33 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding the phased CI tests 👍
This PR adds support for each Caliper client to have its own Ethereum
account to be deterministically derived from a seed value using BIP44 style
key derivation. This is only supported for the
fromAddress
value.This enables besu support of multiple caliper clients instead of single
client operations.
To use this instead of specifying a
fromAddresss
and an optional privatekey instead a
fromAddressSeed
value is specified, which is a 128 bit hexencoded value used as the seed for key derivation. Each client uses its
client index as the account field in the BIP-44 path. In the future where multiple
accounts are needed per caliper client the address_index field will be
incremented or mapped to the account value.
The genesis file in the samples and integration tests for besu have had
the first 10 keys pre-seeded with test ether. The sample and
integration test for besu has also been updated to use a from address
seed.
Signed-off-by: Danno Ferrin [email protected]
Checklist
Issue/User story
Steps to Reproduce
Existing issues
Design of the fix
Validation of the fix
Automated Tests
What documentation has been provided for this pull request