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

RPC v3 #230

Open
gr0vity-dev opened this issue Jan 10, 2023 · 0 comments
Open

RPC v3 #230

gr0vity-dev opened this issue Jan 10, 2023 · 0 comments
Labels
ipc rpc Changes related to Remote Procedure Calls

Comments

@gr0vity-dev
Copy link
Owner

2021-09-28T17:23:37Z zhyatt
BackgroundThis was split from original plans for 'RPC 2.0' to help with further improvements on top of the IPC 2.0 framework in a new v3. The v2 items will be tracked in nanocurrency/nano-node#2467.## General rules- This will be built on top of IPC 2.0 under the endpoint- Needs to follow minimum specification - so all the functions need to be generic as possible- Everything needs to be a streaming API? (pending review)- Needs to be C-function compatible- Should do no internal memory allocations, should all be allocated the caller- Where reasonable and possible, include confirmation status in responses- No JSON-escaped strings? (pending review)- Per nanocurrency/nano-docs#554, move from term to ## Modifications to existing RPCsPending evaluation and inclusion of items here: https://forum.nano.org/t/rpc-2-0-refactor/110/3### ApprovedResponses/error handling- [ ] #1782- [ ] #2262### Needs evaluation- [ ] - if the account is not opened on the ledger yet it responds with 'Account not found', whereas the error message makes it look like the account is not part of the wallet- [ ] Collapse a couple overlapping RPCs- [ ] #840- [ ] #3457- [ ] Adjusting naming of subtype in process RPC - see this forum topic## Potential existing RPC issues of noteThese are issues that may need investigation if pulling over code directly from RPC 1.0 implementation.- [ ] Ensure error responses when mandatory fields are missing are clear (existing message is 'Unable to parse JSON')- [ ] #1750## Newly proposed RPCs or features (lower priority)### ApprovedNone### Needs evaluation- [ ] New RPC - calculation of the minimum weight currently needed to be considered PR (or add to or other lightweight, related call)- [ ] Get block details based on account and block height (from forum comment)- [ ] Streams and iterators for large RPCs- [ ] Rate limiting- [ ] Pending blocks hinting when an account is not found- [ ] process_async RPC to avoid waiting for responses when processing blocks - [ ] RPC command to show voting status. Is voting is enabled (yes/no), when did the node last participate in a vote (elapsed time and/or timestamp), how many votes in last X minutes (integer), maybe an optional parameter to show vote details (list of last X blocks that were voted on) (see comment ) ## Other supporting resources- [ ] OpenAPI spec (current progress by community member @aspic: https://github.com/nanobox-cc/openapi-nano-spec - [ ] Report the expected complexity in the docs. For instance O(1) if directly indexed, O(n) if traversing an account, O(n*m) if all accounts in ledger

@gr0vity-dev gr0vity-dev added ipc rpc Changes related to Remote Procedure Calls labels Jan 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ipc rpc Changes related to Remote Procedure Calls
Projects
None yet
Development

No branches or pull requests

1 participant