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

feature: Remote ReadStateService. #9337

Open
idky137 opened this issue Mar 20, 2025 · 1 comment · May be fixed by #9338
Open

feature: Remote ReadStateService. #9337

idky137 opened this issue Mar 20, 2025 · 1 comment · May be fixed by #9338
Assignees
Labels
C-enhancement Category: This is an improvement S-needs-triage Status: A bug report needs triage

Comments

@idky137
Copy link
Contributor

idky137 commented Mar 20, 2025

Motivation

Zebra’s ReadStateService currently only allows local access, limiting its integration with external tools and remote debugging. Enabling remote access would streamline workflows, simplify testing, and support scalable, decentralized deployments—fostering a more modular and community-friendly Zcash ecosystem

This feature was discussed in several Zcashd deprecation meetings and it was agreed that the Zaino dev team would take responsibility for implementing this functionality.

Specifications

The current plan for this feature is as follows:

  1. Use Serde to implement Serialize and Deserialize for the ReadRequest and ReadResponse structs in Zebra-State.
    *This step will also require changes in librustzcash::zcash_history. (Add Serde Serialize and Deserialise to structs in zcash_history zcash/librustzcash#1744)

  2. Add a remote_state_request RPC to Zebra's JsonRPC server that acts as a wrapper to the ReadStateService's Call method.

  3. Add a RemoteStateService to zebra-state::service that uses JsonRpSee to send state requests to Zebrad and implement tower::Service for equivalent functionality. (Could be implemented in Zaino?)

NOTE: The current plan is to add this feature under a "remote_read_state_service" feature flag but this could be removed if this functionality should be enabled by default.

Complex Code or Requirements

NA

Testing

Possible solution: Add set of tests that compare output of Call method from both ReadStateService and RemoteStateService.

Related Work

NA

@idky137
Copy link
Contributor Author

idky137 commented Mar 20, 2025

zcash/librustzcash#1745 is the first work towards this feature and is now waiting for review in librustzcash.

@idky137 idky137 linked a pull request Mar 20, 2025 that will close this issue
5 tasks
@mpguerra mpguerra moved this from New to Review/QA in Zebra Mar 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement Category: This is an improvement S-needs-triage Status: A bug report needs triage
Projects
Status: Review/QA
Development

Successfully merging a pull request may close this issue.

1 participant