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

Document JSON-RPC interface in an EIP #1442

Closed
Arachnid opened this issue Sep 23, 2018 · 23 comments · Fixed by #1474
Closed

Document JSON-RPC interface in an EIP #1442

Arachnid opened this issue Sep 23, 2018 · 23 comments · Fixed by #1474

Comments

@Arachnid
Copy link
Contributor

At present, the JSON-RPC interface all clients expose is loosely documented at https://github.com/ethereum/wiki/wiki/JSON-RPC, but this doesn't truly represent the current state of all clients. It's also incomplete, leaving out crucial details such as the format for hex-encoded numbers and strings, and doesn't provide an obvious mechanism for proposing and implementing new RPCs in a cross-client manner.

We should fix this by writing an EIP that serves as a complete reference for client maintainers and users of the standard RPCs.

@Arachnid
Copy link
Contributor Author

CC @gitcoinco for potential bounty

@moodysalem
Copy link
Contributor

Is this related?
#217

If not I think the schema should be programmatically readable, and would suggest it uses JSON schema and OpenAPI (aka Swagger) standards

@Arachnid
Copy link
Contributor Author

@moodysalem Yes and no. A human-readable spec that describes what each API should do is different from a set of automated tests that verify the API behaves as expected.

@cdetrio
Copy link
Member

cdetrio commented Sep 25, 2018

With the JSON schema specs of #217 I was hoping to use the description fields to generate the wiki documentation. Then the schema test cases are used to verify that client methods are implemented according to the documentation. The test runner was recently dusted off and run again against multiple clients, reviving the proof-of-concept (only a handful of RPC methods have schemas): ethereum/hive#119

@ChrisCates
Copy link

Here are my questions in regards to an improved documentation spec:

  1. What sort of documentation tools would you prefer? Or would a custom one work? What sort of formatting should it be in?

  2. Will a checklist be provided of all the missing features from the existing documentation? Will a checklist be provided for existing documented features that need improvement?

  3. Will a convention or guideline be provided for creating new documentation... Or, can I propose a guideline and convention?

  4. (Optional) Maybe have a way to test and experiment with RPC calls via localhost or testnets.

@gitcoinbot
Copy link

gitcoinbot commented Sep 30, 2018

Issue Status: 1. Open 2. Cancelled


Workers have applied to start work.

These users each claimed they can complete the work by 4 months from now.
Please review their action plans below:

1) sriharikapu has applied to start work (Funders only: approve worker | reject worker).

I will work on documenting about JSON RPC.

Learn more on the Gitcoin Issue Details page.

2) maexx393 has applied to start work (Funders only: approve worker | reject worker).

I would research about similar RPC documentation to understand the general format of the EIP content and then compare various well documented with the client's current documentation. The changes will be made to achieve a great flow of information for the users to easily understand.

Learn more on the Gitcoin Issue Details page.

3) jjdevbiz has applied to start work (Funders only: approve worker | reject worker).

Howdy!
I have been studying the ethereum json-rpc for the past few months and I feel comfortable that I could document it to the standards you mention (EIP) in short order.
I'd love to chat a little bit about your expectations further if that's ok. Thanks for the opportunity to do some good work!
Cheers,
JJ

Learn more on the Gitcoin Issue Details page.

4) raininja has applied to start work (Funders only: approve worker | reject worker).

I've done some work in this arena, prepping for work on an elixir based JSON-RPC client, so I'm very familiar with this subject.

Learn more on the Gitcoin Issue Details page.

5) skeptycal has applied to start work (Funders only: approve worker | reject worker).

I have experience designing and coding full stack solutions.
I am a retired teacher so I can write great technical documentation

This should take 3 - 6 days to complete.

Learn more on the Gitcoin Issue Details page.

@ChrisCates
Copy link

@cdetrio, perhaps before implementing a documentation and sandbox platform.
We should solidify a Swagger spec (or other convention), which, can then be fed into a web app.

@bitpshr
Copy link
Contributor

bitpshr commented Oct 2, 2018

Hi @Arachnid, thanks for filing this. I'm already working on an EIP draft that formalizes the current RPC specification. It should be ready to PR in a few days (no need for a bounty though).

@PixelantDesign
Copy link

@Arachnid you have one worker application pending!

@ChrisCates
Copy link

@PixelantDesign, see @bitpshr's comment. He is going to create a RPC specification.

@bitpshr
Copy link
Contributor

bitpshr commented Oct 12, 2018

An initial draft can be found at #1474. I'm addressing remaining PR / Ethereum Magicians feedback and tightening up verbiage in a few spots, and should have those updates pushed shortly.

@vs77bb
Copy link

vs77bb commented Oct 13, 2018

Hi @bitpshr are you sure on the bounty? All it would take is a 'Start Work' action on Gitcoin here. If not, happy to cancel the bounty.

Regardless, thanks for this great contribution to the ecosystem! 🎉

@frankchen07
Copy link

hey @bitpshr, just a reminder to start work on the bounty if you'd like. It'll ensure a smooth process for getting paid out at the end!

@ChrisCates
Copy link

ChrisCates commented Nov 27, 2018

Hey!~
I was approved for this bounty.
But I thought someone from their internal team already accepted it.

There are lots of other things I'd like to add revolved around this (see initial comment). An interactive webpage to query/test endpoints is what I sort of envision. Happy to discuss more!~

@gitcoinbot
Copy link

@ChrisCates Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

1 similar comment
@gitcoinbot
Copy link

@ChrisCates Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@xiaods
Copy link

xiaods commented Jan 9, 2019

i suggest provide a interactive rest api page . it my proposal. just like : https://xiaods.github.io/Ethereum-api-docs/#introduction

@xiaods
Copy link

xiaods commented Jan 18, 2019

@vs77bb for api documentation, the best represent way is API site, could you please confirm what you want? the EIP is not suite for json-rpc api design.

@xiaods
Copy link

xiaods commented Jan 28, 2019

@xiaods
Copy link

xiaods commented Feb 5, 2019

any update for this issue.

@xiaods
Copy link

xiaods commented Feb 19, 2019

@Arachnid do you have some time to review this issue. do we need moving on road.

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Cancelled


The funding of 325.0 DAI (325.0 USD @ $1.0/DAI) attached to this issue has been cancelled by the bounty submitter

@axic
Copy link
Member

axic commented Jan 23, 2020

To clarify, this was done in #1474 and is visible at https://eips.ethereum.org/EIPS/eip-1474

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 a pull request may close this issue.