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

Stage 1: Collect - inconsistencies #5

Open
tkstanczak opened this issue Jan 27, 2021 · 11 comments
Open

Stage 1: Collect - inconsistencies #5

tkstanczak opened this issue Jan 27, 2021 · 11 comments

Comments

@tkstanczak
Copy link
Contributor

Please provide a list of inconsistencies between JSON RPC providers that are known to you.

@tkstanczak
Copy link
Contributor Author

error messages and error codes

@tkstanczak
Copy link
Contributor Author

eth_estimateGas, eth_call and similar behaviour when the 'from' field is left empty
eth_estimateGas, eth_call and similar behaviour when the 'gas' field is left empty

@tkstanczak
Copy link
Contributor Author

timeouts

@tkstanczak
Copy link
Contributor Author

Differences in handling revert messages when executing eth_call

@MariusVanDerWijden
Copy link

Default values for parameters: The eth_sendTransaction spec here: https://eth.wiki/json-rpc/API#eth_signtransaction proposes a default value of 90.000 for gas. Geth currently just errors if no gas value is provided while we (in similar methods) execute an EstimateGas call to properly estimate the gas usage.

@th4s
Copy link

th4s commented Feb 4, 2021

Differences between https://eth.wiki/json-rpc/API and geth (in --dev mode) I noticed:

  1. Compiler related RPCs are not supported (I think this is well known, but just for completeness). This includes:
  • eth_getCompilers
  • eth_compileSerpent
  • eth_compileSolidity
  • eth_compileLLL
  1. Same for the mining RPCs
  • eth_getWork
  • eth_submitWork
  • eth_submitHashrate
  1. The complete db_... and shh_... (whisper has been moved out of geth I think) namespaces do not exist.

  2. eth_signTransaction should return the hex-encoded transaction, but geth returns
    {"raw": hex_encoded_tx, "tx": json_encoded_tx}.

  3. Using eth_getFilterLogs with a filter_id returned by eth_newBlockFilter does not seem to work. Geth returns { code: -32000, message: "filter not found" }. However, doing this with eth_getFilterChanges works. I am not sure if this is intended or a bug.

@tkstanczak
Copy link
Contributor Author

Within:

  • eth_call
  • parity_call
  • eth_estimateGas

There are multiple inconsistencies in what we use when:

  • From field is empty
  • Gas field is empty
  • GasPrice is empty

@tkstanczak
Copy link
Contributor Author

debug_trace methods sometimes generate huge outputs -> multiple gigabytes of data.
We could clarify the limits / timeouts and client behaviours when handling such requests.

@tkstanczak
Copy link
Contributor Author

Http/2 support

@tkstanczak
Copy link
Contributor Author

Pending block parameter behaviour

@rain-on
Copy link

rain-on commented Feb 15, 2021

Quorum's admin_peers Json RPC (appears to) return its peer's Ethereum Address in the "id" field, rather than the peer's Public Key (as indicated by documentation).
Besu supplies the Public key.

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

No branches or pull requests

4 participants