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

Document how we review network protocol changes after audits #3187

Closed
Tracked by #2311
teor2345 opened this issue Dec 9, 2021 · 2 comments
Closed
Tracked by #2311

Document how we review network protocol changes after audits #3187

teor2345 opened this issue Dec 9, 2021 · 2 comments
Labels
A-docs Area: Documentation A-network Area: Network protocol updates or fixes C-security Category: Security issues

Comments

@teor2345
Copy link
Contributor

teor2345 commented Dec 9, 2021

Motivation

We have finished implementing the required parts of the Zcash network protocol, and we're going to fix some bugs over the next few weeks. After we get the network code audited, we will need to make sure Zebra keeps implementing a compatible network protocol stack.

Network protocol changes can happen due to:

  • ZIP changes
  • Zebra network protocol bugs
  • refactors
  • dependency updates

Scheduling

We should spend an hour or two creating a draft document, then update it later as needed.

Process Changes

We should document the requirements for new network protocol messages, and network protocol updates:

  • quote the network protocol rule from the ZIP, Bitcoin docs, or zcashd codebase
  • link to the relevant section in the ZIP, docs, or code
  • explain how Zebra is compatible with the network protocol rule
  • test success and failure cases for the network protocol rule
  • validate test vectors from zcashd, if available

We should also document how we identify the code that can change network protocol behaviour:

  • the function that implements the network protocol rule
  • all code that it calls, including other Zebra crates, and external dependencies
  • any code that changes the data that's given to the function (for example, calling the function on different messages, or in a different connection state)

Related Work

@teor2345 teor2345 added A-docs Area: Documentation S-needs-triage Status: A bug report needs triage P-Medium C-security Category: Security issues A-network Area: Network protocol updates or fixes labels Dec 9, 2021
@mpguerra
Copy link
Contributor

@mpguerra mpguerra removed the S-needs-triage Status: A bug report needs triage label Jan 14, 2022
@mpguerra mpguerra mentioned this issue Jan 27, 2022
40 tasks
@teor2345
Copy link
Contributor Author

teor2345 commented Mar 1, 2022

We can probably just use the same process as:

@teor2345 teor2345 closed this as completed Mar 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-docs Area: Documentation A-network Area: Network protocol updates or fixes C-security Category: Security issues
Projects
None yet
Development

No branches or pull requests

2 participants