zebra icon indicating copy to clipboard operation
zebra copied to clipboard

Test Zebra reject message handling

Open teor2345 opened this issue 2 years ago • 0 comments

Scheduling

Zebra doesn't send reject messages, and it ignores reject messages that are sent to it, so these tests are optional.

Motivation

We want to test for two things:

Reject Message Loops

We want to avoid reject message loops, where two peers reject each others' reject messages. (We also want to avoid these kind of useless message loops in general, but that's trickier to solve.)

zcashd does this here: https://github.com/zcash/zcash/blob/1b5ab4a06e52c23aca48afb1ebb72a25ef5dd3ca/src/main.cpp#L7347-L7350

Zebra currently ignores reject messages in handle_message_as_request, but we want to test that it stays that way.

Reject Command and Reason Length Limits

Check the limits added in PR #4687 are enforced correctly. Check they return valid UTF-8 (or ascii?)

Specifications

Bitcoin doesn't say much about this: https://en.bitcoin.it/wiki/Protocol_documentation#reject

Designs

Start a zebra-network stack, and send it random reject messages.

teor2345 avatar Jun 16 '22 22:06 teor2345