dash-docs/img/dev/en-bloom-update.dot
David A. Harding a8fd82c6a6 Dev Docs: Describe Filterload Message (Final P2P Message To Document)
New material:

* Add documentation for `filterload` message to devref. This is the last
  P2P protocol message which needed documentation.

* Add an example for creating a bloom filter to the devex, as well as an
  example of checking data against that filter.

Edits:

* Change "object" to "element" in previous `filteradd` text. I decided
  "transaction element" made more sense than the more generic "object".
  Text should be fully consistent across both `filterload` and
  `filteradd` descriptions.

* Mentioned that I think the example hexdump in the `alert` section is
  public domain. (Only the hex is taken from the wiki; the annotation is
  my own work.)
2014-11-27 21:27:01 -05:00

72 lines
1.8 KiB
Text

digraph {
size="6.25";
rankdir=TB;
nodesep=1.05;
ranksep=0.2;
splines="false"
edge [ penwidth = 1.75, fontname="Sans" ]
node [ penwidth = 1.75, shape = "box", fontname="Sans", ]
graph [ penwidth = 1.75, fontname="Sans" ]
subgraph cluster_client {
graph [ penwidth = 0 ];
subgraph cluster_client1 {
graph [ penwidth = 0 ];
address [ label = "Address To Match" ];
filter1 [ label = "Filter That\n\ \ Matches Address\ \ ", style = "diagonals" ];
mymatch1 [ label = "Transaction 1", style = "invis" ];
mymatch2 [ label = "Transaction 2", style = "invis" ];
address -> filter1;
filter1 -> mymatch1 [ style = "invis" ];
mymatch1 -> mymatch2 [ style = "invis" ];
}
label = "Client"
}
filter1 -> filter2 [ constraint = false ];
subgraph cluster_node {
graph [ penwidth = 0 ];
subgraph cluster_node2 {
graph [ penwidth = 0 ];
tx2 [ label = "Transaction 2" ];
filter3 [ label = "Filter Updated\n\ \ \ \ With Outpoint \ ", style = "diagonals" ];
match2 [ label = "Transaction 2\nSpends Outpoint", shape = "none" ];
tx2 -> filter3;
filter3 -> match2 [ minlen = 2 ];
}
subgraph cluster_node1 {
graph [ penwidth = 0 ];
tx1 [ label = "Transaction 1" ];
filter2 [ label = "Filter That\n\ \ Matches Address\ \ ", style = "diagonals" ];
match1 [ label = "Transaction 1\nPays Address", shape = "none" ]
tx1 -> filter2;
filter2 -> match1;
}
match1 -> mymatch1 [ constraint = false ];
filter2 -> filter3 [constraint = false ];
match1 -> filter3 [ constraint = false ];
match2 -> mymatch2 [ constraint = false ];
label = "Full Node"
}
label = "Automatically Updating Bloom Filters To Track Relevant Transactions"
}