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

Replace jsonrpc in zebra-rpc #8682

Closed
upbqdn opened this issue Jul 15, 2024 · 4 comments · Fixed by #9059
Closed

Replace jsonrpc in zebra-rpc #8682

upbqdn opened this issue Jul 15, 2024 · 4 comments · Fixed by #9059
Assignees
Labels
A-dependencies Area: Dependency file updates A-rpc Area: Remote Procedure Call interfaces C-tech-debt Category: Code maintainability issues rust Pull requests that update Rust code S-blocked Status: Blocked on other tasks

Comments

@upbqdn
Copy link
Member

upbqdn commented Jul 15, 2024

zebra-rpc uses https://github.com/paritytech/jsonrpc as its JSON RPC server. However, the crate is no longer actively developed and has been superseded by https://github.com/paritytech/jsonrpsee. Another option would be https://github.com/google/tarpc.

@upbqdn upbqdn added A-dependencies Area: Dependency file updates A-rpc Area: Remote Procedure Call interfaces rust Pull requests that update Rust code labels Jul 15, 2024
@github-project-automation github-project-automation bot moved this to New in Zebra Jul 15, 2024
@upbqdn upbqdn changed the title Replace the jsonrpc crate in zebra-rpc Replace jsonrpc in zebra-rpc Jul 15, 2024
@mpguerra mpguerra moved this from New to Sprint Backlog in Zebra Jul 15, 2024
@conradoplg
Copy link
Collaborator

I seem to recall that zcashd uses a mix of JSON-RPC 1.0 and 2.0 and that we had to add some workarounds, so we'll need to check if one of those crates are compatible

@arya2
Copy link
Contributor

arya2 commented Jul 22, 2024

It looks like jsonrpsee supports middleware via set_http_middleware/set_rpc_middleware, though they require different traits.

We should try using tonic too, it seems more extensible if we get it working with a JSON codec .

@upbqdn
Copy link
Member Author

upbqdn commented Jul 22, 2024

I see having a single RPC framework as beneficial, so I'd go with tonic as well.

@mpguerra mpguerra added the C-tech-debt Category: Code maintainability issues label Oct 18, 2024
@mpguerra mpguerra assigned oxarbitrage and unassigned upbqdn Oct 21, 2024
@mpguerra mpguerra linked a pull request Dec 2, 2024 that will close this issue
7 tasks
@mpguerra
Copy link
Contributor

mpguerra commented Dec 2, 2024

blocked on #9006 and #9049

@mpguerra mpguerra added the S-blocked Status: Blocked on other tasks label Dec 3, 2024
@mergify mergify bot closed this as completed in #9059 Dec 21, 2024
@github-project-automation github-project-automation bot moved this from In progress to Done in Zebra Dec 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-dependencies Area: Dependency file updates A-rpc Area: Remote Procedure Call interfaces C-tech-debt Category: Code maintainability issues rust Pull requests that update Rust code S-blocked Status: Blocked on other tasks
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants