smite-scenarios: reduce read timeout to 1s#136
Open
morehouse wants to merge 2 commits into
Open
Conversation
This enables the executor to reduce timeouts for messages that are processed quickly and increase timeouts for messages that are processed more slowly.
For current handshake-type flows (open_channel->accept_channel and funding_created->funding_signed), the largest observed response time in the Nyx VM was 444ms under contention. Thus the current timeout value of 5s is overkill and we can safely reduce it to 1s. Keeping the receive timeout value as low as possible is important for fuzzing efficiency since there are certain situations where a target may ignore one of our messages instead of sending us the response we're waiting for. This was observed in practice with Eclair, which will ignore an open_channel message if it has the same temporary_channel_id as one for which Eclair already sent an accept_channel response.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For current handshake-type flows (
open_channel->accept_channelandfunding_created->funding_signed), the largest observed response time in the Nyx VM was 444ms under contention. Thus the current timeout value of 5s is overkill and we can safely reduce it to 1s.Keeping the receive timeout value as low as possible is important for fuzzing efficiency since there are certain situations where a target may ignore one of our messages instead of sending us the response we're waiting for. This was observed in practice with Eclair, which will ignore an
open_channelmessage if it has the sametemporary_channel_idas one for which Eclair already sent anaccept_channelresponse.Eclair also ignores many other kinds of messages as well:
open_channel2commitment_signedaftertx_abortstfusplice_acktx_ack_rbftx_signaturesI imagine there are also various edge cases where other implementations will also ignore certain messages, so it's important that we don't waste more time waiting than necessary when this happens.