From 1d999fa23c4052e895c36ddd3511e841d5ed19ea Mon Sep 17 00:00:00 2001 From: thephez Date: Thu, 9 Nov 2017 12:38:34 -0500 Subject: [PATCH] PrivateSend P2P messages - Add diagram of message exchange showing typical PrivateSend session --- _includes/devdoc/ref_p2p_networking.md | 7 ++ img/dev/en-p2p-privatesend-messages.dot | 33 ++++++++++ img/dev/en-p2p-privatesend-messages.svg | 88 +++++++++++++++++++++++++ 3 files changed, 128 insertions(+) create mode 100644 img/dev/en-p2p-privatesend-messages.dot create mode 100644 img/dev/en-p2p-privatesend-messages.svg diff --git a/_includes/devdoc/ref_p2p_networking.md b/_includes/devdoc/ref_p2p_networking.md index 86f7b4df..05e7ba72 100644 --- a/_includes/devdoc/ref_p2p_networking.md +++ b/_includes/devdoc/ref_p2p_networking.md @@ -1514,6 +1514,13 @@ The following network messages all help control the PrivateSend (formerly DarkSend) coin mixing features built in to Dash and facilitated by the masternode network. +Since the messages are all related to a single process, this diagram shows them +sequentially numbered. The `dssu` message (not shown) is sent by the +masternode in conjunction with some responses. For additional details, refer to +the Developer Guide [PrivateSend section](developer-guide#privatesend). + +![Overview Of P2P Protocol PrivateSend Request And Reply Messages](/img/dev/en-p2p-privatesend-messages.svg) + {% endautocrossref %} #### dsa diff --git a/img/dev/en-p2p-privatesend-messages.dot b/img/dev/en-p2p-privatesend-messages.dot new file mode 100644 index 00000000..2edeae18 --- /dev/null +++ b/img/dev/en-p2p-privatesend-messages.dot @@ -0,0 +1,33 @@ +digraph { + +size="6.25"; +rankdir=LR +//nodesep=0.05; +//ranksep=0.1; +//splines="false" + +edge [ penwidth = 1.75, fontname="Sans" ] //,style="dashed", dir="none" ] +node [ penwidth = 1.75, shape = "box", fontname="Sans", ] +graph [ penwidth = 1.75, fontname="Sans" ] + +"Node" -> Masternode [ label="1. dsa", style="dashed" ]; +Masternode -> "Node" [ label="2. dsq" ]; +"Node" -> Masternode [ label="3. dsi", style="dashed" ]; +Masternode -> "Node" [ label="4. dsf" ]; +"Node" -> Masternode [ label="5. dss", style="dashed" ]; +Masternode -> "Node" [ label="6. dsc" ]; + +// Relay to network +Masternode -> "Network" [ label="7. dstx" ]; + +{ + node [ shape = "none" ]; + label1 [ label = "PrivateSend\nClients" ]; + label2 [ label = "Selected Mixing\nNode" ]; + label3 [ label = "Transaction\nBroadcast" ]; + + label1 -> label2 -> label3 [style = "invis" ]; +} + +label = "Overview Of P2P Protocol PrivateSend Request and Reply Messages" +} diff --git a/img/dev/en-p2p-privatesend-messages.svg b/img/dev/en-p2p-privatesend-messages.svg new file mode 100644 index 00000000..dfb96304 --- /dev/null +++ b/img/dev/en-p2p-privatesend-messages.svg @@ -0,0 +1,88 @@ + + + + + + +%3 + +Overview Of P2P Protocol PrivateSend Request and Reply Messages + +Node + +Node + + +Masternode + +Masternode + + +Node->Masternode + + +1. dsa + + +Node->Masternode + + +3. dsi + + +Node->Masternode + + +5. dss + + +Masternode->Node + + +2. dsq + + +Masternode->Node + + +4. dsf + + +Masternode->Node + + +6. dsc + + +Network + +Network + + +Masternode->Network + + +7. dstx + + +label1 +PrivateSend +Clients + + +label2 +Selected Mixing +Node + + + +label3 +Transaction +Broadcast + + + +