Skip to content

Commit

Permalink
analysis doc
Browse files Browse the repository at this point in the history
  • Loading branch information
josef-widder committed Nov 22, 2024
1 parent 8a9512b commit 96f4d71
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
2 changes: 1 addition & 1 deletion specs/english/synchronization/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ I a request is served, the response message is put into the `responsesBuffer` to

### Invariants and temporal formulas

TODO for the retreat
For details we refer to the [state machine in Quint](https://github.com/informalsystems/malachite/blob/main/specs/quint/specs/blocksync/bsyncStatemachine.qnt), and the [analysis documentation](https://github.com/informalsystems/malachite/blob/main/specs/quint/specs/blocksync/README.md).

## Issues

Expand Down
22 changes: 22 additions & 0 deletions specs/quint/specs/blocksync/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Analysis of the BlockSync Specification

This document contains a report on analysis of BlockSync. We have two versions of the
state machine, one with consensus abstracted away, and one in which the blocksync
state machine and the consensus state machine are combined.

## Invariants checked with quint run

- `validRequestInvariant`: A request should only be sent to a server who has reported, via status message, having data for the requested height.
- `noOldRequestsInv`: A client doesn't have open requests for past heights
- `serverRespondsToRequestingPeersInvariant`: A server only replies to a request received from a client (The client request might have timed out).

## Witnesses

- `serverRespondsToRequestingPeersWitness`: This witness should report a scenario where a request timeouts, the client submits a new one, and a late response is received.

## Temporal properties

We don't check these properties but record them for documentation purposes.
- `terminationRequest`: Every request will eventually terminate.


0 comments on commit 96f4d71

Please sign in to comment.