Skip to content

Private transactions on Besu+Tessera #219

Description

@mfolnovic

I'm running Besu, Tessera and Firefly.

When I run:

curl -X POST http://firefly-ethconnect.local/ \
-H 'Content-type: application/x-yaml' \
--data-binary @- << EOF
headers:
  type: SendTransaction
from: 0xf2B91C1B59dcb57846A5965d2102dCf5e73864A1
to: 0x1292640599689A9f0DD7eCfD9DFAa30333625C9c
gas: 1000000
privateFrom: 'wMshvELKv1dDK58dfs4GEv/eqfJ9GTL/7XQmE40KzSU='
privateFor: ['ccwFw3t7LYW7jZunO2XuROiDxORHE/Uau1M9ULIA6jI=']
params:
  - value: 123
    type: uint256
  - value: test
    type: string
methodName: create

I get an error in logs:

[2022-05-26T10:07:32.168Z]  INFO --> POST /
[2022-05-26T10:07:32.168Z]  INFO Received message 'Content-Type: application/x-yaml' Length: 356
[2022-05-26T10:07:32.168Z]  INFO Webhook accepted message. MsgID: a6774c5e-bf11-494c-5fe0-9581fa22e0d3 Type: SendTransaction
[2022-05-26T10:07:32.168Z]  INFO In-flight 1000003 added. nonce=0 addr=0xf2b91c1b59dcb57846a5965d2102dcf5e73864a1 before=0 (node=false)
[2022-05-26T10:07:32.700Z]  WARN TX: Failed to send: 500 Internal Server Error: {"jsonrpc":"2.0","id":754141,"error":{"code":-32604,"message":"Method not enabled"}} [0.53s]
[2022-05-26T10:07:32.700Z]  INFO In-flight 1000003 complete. nonce=0 addr=0xf2b91c1b59dcb57846a5965d2102dcf5e73864a1 nan=true sub=false before=1 after=0 highest=-1
[2022-05-26T10:07:32.700Z]  WARN Failed to process message MsgContext[SendTransaction/a6774c5e-bf11-494c-5fe0-9581fa22e0d3]: 500 Internal Server Error: {"jsonrpc":"2.0","id":754141,"error":{"code":-32604,"message":"Method not enabled"}}
[2022-05-26T10:07:32.700Z]  INFO Received reply message. requestId='a6774c5e-bf11-494c-5fe0-9581fa22e0d3' reqOffset='' type='Error': 500 Internal Server Error: {"jsonrpc":"2.0","id":754141,"error":{"code":-32604,"message":"Method not enabled"}}
[2022-05-26T10:07:32.700Z]  INFO a6774c5e-bf11-494c-5fe0-9581fa22e0d3: Inserted receipt into receipt store
[2022-05-26T10:07:32.700Z]  INFO <-- POST / [200]: Webhook RequestID=a6774c5e-bf11-494c-5fe0-9581fa22e0d3

From what I understand, private transactions should be done with eea_sendTransaction / eea_sendRawTransaction:

https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eea_sendrawtransaction
https://docs.ethsigner.consensys.net/en/latest/Using-EthSigner/Using-EthSigner/#eea_sendtransaction

But through reading code, it seems that if I only send privateFor/privateTo without privacyGroupId, Firefly will send eth_sendTransaction instead: https://github.com/hyperledger/firefly-ethconnect/blob/main/internal/eth/send.go#L238. There's missing jsonRPCMethod = "eea_sendTransaction".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions