Skip to content

Commit 7e852d2

Browse files
committed
add nonce to ping/pong, fix version field
1 parent c8d3467 commit 7e852d2

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

messages.tla

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ MakeVerack == [
2020
header |-> [ magic |-> 619259748, command |-> "verack" ]
2121
]
2222

23-
MakePing == [
24-
header |-> [ magic |-> 619259748, command |-> "ping" ]
23+
MakePing(nonce) == [
24+
header |-> [ magic |-> 619259748, command |-> "ping" ],
25+
payload |-> [ nonce |-> nonce ]
2526
]
2627

27-
MakePong == [
28-
header |-> [ magic |-> 619259748, command |-> "pong" ]
28+
MakePong(nonce) == [
29+
header |-> [ magic |-> 619259748, command |-> "pong" ],
30+
payload |-> [ nonce |-> nonce ]
2931
]
3032

3133
MakeInv(blocks) == [
@@ -50,7 +52,7 @@ MakeHeaders(blocks, timestamp) == [
5052
header |-> [ magic |-> 619259748, command |-> "headers" ],
5153
payload |-> [
5254
count |-> 1,
53-
headers |-> << [ version |-> 70015, prev_block |-> Cardinality(blocks), merkle_root |-> 0, timestamp |-> timestamp, bits |-> 0, nonce |-> 0 ] >>
55+
headers |-> << [ version |-> 170140, prev_block |-> Cardinality(blocks), merkle_root |-> 0, timestamp |-> timestamp, bits |-> 0, nonce |-> 0 ] >>
5456
]
5557
]
5658

protocol.tla

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,18 @@ PingMessage ==
4545
\E n \in InitialPeers:
4646
\E m \in OtherPeers[n]:
4747
/\ nodes[n].last_recv_at[m] <= clock - 3
48-
/\ nodes' = [ nodes EXCEPT ![n].channels[m] = Append(@, MakePing) ]
48+
/\ nodes' = [ nodes EXCEPT ![n].channels[m] = Append(@, MakePing(clock)) ]
4949
/\ UNCHANGED << clock >>
5050

5151
PongMessage ==
5252
\E n \in InitialPeers:
5353
\E m \in OtherPeers[n]:
5454
/\ Len(nodes[n].channels[m]) > 0
5555
/\ nodes[n].channels[m][Len(nodes[n].channels[m])].header.command = "ping"
56-
/\ nodes' = [ nodes EXCEPT
57-
![n].channels[m] = Append(@, MakePong),
58-
![n].last_recv_at[m] = clock ]
56+
/\ LET ping == nodes[n].channels[m][Len(nodes[n].channels[m])] IN
57+
/\ nodes' = [ nodes EXCEPT
58+
![n].channels[m] = Append(@, MakePong(ping.payload.nonce)),
59+
![n].last_recv_at[m] = clock ]
5960
/\ UNCHANGED << clock >>
6061

6162
InvMessage ==

0 commit comments

Comments
 (0)