-
Notifications
You must be signed in to change notification settings - Fork 770
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
Client JSON-RPC Support #1114
Comments
Just a reminder on this issue, it would be good if new RPC calls added would be checked here. Eventually we might also want to add the Merge RPC calls (//cc @gabrocheleau). |
Is this issue still helpful or should we rather close and let this continuously evolve from what we have now? |
I think this is a helpful tracking issue! 😄 |
I've been trying to keep the list updated over time as we add endpoints :) I am planning to open a PR next week to add a bunch of missing ones from the ETH namespace that are easy, for completeness sake. I also want to implement websockets with eth_subscribe and eth_unsubscribe and have some starting code for it but haven't prioritized finishing it yet. |
Hello ! I would love to work on this, is the list updated ? |
Thanks for your interest. It certainly looks to be up to date. If you wanted to take some low hanging fruit, there are several RPC methods that I've done first draft implementations that are outlined in #2362 for our Shandong testnet that are probably good candidates to pull into |
Yeah, can second this, that's great to hear! 👍 Alternatively you can also just suggest 1-3 methods you would want to implement and then we can see if there are some caveats you are eventually not yet aware of (e.g. some internal implementation details or limitations) and give you some first-round guidance if needed. |
Thanks! I was thinking of implementing 'eth_gasPrice' but as I can see @acolytec3 already has it done ? Another option could be to start with 'eth_getBlockTransactionCountByNumber'. |
I don't think my implementation is "done". I just hacked something together so our client would support |
Great ! |
@acolytec3 One question, for eth_gasPrice, what should it return if the chain does not support 1559? |
I'd do something simple like just take the average gas price from transactions in the last block or 1, whatever is greater. |
Or alternatively, the average gas price of transactions in our txpool if there are any but that might be too complex for something that will be seldom used. |
Or maybe at least iterate over a couple of blocks (something like 15-20), maybe with a breaking condition to stop once a certain number of txs is included in the calculation (for performance reason, to not overload on heavy-load networks like mainnet, so e.g. stop with 1000 txs or so)? We (EthereumJS client) are often operating on low-usage testnets, and we would otherwise pretty often fall back to the When looking at the Shandong blocks at https://explorer.shandong.ethdevops.io/blocks, maybe 20 is even a bit low and we still can do something like 100 (open for any other suggestion) together with this 1000 txs cap? 🤔 I think it would be worth to optimize here a bit so that we can - in the majority of cases - provide at least a somewhat useful answer/estimate here. |
Update: ah, sorry, didn't take "chain with no 1559" too much into account. Then suggestion might be a bit over-engineered, not sure. On the other hand, this should also not be too laborious to add/implement, so might be a nice extra. |
Hello! I would like to work on this. I'm quite new to EVM and might take more time to finish a PR. Please suggest an Endpoint so I can get started :) |
If you are just starting into this, maybe |
Hi @acolytec3 thanks! I'll look into them. |
@acolytec3 I've added |
@acolytec3 tests added. #2443 |
This is a tracking issue for JSON-RPC support in the client.
Namespace: Real-time Events (Publish-Subscribe)
Namespace: Engine API
Namespace: Admin
Click to expand...Additional Namespaces
Namespace: Debug
Namespace: LES
Namespace: Clique
Namespace: Miner
Namespace: Personal
Namespace: TxPool
The text was updated successfully, but these errors were encountered: