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

Refactor zebra-network Bitcoin to Zebra protocol translation layer #1515

Closed
5 of 6 tasks
teor2345 opened this issue Dec 14, 2020 · 3 comments
Closed
5 of 6 tasks

Refactor zebra-network Bitcoin to Zebra protocol translation layer #1515

teor2345 opened this issue Dec 14, 2020 · 3 comments
Labels
A-rust Area: Updates to Rust code C-bug Category: This is a bug C-cleanup Category: This is a cleanup C-design Category: Software design work S-needs-design Status: Needs a design decision

Comments

@teor2345
Copy link
Contributor

teor2345 commented Dec 14, 2020

Motivation

The Bitcoin to Zebra protocol translation layer is a bit of a mess, and a source of subtle bugs:
https://github.com/ZcashFoundation/zebra/blob/main/zebra-network/src/peer/connection.rs

It contains a lot of undocumented state, assumptions and invariants. And it's unclear if these assumptions match the zcashd implementation.

We should refactor the protocol translation into cleaner request/response pairs. We should then test those requests and responses against Zebra and zcashd (#1048).

Current Implementation

There is a summary of the current implementation here:
https://docs.google.com/document/d/1KgPl3r_Pp8AUM0KvDnBv7LK0vRMvxVjM9ooIwr2mB7U/edit#

Design Questions

Handling Incomplete Peer Responses

Internal Protocol

@teor2345 teor2345 added C-bug Category: This is a bug C-design Category: Software design work A-rust Area: Updates to Rust code S-needs-design Status: Needs a design decision C-cleanup Category: This is a cleanup S-needs-triage Status: A bug report needs triage labels Dec 14, 2020
@teor2345 teor2345 added this to To Do in 🦓 via automation Dec 14, 2020
@mpguerra mpguerra added this to No Estimate in Effort Affinity Grouping Dec 18, 2020
@dconnolly dconnolly moved this from No Estimate to M - 5 in Effort Affinity Grouping Jan 21, 2021
@dconnolly dconnolly changed the title Refactor zebra-network Bitcoin to Zebra protocol translation layer Design: zebra-network Bitcoin to Zebra protocol translation layer Jan 21, 2021
@mpguerra mpguerra removed the S-needs-triage Status: A bug report needs triage label Feb 2, 2021
@teor2345

This comment was marked as resolved.

@teor2345 teor2345 closed this as completed Feb 4, 2022
🦓 automation moved this from To Do to Done Feb 4, 2022
@teor2345
Copy link
Contributor Author

teor2345 commented Feb 4, 2022

Actually, the open design questions are answered by other tickets, but the task still needs to be done.

@teor2345 teor2345 reopened this Feb 4, 2022
🦓 automation moved this from Done to In progress Feb 4, 2022
@teor2345 teor2345 changed the title Design: zebra-network Bitcoin to Zebra protocol translation layer Refactor zebra-network Bitcoin to Zebra protocol translation layer Feb 4, 2022
@teor2345
Copy link
Contributor Author

This is getting done gradually as we change the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-rust Area: Updates to Rust code C-bug Category: This is a bug C-cleanup Category: This is a cleanup C-design Category: Software design work S-needs-design Status: Needs a design decision
Projects
No open projects
🦓
  
In progress
Development

No branches or pull requests

2 participants