Skip to content
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

[23.4] Remove GoQuorum privacy #5303

Merged
merged 30 commits into from
Apr 13, 2023
Merged

[23.4] Remove GoQuorum privacy #5303

merged 30 commits into from
Apr 13, 2023

Conversation

macfarla
Copy link
Contributor

@macfarla macfarla commented Apr 4, 2023

Remove GoQuorum compatible privacy

Fixes #4886

  • next release is 23.4
  • acceptanceTestsNonMainnet passed in CI
  • Besu with other types of privacy still works as expected

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
@github-actions
Copy link

github-actions bot commented Apr 4, 2023

  • I thought about documentation and added the doc-change-required label to this PR if updates are required.
  • I have considered running ./gradlew acceptanceTestNonMainnet locally if my PR affects non-mainnet modules.
  • I thought about the changelog and included a changelog update if required.

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
@macfarla
Copy link
Contributor Author

with this change - if you send a GoQuorum private transaction via EthSigner, it is rejected with "method not enabled" because it sends a goquorum_storeRaw to Besu which Besu rejects
-> suggested change to EthSigner Consensys/ethsigner#500 - to actively reject this type of transaction

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Copy link
Contributor

@pinges pinges left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've done a "find all" within Besu for goquorum and I found a few error codes in JsonRpcError.java that are related to goquorum privacy:
GOQUORUM_NO_PRIVATE_FOR
GOQUORUM_ONLY_STANDARD_MODE_SUPPORTED
GOQUORUM_LOOKUP_ID_NOT_AVAILABLE
GOQUORUM_V_VALUE

In RpcMethod.java I found
GOQUORUM_ETH_GET_QUORUM_PAYLOAD
GOQUORUM_STORE_RAW

In BlockHeader.java there is a method that returns the private logs bloom:
getPrivateLogsBloom()

We might be able to get rid of the v parameter for Transaction (org/hyperledger/besu/ethereum/core/Transaction.java)

There is a method on BlockProcessor line 149 that we should be able to get rid of

KeyValueSegmentIdentifier.java contains
GOQUORUM_PRIVATE_WORLD_STATE
GOQUORUM_PRIVATE_STORAGE

TransactionDecoderTest.java lines 41 and 88

That's all I can find right now :-)

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
@macfarla
Copy link
Contributor Author

I've done a "find all" within Besu for goquorum and I found a few error codes in JsonRpcError.java that are related to goquorum privacy: GOQUORUM_NO_PRIVATE_FOR GOQUORUM_ONLY_STANDARD_MODE_SUPPORTED GOQUORUM_LOOKUP_ID_NOT_AVAILABLE GOQUORUM_V_VALUE

In RpcMethod.java I found GOQUORUM_ETH_GET_QUORUM_PAYLOAD GOQUORUM_STORE_RAW

In BlockHeader.java there is a method that returns the private logs bloom: getPrivateLogsBloom()

We might be able to get rid of the v parameter for Transaction (org/hyperledger/besu/ethereum/core/Transaction.java)

There is a method on BlockProcessor line 149 that we should be able to get rid of

KeyValueSegmentIdentifier.java contains GOQUORUM_PRIVATE_WORLD_STATE GOQUORUM_PRIVATE_STORAGE

TransactionDecoderTest.java lines 41 and 88

That's all I can find right now :-)

Thanks @pinges removed all those things!

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
@macfarla
Copy link
Contributor Author

with this change - if you send a GoQuorum private transaction via EthSigner, it is rejected with "method not enabled" because it sends a goquorum_storeRaw to Besu which Besu rejects -> suggested change to EthSigner ConsenSys/ethsigner#500 - to actively reject this type of transaction

Leaving EthSigner as is. User will get "method not enabled" if they try to send a GoQuorum private tx via EthSigner to Besu.

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Copy link
Contributor

@shemnon shemnon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like how this removes GoQuorumOptions

@lucassaldanha
Copy link
Member

End of an era!

@non-fungible-nelson
Copy link
Contributor

Reminder to merge for tomorrow @macfarla

@macfarla macfarla enabled auto-merge (squash) April 13, 2023 20:26
@macfarla macfarla merged commit 067a263 into hyperledger:main Apr 13, 2023
8 checks passed
@macfarla macfarla deleted the gq-priv-rm branch April 18, 2023 22:29
elenduuche pushed a commit to elenduuche/besu that referenced this pull request Aug 16, 2023
* removed separate decoding logic

* run non-mainnet ATs to make sure

* remove goQuorum flag from everywhere

* remove GOQUORUM api group

* remove GoQuorum enclave, privacy params, RPCs and other related config

* removed Goquorum related error codes, rpcMethod codes, privateBloom

* removed v from transaction

* removed private GoQuorum storage provider

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
eum602 pushed a commit to lacchain/besu that referenced this pull request Nov 3, 2023
* removed separate decoding logic

* run non-mainnet ATs to make sure

* remove goQuorum flag from everywhere

* remove GOQUORUM api group

* remove GoQuorum enclave, privacy params, RPCs and other related config

* removed Goquorum related error codes, rpcMethod codes, privateBloom

* removed v from transaction

* removed private GoQuorum storage provider

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove GoQuorum-compatible privacy feature (23.4)
5 participants