Guide - P2P IBD section
- Updated .dot files - Minor adjustments for Dash
|
@ -92,9 +92,7 @@ the status of payment.
|
||||||
https://github.com/dashpay/dash/commit/2e7009d67b862cf822a1c70e181de6af659a3096
|
https://github.com/dashpay/dash/commit/2e7009d67b862cf822a1c70e181de6af659a3096
|
||||||
-->
|
-->
|
||||||
|
|
||||||
To avoid this possible delay, BitcoinJ always uses dynamic DNS seeds to
|
Dash Core tries to strike a balance between minimizing delays
|
||||||
get IP addresses for nodes believed to be currently active.
|
|
||||||
Dash Core also tries to strike a balance between minimizing delays
|
|
||||||
and avoiding unnecessary DNS seed use: if Dash Core has entries in
|
and avoiding unnecessary DNS seed use: if Dash Core has entries in
|
||||||
its peer database, it spends up to 11 seconds attempting to connect to
|
its peer database, it spends up to 11 seconds attempting to connect to
|
||||||
at least one of them before falling back to seeds; if a connection is
|
at least one of them before falling back to seeds; if a connection is
|
||||||
|
@ -106,7 +104,7 @@ and a function to use them, but I don't see that function being used in
|
||||||
any of the examples/wallet templates (but I'm not Java fluent, so
|
any of the examples/wallet templates (but I'm not Java fluent, so
|
||||||
maybe PEBKAC). -@harding -->
|
maybe PEBKAC). -@harding -->
|
||||||
|
|
||||||
Both Bitcoin Core and BitcoinJ also include a hardcoded list of IP
|
Dash Core also include a hardcoded list of IP
|
||||||
addresses and port numbers to several dozen nodes which were active
|
addresses and port numbers to several dozen nodes which were active
|
||||||
around the time that particular version of the software was first
|
around the time that particular version of the software was first
|
||||||
released. Dash Core will start attempting to connect to these nodes
|
released. Dash Core will start attempting to connect to these nodes
|
||||||
|
@ -117,12 +115,11 @@ As a manual fallback option, Dash Core also provides several
|
||||||
command-line connection options, including the ability to get a list of
|
command-line connection options, including the ability to get a list of
|
||||||
peers from a specific node by IP address, or to make a persistent
|
peers from a specific node by IP address, or to make a persistent
|
||||||
connection to a specific node by IP address. See the `-help` text for
|
connection to a specific node by IP address. See the `-help` text for
|
||||||
details. BitcoinJ can be programmed to do the same thing.
|
details.
|
||||||
|
|
||||||
**Resources:** [Bitcoin Seeder][], the program run by several of the
|
**Resources:** [Dash Seeder][], the program run by several of the
|
||||||
seeds used by Bitcoin Core and BitcoinJ. The Bitcoin Core [DNS Seed
|
seeds used by Dash Core. The Dash Core [DNS SeedPolicy][]. The hardcoded list
|
||||||
Policy][]. The hardcoded list of IP addresses used by Bitcoin Core and
|
of IP addresses used by Dash Core is generated using the [makeseeds script][].
|
||||||
BitcoinJ is generated using the [makeseeds script][].
|
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
@ -164,7 +161,7 @@ all the blocks which were produced since the last time it was online.
|
||||||
|
|
||||||
Dash Core uses the IBD method any time the last block on its local
|
Dash Core uses the IBD method any time the last block on its local
|
||||||
best block chain has a block header time more than 24 hours in the past.
|
best block chain has a block header time more than 24 hours in the past.
|
||||||
Bitcoin Core 0.10.0 will also perform IBD if its local best block chain is
|
Dash Core will also perform IBD if its local best block chain is
|
||||||
more than 144 blocks lower than its local best header chain (that is,
|
more than 144 blocks lower than its local best header chain (that is,
|
||||||
the local block chain is more than about 6 hours in the past).
|
the local block chain is more than about 6 hours in the past).
|
||||||
|
|
||||||
|
@ -175,9 +172,9 @@ the local block chain is more than about 6 hours in the past).
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
Bitcoin Core (up until version [0.9.3][bitcoin core 0.9.3]) uses a
|
Dash Core (up until version 0.12.0.x) uses a simple initial block download (IBD)
|
||||||
simple initial block download (IBD) method we'll call *blocks-first*.
|
method we'll call *blocks-first*. The goal is to download the blocks from the
|
||||||
The goal is to download the blocks from the best block chain in sequence.
|
best block chain in sequence.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -190,7 +187,7 @@ node chooses a remote peer, called the sync node, and sends it the
|
||||||
|
|
||||||
In the header hashes field of the `getblocks` message, this new node
|
In the header hashes field of the `getblocks` message, this new node
|
||||||
sends the header hash of the only block it has, the genesis block
|
sends the header hash of the only block it has, the genesis block
|
||||||
(6fe2...0000 in internal byte order). It also sets the stop hash field
|
(b67a...0000 in internal byte order). It also sets the stop hash field
|
||||||
to all zeroes to request a maximum-size response.
|
to all zeroes to request a maximum-size response.
|
||||||
|
|
||||||
Upon receipt of the `getblocks` message, the sync node takes the first
|
Upon receipt of the `getblocks` message, the sync node takes the first
|
||||||
|
@ -210,7 +207,7 @@ the block's header.
|
||||||
The block inventories appear in the `inv` message in the same order they
|
The block inventories appear in the `inv` message in the same order they
|
||||||
appear in the block chain, so this first `inv` message contains
|
appear in the block chain, so this first `inv` message contains
|
||||||
inventories for blocks 1 through 501. (For example, the hash of block 1
|
inventories for blocks 1 through 501. (For example, the hash of block 1
|
||||||
is 4860...0000 as seen in the illustration above.)
|
is 4343...0000 as seen in the illustration above.)
|
||||||
|
|
||||||
The IBD node uses the received inventories to request 128 blocks from
|
The IBD node uses the received inventories to request 128 blocks from
|
||||||
the sync node in the `getdata` message illustrated below.
|
the sync node in the `getdata` message illustrated below.
|
||||||
|
@ -277,7 +274,7 @@ of its downloading. This has several implications:
|
||||||
|
|
||||||
* **Speed Limits:** All requests are made to the sync node, so if the
|
* **Speed Limits:** All requests are made to the sync node, so if the
|
||||||
sync node has limited upload bandwidth, the IBD node will have slow
|
sync node has limited upload bandwidth, the IBD node will have slow
|
||||||
download speeds. Note: if the sync node goes offline, Bitcoin Core
|
download speeds. Note: if the sync node goes offline, Dash Core
|
||||||
will continue downloading from another node---but it will still only
|
will continue downloading from another node---but it will still only
|
||||||
download from a single sync node at a time.
|
download from a single sync node at a time.
|
||||||
|
|
||||||
|
@ -285,7 +282,7 @@ of its downloading. This has several implications:
|
||||||
otherwise valid) block chain to the IBD node. The IBD node won't be
|
otherwise valid) block chain to the IBD node. The IBD node won't be
|
||||||
able to identify it as non-best until the initial block download nears
|
able to identify it as non-best until the initial block download nears
|
||||||
completion, forcing the IBD node to restart its block chain download
|
completion, forcing the IBD node to restart its block chain download
|
||||||
over again from a different node. Bitcoin Core ships with several
|
over again from a different node. Dash Core ships with several
|
||||||
block chain checkpoints at various block heights selected by
|
block chain checkpoints at various block heights selected by
|
||||||
developers to help an IBD node detect that it is being fed an
|
developers to help an IBD node detect that it is being fed an
|
||||||
alternative block chain history---allowing the IBD node to restart
|
alternative block chain history---allowing the IBD node to restart
|
||||||
|
@ -303,7 +300,7 @@ of its downloading. This has several implications:
|
||||||
which may lead to high memory use.
|
which may lead to high memory use.
|
||||||
|
|
||||||
All of these problems are addressed in part or in full by the
|
All of these problems are addressed in part or in full by the
|
||||||
headers-first IBD method used in Bitcoin Core 0.10.0.
|
headers-first IBD method used in Dash Core 0.12.0.x.
|
||||||
|
|
||||||
**Resources:** The table below summarizes the messages mentioned
|
**Resources:** The table below summarizes the messages mentioned
|
||||||
throughout this subsection. The links in the message field will take you
|
throughout this subsection. The links in the message field will take you
|
||||||
|
|
|
@ -437,9 +437,8 @@ http://opensource.org/licenses/MIT.
|
||||||
[Bitcoin Core master]: https://github.com/dashpay/dash
|
[Bitcoin Core master]: https://github.com/dashpay/dash
|
||||||
[Bitcoin Core pull #4468]: https://github.com/bitcoin/bitcoin/pull/4468
|
[Bitcoin Core pull #4468]: https://github.com/bitcoin/bitcoin/pull/4468
|
||||||
[Bitcoin core transifex]: https://www.transifex.com/projects/p/bitcoin/
|
[Bitcoin core transifex]: https://www.transifex.com/projects/p/bitcoin/
|
||||||
[Bitcoin reddit]: http://www.reddit.com/r/Bitcoin
|
[Bitcoin reddit]: http://www.reddit.com/r/dashpay
|
||||||
[Bitcoin reddit new]: http://www.reddit.com/r/Bitcoin/new
|
[Bitcoin reddit new]: http://www.reddit.com/r/dashpay/new
|
||||||
[Bitcoin Seeder]: https://github.com/sipa/bitcoin-seeder
|
|
||||||
[Bitcoin stackexchange]: http://bitcoin.stackexchange.com
|
[Bitcoin stackexchange]: http://bitcoin.stackexchange.com
|
||||||
[Bitcoin stackexchange tag bitcoin-qt]: http://bitcoin.stackexchange.com/questions/tagged/bitcoin-qt
|
[Bitcoin stackexchange tag bitcoin-qt]: http://bitcoin.stackexchange.com/questions/tagged/bitcoin-qt
|
||||||
<!--[bitcoin-documentation mailing list]: https://groups.google.com/forum/#!forum/bitcoin-documentation-->
|
<!--[bitcoin-documentation mailing list]: https://groups.google.com/forum/#!forum/bitcoin-documentation-->
|
||||||
|
@ -455,6 +454,7 @@ http://opensource.org/licenses/MIT.
|
||||||
[core paymentrequest.proto]: https://github.com/dashpay/dash/blob/master/src/qt/paymentrequest.proto
|
[core paymentrequest.proto]: https://github.com/dashpay/dash/blob/master/src/qt/paymentrequest.proto
|
||||||
[core script.h]: https://github.com/dashpay/dash/blob/master/src/script/script.h
|
[core script.h]: https://github.com/dashpay/dash/blob/master/src/script/script.h
|
||||||
[creative commons attribution 3.0 license]: https://creativecommons.org/licenses/by/3.0/
|
[creative commons attribution 3.0 license]: https://creativecommons.org/licenses/by/3.0/
|
||||||
|
[Dash Seeder]: https://github.com/nightlydash/dash-seeder/tree/master
|
||||||
[DashJ]: https://github.com/HashEngineering/dashj
|
[DashJ]: https://github.com/HashEngineering/dashj
|
||||||
[DER]: https://en.wikipedia.org/wiki/X.690#DER_encoding
|
[DER]: https://en.wikipedia.org/wiki/X.690#DER_encoding
|
||||||
[dig command]: https://en.wikipedia.org/wiki/Dig_%28Unix_command%29
|
[dig command]: https://en.wikipedia.org/wiki/Dig_%28Unix_command%29
|
||||||
|
|
|
@ -28,7 +28,7 @@ block [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td border="1"><i>Start String</i><br/><font face="courier">f9beb4d9</font></td>
|
<td border="1"><i>Start String</i><br/><font face="courier">bf0c6bbd</font></td>
|
||||||
<td border="1"><i>Command</i><br/><font face="courier">block</font></td>
|
<td border="1"><i>Command</i><br/><font face="courier">block</font></td>
|
||||||
<td border="1"><i>Size</i><br/><font face="courier">215</font></td>
|
<td border="1"><i>Size</i><br/><font face="courier">215</font></td>
|
||||||
<td border="1"><i>Checksum</i><br/><font face="courier">934d270a</font></td>
|
<td border="1"><i>Checksum</i><br/><font face="courier">934d270a</font></td>
|
||||||
|
@ -38,6 +38,7 @@ block [ shape="plaintext", label=<
|
||||||
<td colspan="4" border="0"><i>Payload</i></td>
|
<td colspan="4" border="0"><i>Payload</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
// Serialized block value not changed to Dash block
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4" border="1"><i>Serialized Block</i><br/><font face="courier">010000006fe2...58eeac00000000</font></td>
|
<td colspan="4" border="1"><i>Serialized Block</i><br/><font face="courier">010000006fe2...58eeac00000000</font></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<text text-anchor="start" x="197.5" y="-151.3" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
<text text-anchor="start" x="197.5" y="-151.3" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
||||||
<polygon fill="none" stroke="black" points="102,-99.5 102,-139.5 194,-139.5 194,-99.5 102,-99.5"/>
|
<polygon fill="none" stroke="black" points="102,-99.5 102,-139.5 194,-139.5 194,-99.5 102,-99.5"/>
|
||||||
<text text-anchor="start" x="108" y="-123.3" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
<text text-anchor="start" x="108" y="-123.3" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
||||||
<text text-anchor="start" x="114.5" y="-109.3" font-family="Courier,monospace" font-size="14.00">f9beb4d9</text>
|
<text text-anchor="start" x="114.5" y="-109.3" font-family="Courier,monospace" font-size="14.00">bf0c6bbd</text>
|
||||||
<polygon fill="none" stroke="black" points="196,-99.5 196,-139.5 278,-139.5 278,-99.5 196,-99.5"/>
|
<polygon fill="none" stroke="black" points="196,-99.5 196,-139.5 278,-139.5 278,-99.5 196,-99.5"/>
|
||||||
<text text-anchor="start" x="202" y="-123.3" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
<text text-anchor="start" x="202" y="-123.3" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
||||||
<text text-anchor="start" x="216" y="-109.3" font-family="Courier,monospace" font-size="14.00">block</text>
|
<text text-anchor="start" x="216" y="-109.3" font-family="Courier,monospace" font-size="14.00">block</text>
|
||||||
|
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
|
@ -17,6 +17,8 @@ ibd -> getblocks:f1 -> sync;
|
||||||
ibd [ label = "IBD\nNode", shape="none" ];
|
ibd [ label = "IBD\nNode", shape="none" ];
|
||||||
sync [ label = "Sync\nNode", shape="none" ];
|
sync [ label = "Sync\nNode", shape="none" ];
|
||||||
|
|
||||||
|
// Genesis block hash - 00000ffd590b1485b3caadc19b22e6379c733355108f107a430458cdf3407ab6
|
||||||
|
|
||||||
getblocks [ shape="plaintext", label=<
|
getblocks [ shape="plaintext", label=<
|
||||||
<table border="2" cellborder="1">
|
<table border="2" cellborder="1">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -28,7 +30,7 @@ getblocks [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td border="1"><i>Start String</i><br/><font face="courier">f9beb4d9</font></td>
|
<td border="1"><i>Start String</i><br/><font face="courier">bf0c6bbd</font></td>
|
||||||
<td border="1"><i>Command</i><br/><font face="courier">getblocks</font></td>
|
<td border="1"><i>Command</i><br/><font face="courier">getblocks</font></td>
|
||||||
<td border="1"><i>Size</i><br/><font face="courier">69</font></td>
|
<td border="1"><i>Size</i><br/><font face="courier">69</font></td>
|
||||||
<td border="1"><i>Checksum</i><br/><font face="courier">f5fcbcad</font></td>
|
<td border="1"><i>Checksum</i><br/><font face="courier">f5fcbcad</font></td>
|
||||||
|
@ -44,7 +46,7 @@ getblocks [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4"><i>Header Hashes (Highest-Height First)</i><br /><font face="courier">6fe28c0ab6f1b3...d6190000000000</font></td>
|
<td colspan="4"><i>Header Hashes (Highest-Height First)</i><br /><font face="courier">b67a40f3cd5804...140b59fd0f0000</font></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<text text-anchor="start" x="195.5" y="-202.3" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
<text text-anchor="start" x="195.5" y="-202.3" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
||||||
<polygon fill="none" stroke="black" points="95.5,-159.5 95.5,-193.5 181.5,-193.5 181.5,-159.5 95.5,-159.5"/>
|
<polygon fill="none" stroke="black" points="95.5,-159.5 95.5,-193.5 181.5,-193.5 181.5,-159.5 95.5,-159.5"/>
|
||||||
<text text-anchor="start" x="98.5" y="-180.3" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
<text text-anchor="start" x="98.5" y="-180.3" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
||||||
<text text-anchor="start" x="105" y="-166.3" font-family="Courier,monospace" font-size="14.00">f9beb4d9</text>
|
<text text-anchor="start" x="105" y="-166.3" font-family="Courier,monospace" font-size="14.00">bf0c6bbd</text>
|
||||||
<polygon fill="none" stroke="black" points="183.5,-159.5 183.5,-193.5 264.5,-193.5 264.5,-159.5 183.5,-159.5"/>
|
<polygon fill="none" stroke="black" points="183.5,-159.5 183.5,-193.5 264.5,-193.5 264.5,-159.5 183.5,-159.5"/>
|
||||||
<text text-anchor="start" x="189" y="-180.3" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
<text text-anchor="start" x="189" y="-180.3" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
||||||
<text text-anchor="start" x="186.5" y="-166.3" font-family="Courier,monospace" font-size="14.00">getblocks</text>
|
<text text-anchor="start" x="186.5" y="-166.3" font-family="Courier,monospace" font-size="14.00">getblocks</text>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
<text text-anchor="start" x="334" y="-109.3" font-family="Courier,monospace" font-size="14.00">1</text>
|
<text text-anchor="start" x="334" y="-109.3" font-family="Courier,monospace" font-size="14.00">1</text>
|
||||||
<polygon fill="none" stroke="black" points="95.5,-66.5 95.5,-100.5 410.5,-100.5 410.5,-66.5 95.5,-66.5"/>
|
<polygon fill="none" stroke="black" points="95.5,-66.5 95.5,-100.5 410.5,-100.5 410.5,-66.5 95.5,-66.5"/>
|
||||||
<text text-anchor="start" x="123.5" y="-87.3" font-family="Sans" font-style="italic" font-size="14.00">Header Hashes (Highest-Height First)</text>
|
<text text-anchor="start" x="123.5" y="-87.3" font-family="Sans" font-style="italic" font-size="14.00">Header Hashes (Highest-Height First)</text>
|
||||||
<text text-anchor="start" x="125" y="-73.3" font-family="Courier,monospace" font-size="14.00">6fe28c0ab6f1b3...d6190000000000</text>
|
<text text-anchor="start" x="125" y="-73.3" font-family="Courier,monospace" font-size="14.00">b67a40f3cd5804...140b59fd0f0000</text>
|
||||||
<polygon fill="none" stroke="black" points="95.5,-30.5 95.5,-64.5 410.5,-64.5 410.5,-30.5 95.5,-30.5"/>
|
<polygon fill="none" stroke="black" points="95.5,-30.5 95.5,-64.5 410.5,-64.5 410.5,-30.5 95.5,-30.5"/>
|
||||||
<text text-anchor="start" x="134.5" y="-51.3" font-family="Sans" font-style="italic" font-size="14.00">Stopping Hash (Zero Is "No Stop")</text>
|
<text text-anchor="start" x="134.5" y="-51.3" font-family="Sans" font-style="italic" font-size="14.00">Stopping Hash (Zero Is "No Stop")</text>
|
||||||
<text text-anchor="start" x="125" y="-37.3" font-family="Courier,monospace" font-size="14.00">00000000000000...00000000000000</text>
|
<text text-anchor="start" x="125" y="-37.3" font-family="Courier,monospace" font-size="14.00">00000000000000...00000000000000</text>
|
||||||
|
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
@ -17,6 +17,9 @@ ibd -> getblocks:f1 -> sync;
|
||||||
ibd [ label = "IBD\nNode", shape="none" ];
|
ibd [ label = "IBD\nNode", shape="none" ];
|
||||||
sync [ label = "Sync\nNode", shape="none" ];
|
sync [ label = "Sync\nNode", shape="none" ];
|
||||||
|
|
||||||
|
// Block 500 hash - 000007248b1005ffdcf3f41f3a5630b5cb0078ca5733d931223839821f7f5faa
|
||||||
|
// Block 501 hash - 000003ad8ae16fd93d5ba05c902168b21a54855c98d1fcd5351308e0f05d59ab
|
||||||
|
|
||||||
getblocks [ shape="plaintext", label=<
|
getblocks [ shape="plaintext", label=<
|
||||||
<table border="2" cellborder="1">
|
<table border="2" cellborder="1">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -28,7 +31,7 @@ getblocks [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td border="1"><i>Start String</i><br/><font face="courier">f9beb4d9</font></td>
|
<td border="1"><i>Start String</i><br/><font face="courier">bf0c6bbd</font></td>
|
||||||
<td border="1"><i>Command</i><br/><font face="courier">getblocks</font></td>
|
<td border="1"><i>Command</i><br/><font face="courier">getblocks</font></td>
|
||||||
<td border="1"><i>Size</i><br/><font face="courier">677</font></td>
|
<td border="1"><i>Size</i><br/><font face="courier">677</font></td>
|
||||||
<td border="1"><i>Checksum</i><br/><font face="courier">52be83ef</font></td>
|
<td border="1"><i>Checksum</i><br/><font face="courier">52be83ef</font></td>
|
||||||
|
@ -44,7 +47,7 @@ getblocks [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4"><i>Header Hashes (Highest-Height First)</i><br /><font face="courier">db773c8f3b90ef...64f64f00000000<br/>459f16a1c695d0...f66d8000000000</font><br/><i>......18 more header hashes......</i></td>
|
<td colspan="4"><i>Header Hashes (Highest-Height First)</i><br /><font face="courier">aa5f7f1f823938...05108b24070000<br/>ab595df0e00813...6fe18aad030000</font><br/><i>......18 more header hashes......</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<text text-anchor="start" x="200" y="-230.3" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
<text text-anchor="start" x="200" y="-230.3" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
||||||
<polygon fill="none" stroke="black" points="100,-187.5 100,-221.5 186,-221.5 186,-187.5 100,-187.5"/>
|
<polygon fill="none" stroke="black" points="100,-187.5 100,-221.5 186,-221.5 186,-187.5 100,-187.5"/>
|
||||||
<text text-anchor="start" x="103" y="-208.3" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
<text text-anchor="start" x="103" y="-208.3" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
||||||
<text text-anchor="start" x="109.5" y="-194.3" font-family="Courier,monospace" font-size="14.00">f9beb4d9</text>
|
<text text-anchor="start" x="109.5" y="-194.3" font-family="Courier,monospace" font-size="14.00">bf0c6bbd</text>
|
||||||
<polygon fill="none" stroke="black" points="188,-187.5 188,-221.5 269,-221.5 269,-187.5 188,-187.5"/>
|
<polygon fill="none" stroke="black" points="188,-187.5 188,-221.5 269,-221.5 269,-187.5 188,-187.5"/>
|
||||||
<text text-anchor="start" x="193.5" y="-208.3" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
<text text-anchor="start" x="193.5" y="-208.3" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
||||||
<text text-anchor="start" x="191" y="-194.3" font-family="Courier,monospace" font-size="14.00">getblocks</text>
|
<text text-anchor="start" x="191" y="-194.3" font-family="Courier,monospace" font-size="14.00">getblocks</text>
|
||||||
|
@ -40,8 +40,8 @@
|
||||||
<text text-anchor="start" x="334.5" y="-137.3" font-family="Courier,monospace" font-size="14.00">20</text>
|
<text text-anchor="start" x="334.5" y="-137.3" font-family="Courier,monospace" font-size="14.00">20</text>
|
||||||
<polygon fill="none" stroke="black" points="100,-66.5 100,-128.5 415,-128.5 415,-66.5 100,-66.5"/>
|
<polygon fill="none" stroke="black" points="100,-66.5 100,-128.5 415,-128.5 415,-66.5 100,-66.5"/>
|
||||||
<text text-anchor="start" x="128" y="-115.3" font-family="Sans" font-style="italic" font-size="14.00">Header Hashes (Highest-Height First)</text>
|
<text text-anchor="start" x="128" y="-115.3" font-family="Sans" font-style="italic" font-size="14.00">Header Hashes (Highest-Height First)</text>
|
||||||
<text text-anchor="start" x="129.5" y="-101.3" font-family="Courier,monospace" font-size="14.00">db773c8f3b90ef...64f64f00000000</text>
|
<text text-anchor="start" x="129.5" y="-101.3" font-family="Courier,monospace" font-size="14.00">aa5f7f1f823938...05108b24070000</text>
|
||||||
<text text-anchor="start" x="129.5" y="-87.3" font-family="Courier,monospace" font-size="14.00">459f16a1c695d0...f66d8000000000</text>
|
<text text-anchor="start" x="129.5" y="-87.3" font-family="Courier,monospace" font-size="14.00">ab595df0e00813...6fe18aad030000</text>
|
||||||
<text text-anchor="start" x="148" y="-73.3" font-family="Sans" font-style="italic" font-size="14.00">......18 more header hashes......</text>
|
<text text-anchor="start" x="148" y="-73.3" font-family="Sans" font-style="italic" font-size="14.00">......18 more header hashes......</text>
|
||||||
<polygon fill="none" stroke="black" points="100,-30.5 100,-64.5 415,-64.5 415,-30.5 100,-30.5"/>
|
<polygon fill="none" stroke="black" points="100,-30.5 100,-64.5 415,-64.5 415,-30.5 100,-30.5"/>
|
||||||
<text text-anchor="start" x="139" y="-51.3" font-family="Sans" font-style="italic" font-size="14.00">Stopping Hash (Zero Is "No Stop")</text>
|
<text text-anchor="start" x="139" y="-51.3" font-family="Sans" font-style="italic" font-size="14.00">Stopping Hash (Zero Is "No Stop")</text>
|
||||||
|
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
@ -28,7 +28,7 @@ getdata [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td border="1"><i>Start String</i><br/><font face="courier">f9beb4d9</font></td>
|
<td border="1"><i>Start String</i><br/><font face="courier">bf0c6bbd</font></td>
|
||||||
<td border="1"><i>Command</i><br/><font face="courier">getdata</font></td>
|
<td border="1"><i>Command</i><br/><font face="courier">getdata</font></td>
|
||||||
<td border="1"><i>Size</i><br/><font face="courier">4609</font></td>
|
<td border="1"><i>Size</i><br/><font face="courier">4609</font></td>
|
||||||
<td border="1"><i>Checksum</i><br/><font face="courier">33e41222</font></td>
|
<td border="1"><i>Checksum</i><br/><font face="courier">33e41222</font></td>
|
||||||
|
@ -54,11 +54,11 @@ getdata [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Block</td>
|
<td>Block</td>
|
||||||
<td><font face="courier">4860eb18bf1b1620...688e9a8300000000</font></td>
|
<td><font face="courier">434341c0ecf9a2b4...d654121dd9070000</font></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Block</td>
|
<td>Block</td>
|
||||||
<td><font face="courier">bddd99ccfda39da1...065f626a00000000</font></td>
|
<td><font face="courier">bddd99ccfda39da1...ce1e57ccaf0b0000</font></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><i>...............126 more inventory entries...............</i></td>
|
<td colspan="2"><i>...............126 more inventory entries...............</i></td>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<text text-anchor="start" x="212.5" y="-245.8" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
<text text-anchor="start" x="212.5" y="-245.8" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
||||||
<polygon fill="none" stroke="black" points="80.5,-203 80.5,-237 212.5,-237 212.5,-203 80.5,-203"/>
|
<polygon fill="none" stroke="black" points="80.5,-203 80.5,-237 212.5,-237 212.5,-203 80.5,-203"/>
|
||||||
<text text-anchor="start" x="106.5" y="-223.8" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
<text text-anchor="start" x="106.5" y="-223.8" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
||||||
<text text-anchor="start" x="113" y="-209.8" font-family="Courier,monospace" font-size="14.00">f9beb4d9</text>
|
<text text-anchor="start" x="113" y="-209.8" font-family="Courier,monospace" font-size="14.00">bf0c6bbd</text>
|
||||||
<polygon fill="none" stroke="black" points="214.5,-203 214.5,-237 313.5,-237 313.5,-203 214.5,-203"/>
|
<polygon fill="none" stroke="black" points="214.5,-203 214.5,-237 313.5,-237 313.5,-203 214.5,-203"/>
|
||||||
<text text-anchor="start" x="229" y="-223.8" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
<text text-anchor="start" x="229" y="-223.8" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
||||||
<text text-anchor="start" x="235" y="-209.8" font-family="Courier,monospace" font-size="14.00">getdata</text>
|
<text text-anchor="start" x="235" y="-209.8" font-family="Courier,monospace" font-size="14.00">getdata</text>
|
||||||
|
@ -40,9 +40,9 @@
|
||||||
<text text-anchor="start" x="91" y="-105.8" font-family="Sans" font-style="italic" font-size="14.00">Type</text>
|
<text text-anchor="start" x="91" y="-105.8" font-family="Sans" font-style="italic" font-size="14.00">Type</text>
|
||||||
<text text-anchor="start" x="135" y="-105.8" font-family="Sans" font-style="italic" font-size="14.00">Unique Identifier (For Blocks, A Header Hash)</text>
|
<text text-anchor="start" x="135" y="-105.8" font-family="Sans" font-style="italic" font-size="14.00">Unique Identifier (For Blocks, A Header Hash)</text>
|
||||||
<text text-anchor="start" x="89" y="-83.8" font-family="Sans" font-size="14.00">Block</text>
|
<text text-anchor="start" x="89" y="-83.8" font-family="Sans" font-size="14.00">Block</text>
|
||||||
<text text-anchor="start" x="148.5" y="-83.8" font-family="Courier,monospace" font-size="14.00">4860eb18bf1b1620...688e9a8300000000</text>
|
<text text-anchor="start" x="148.5" y="-83.8" font-family="Courier,monospace" font-size="14.00">434341c0ecf9a2b4...d654121dd9070000</text>
|
||||||
<text text-anchor="start" x="89" y="-62.8" font-family="Sans" font-size="14.00">Block</text>
|
<text text-anchor="start" x="89" y="-62.8" font-family="Sans" font-size="14.00">Block</text>
|
||||||
<text text-anchor="start" x="148.5" y="-62.8" font-family="Courier,monospace" font-size="14.00">bddd99ccfda39da1...065f626a00000000</text>
|
<text text-anchor="start" x="148.5" y="-62.8" font-family="Courier,monospace" font-size="14.00">bddd99ccfda39da1...ce1e57ccaf0b0000</text>
|
||||||
<text text-anchor="start" x="107.5" y="-42.8" font-family="Sans" font-style="italic" font-size="14.00">...............126 more inventory entries...............</text>
|
<text text-anchor="start" x="107.5" y="-42.8" font-family="Sans" font-style="italic" font-size="14.00">...............126 more inventory entries...............</text>
|
||||||
<polygon fill="none" stroke="black" stroke-width="2" points="77,-28 77,-286 462,-286 462,-28 77,-28"/>
|
<polygon fill="none" stroke="black" stroke-width="2" points="77,-28 77,-286 462,-286 462,-28 77,-28"/>
|
||||||
</g>
|
</g>
|
||||||
|
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
@ -17,6 +17,9 @@ ibd -> inv:f1 -> sync [ dir = "back" ];
|
||||||
ibd [ label = "IBD\nNode", shape="none" ];
|
ibd [ label = "IBD\nNode", shape="none" ];
|
||||||
sync [ label = "Sync\nNode", shape="none" ];
|
sync [ label = "Sync\nNode", shape="none" ];
|
||||||
|
|
||||||
|
// Block 1 - 000007d91d1254d60e2dd1ae580383070a4ddffa4c64c2eeb4a2f9ecc0414343
|
||||||
|
// Block 2 - 00000bafcc571ece7c5c436f887547ef41b574e10ef7cc6937873a74ef1efeae
|
||||||
|
|
||||||
inv [ shape="plaintext", label=<
|
inv [ shape="plaintext", label=<
|
||||||
<table border="2" cellborder="1">
|
<table border="2" cellborder="1">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -28,7 +31,7 @@ inv [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td border="1"><i>Start String</i><br/><font face="courier">f9beb4d9</font></td>
|
<td border="1"><i>Start String</i><br/><font face="courier">bf0c6bbd</font></td>
|
||||||
<td border="1"><i>Command</i><br/><font face="courier">inv</font></td>
|
<td border="1"><i>Command</i><br/><font face="courier">inv</font></td>
|
||||||
<td border="1"><i>Size</i><br/><font face="courier">18003</font></td>
|
<td border="1"><i>Size</i><br/><font face="courier">18003</font></td>
|
||||||
<td border="1"><i>Checksum</i><br/><font face="courier">25173c57</font></td>
|
<td border="1"><i>Checksum</i><br/><font face="courier">25173c57</font></td>
|
||||||
|
@ -54,11 +57,11 @@ inv [ shape="plaintext", label=<
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><font face="courier">block</font></td>
|
<td><font face="courier">block</font></td>
|
||||||
<td><font face="courier">4860eb18bf1b1620...688e9a8300000000</font></td>
|
<td><font face="courier">434341c0ecf9a2b4...d654121dd9070000</font></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><font face="courier">block</font></td>
|
<td><font face="courier">block</font></td>
|
||||||
<td><font face="courier">bddd99ccfda39da1...065f626a00000000</font></td>
|
<td><font face="courier">bddd99ccfda39da1...ce1e57ccaf0b0000</font></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><i>...............498 more inventory entries...............</i></td>
|
<td colspan="2"><i>...............498 more inventory entries...............</i></td>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<text text-anchor="start" x="225.5" y="-245.8" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
<text text-anchor="start" x="225.5" y="-245.8" font-family="Sans" font-style="italic" font-size="14.00">Message Header</text>
|
||||||
<polygon fill="none" stroke="black" points="80,-203 80,-237 221,-237 221,-203 80,-203"/>
|
<polygon fill="none" stroke="black" points="80,-203 80,-237 221,-237 221,-203 80,-203"/>
|
||||||
<text text-anchor="start" x="110.5" y="-223.8" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
<text text-anchor="start" x="110.5" y="-223.8" font-family="Sans" font-style="italic" font-size="14.00">Start String</text>
|
||||||
<text text-anchor="start" x="117" y="-209.8" font-family="Courier,monospace" font-size="14.00">f9beb4d9</text>
|
<text text-anchor="start" x="117" y="-209.8" font-family="Courier,monospace" font-size="14.00">bf0c6bbd</text>
|
||||||
<polygon fill="none" stroke="black" points="223,-203 223,-237 327,-237 327,-203 223,-203"/>
|
<polygon fill="none" stroke="black" points="223,-203 223,-237 327,-237 327,-203 223,-203"/>
|
||||||
<text text-anchor="start" x="240" y="-223.8" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
<text text-anchor="start" x="240" y="-223.8" font-family="Sans" font-style="italic" font-size="14.00">Command</text>
|
||||||
<text text-anchor="start" x="262.5" y="-209.8" font-family="Courier,monospace" font-size="14.00">inv</text>
|
<text text-anchor="start" x="262.5" y="-209.8" font-family="Courier,monospace" font-size="14.00">inv</text>
|
||||||
|
@ -40,9 +40,9 @@
|
||||||
<text text-anchor="start" x="98.5" y="-105.8" font-family="Sans" font-style="italic" font-size="14.00">Type</text>
|
<text text-anchor="start" x="98.5" y="-105.8" font-family="Sans" font-style="italic" font-size="14.00">Type</text>
|
||||||
<text text-anchor="start" x="156" y="-105.8" font-family="Sans" font-style="italic" font-size="14.00">Unique Identifier (For Blocks, A Header Hash)</text>
|
<text text-anchor="start" x="156" y="-105.8" font-family="Sans" font-style="italic" font-size="14.00">Unique Identifier (For Blocks, A Header Hash)</text>
|
||||||
<text text-anchor="start" x="94" y="-83.8" font-family="Courier,monospace" font-size="14.00">block</text>
|
<text text-anchor="start" x="94" y="-83.8" font-family="Courier,monospace" font-size="14.00">block</text>
|
||||||
<text text-anchor="start" x="169.5" y="-83.8" font-family="Courier,monospace" font-size="14.00">4860eb18bf1b1620...688e9a8300000000</text>
|
<text text-anchor="start" x="169.5" y="-83.8" font-family="Courier,monospace" font-size="14.00">434341c0ecf9a2b4...d654121dd9070000</text>
|
||||||
<text text-anchor="start" x="94" y="-62.8" font-family="Courier,monospace" font-size="14.00">block</text>
|
<text text-anchor="start" x="94" y="-62.8" font-family="Courier,monospace" font-size="14.00">block</text>
|
||||||
<text text-anchor="start" x="169.5" y="-62.8" font-family="Courier,monospace" font-size="14.00">bddd99ccfda39da1...065f626a00000000</text>
|
<text text-anchor="start" x="169.5" y="-62.8" font-family="Courier,monospace" font-size="14.00">bddd99ccfda39da1...ce1e57ccaf0b0000</text>
|
||||||
<text text-anchor="start" x="120.5" y="-42.8" font-family="Sans" font-style="italic" font-size="14.00">...............498 more inventory entries...............</text>
|
<text text-anchor="start" x="120.5" y="-42.8" font-family="Sans" font-style="italic" font-size="14.00">...............498 more inventory entries...............</text>
|
||||||
<polygon fill="none" stroke="black" stroke-width="2" points="77,-28 77,-286 489,-286 489,-28 77,-28"/>
|
<polygon fill="none" stroke="black" stroke-width="2" points="77,-28 77,-286 489,-286 489,-28 77,-28"/>
|
||||||
</g>
|
</g>
|
||||||
|
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |