Network Handshake Diagram

This commit is contained in:
Josh Green
2019-12-24 11:46:14 -05:00
committed by bitcoin
parent bd94f6118f
commit cd331c6bc1
+20 -12
View File
@@ -17,17 +17,25 @@ Once each Node has sent and received a Verack message, normal node operation may
When a local Node initiates a connection to a remote Node, the remote Node will remain silent it receives a version message. When a local Node initiates a connection to a remote Node, the remote Node will remain silent it receives a version message.
``` ```mermaid
# SequenceDiagram sequenceDiagram
title Node Handshake Local->>Remote: Version
Note Right of Remote: #35;1
Local->>Remote: Sends Version Message Remote->>Local: Version
note right of Remote: Version Message contains Local's Version Number. Note Left of Local: #35;2
Remote->>Local: Sends Version Message Remote->>Local: Verack
note left of Local: Version Message contains Remote's Version Number. Note Left of Local: #35;3
Remote->>Local: Sends Verack Message Local->>Remote: Verack
note left of Local: Local uses the lower of the two Version Numbers, if compatible. Note Right of Remote: #35;4
Local->>Remote: Sends Verack Message
note right of Remote: Remote uses the lower of the two Version Numbers, if compatible.
``` ```
1. Local sends Version Message to Remote containing Local's Version Number.
2. Remote sends Version Message containing Remote's Version Number.
3. If Local's Version Number is compatible, Remote uses the lower of the two Version Numbers and sends Verack Message.
4. If Remote's Version Number is compatible, Local uses the lower of the two Version Numbers and sends Verack Message.