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
Monero OpenRPC Specification #9186
Comments
@kilianmh you can use https://github.com/MAGICGrants/getmonero.dev if you want |
As an FYI, I tried to get the new serialization system I wrote to auto-generate schemas. I failed to get it working, without changing the interface a bit. Perhaps if the new serialization gets merged in (its moving very slowly), I could have some cycles on how to add this with minimal overhead (the overhead was always the problem with implementing it in the past). For those curious, instead of writing the entire schema "by hand", this would auto-generate the initial process, with the exception of the "description" fields. |
And to clarify - I think having the schemas would be useful, but writing one for all JSON-RPC endpoints would take a while. Certainly a big effort. I'm curious what |
@SamsungGalaxyPlayer getmonero.dev seems like a good option
One more question: Should there be a unified schema or one for |
We should have different schemes for |
One of the biggest problems with the RPC documentation right now is that it is pretty outdated, and there is no mechanism to enforce that us lazy developers update the documentation (and it's in a different repo anyways). Perhaps a CI action could be added that checks |
hi, plowsof notified me that this issue exist. Hopefully vtnerd will be able to get his serlization system working. I'm trying to write it by hand at the moment in this repo: https://github.com/SyntheticBird45/monero-open-rpc. I plan to first write the daemon rpc, test it and verify what is outdated/deprecated. I'll then jump on the wallet rpc. |
I've finished first iteration of the core RPC openRPC document: https://github.com/SyntheticBird45/monero-open-rpc/blob/main/daemon/openrpc.json. To see, copy paste it in https://playground.open-rpc.org. The document only contains the JSON-RPC interface and do not integrate nor document other /rpc methods. Since it isn't OpenAPI, there are no native way to express these endpoints. The For methods that could send JSON field in epee encoding format, the schema show a string, but description is precising that this is binary form. A fair number of field description are not provided since I don't understand what are their meanings. Looking through monerod's I would like some directive on the other /rpc methods topic before jumping on the wallet RPC document |
Added : "x-wallet-rpc-version": {
"major":1,
"minor":27
} to wallet/openrpc.json. and: "x-core-rpc-version": {
"major":3,
"minor":13
} to daemon/openrpc.json |
I went through the RPC docs a ~year ago and updated pretty much everything.. apart from a few occurrences of ringsize:7 they are kept up to date now. Automation ofcourse is preferred, but i / others attend to any issue made on -site reg docs. |
For reference, here what I found out of date in the core RPC:
There are also methods like |
@SyntheticBird45 Great to see what you did so far! |
One general question to the collaborators: Was/is there already an issue with the topic of replacing the other /rpc methods with conforming JSON-RPC methods? If no, then do you think such an issue should be created? |
@SyntheticBird45 Also some methods use the |
I also wonder this, as I am currently working on Cuprate's RPC server and only having JSON-RPC methods would be cleaner |
We could add those JSONRPC methods to match the behavior of the /* endpoints, but we shouldn't remove the /* endpoints. |
A quick counter-argument to JSON-RPC: DOMless parsing is faster in the REST-style endpoints compared to the JSON-RPC endpoints. The problem is that the |
OpenRPC is a (human and) machine-readable, programming language-agnostic JSON-RPC API interface description standard.
Having such a document could facilitate e.g. specification driven development, interactive documentation, code generation (documentation / clients), and automation of test cases.
Here is the post on bounties.monero.
Do you guys think such a specification could/should be part of the of this repository, another monero-project repository, or an external repository?
The text was updated successfully, but these errors were encountered: