「Satoshi Client Block Exchange」を編集中
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
20行目: | 20行目: | ||
リモートノードが「バッチ継続メカニズム」を守らないなどの何らかの理由でバッチ処理が中断された場合、または切断が発生した場合は、プロセスを再起動する方法があります。 新しいブロックが解決され、[16]の周りに宣伝されると、後ろにあるノードは "inv"の新しいブロックに気づき、メッセージを送信したノードから "getblocks"更新を要求するようトリガーします。 これは、後ろにあるノードが現在あるブロックチェーンのどこからでもブロックが送信されるようにします。 | リモートノードが「バッチ継続メカニズム」を守らないなどの何らかの理由でバッチ処理が中断された場合、または切断が発生した場合は、プロセスを再起動する方法があります。 新しいブロックが解決され、[16]の周りに宣伝されると、後ろにあるノードは "inv"の新しいブロックに気づき、メッセージを送信したノードから "getblocks"更新を要求するようトリガーします。 これは、後ろにあるノードが現在あるブロックチェーンのどこからでもブロックが送信されるようにします。 | ||
− | == | + | == Long Orphan Chains == |
− | + | In various tests, it has proven relatively common (say more than one | |
+ | in ten) to discover nodes that are significantly behind on the block | ||
+ | chain, probably because they are in the process of catching up as well. | ||
+ | Since a well connected node will have at least 8 and up to dozens of | ||
+ | connections, it is fairly likely that a new node will connect to | ||
+ | another node that is also catching up. | ||
− | + | Nodes that are catching up will advertise the blocks they are processing, | |
+ | as they accept blocks into their main chain, to every other node.[16] | ||
+ | While there is code to prevent advertising old blocks before a certain | ||
+ | checkpoint, that code also has a clause that does advertise blocks to | ||
+ | remote nodes if the block height is over the remote node's current best | ||
+ | height minus 2000 blocks.[17] This appears to allow nodes to "help" other | ||
+ | nodes catch up, even if they are both processing old blocks. | ||
− | + | These advertisements cause the local node to request those blocks | |
+ | from the remote node, which could be blocks well into the future compared | ||
+ | to what has been processed locally. Due to the way blocks are requested, | ||
+ | the remote node will send a large batch of blocks in response and will | ||
+ | continue sending blocks to the local node until it reaches the end. | ||
+ | Note that this is likely to occur at the same time the local node is | ||
+ | downloading earlier blocks on the main chain from another node. That | ||
+ | process may eventually catch up with the orphan chain and produce a | ||
+ | very, very long operation to revalidate and connect up all the orphan | ||
+ | blocks. Orphan chains over ten thousand blocks long, taking over an hour | ||
+ | to process are possible. | ||
+ | |||
+ | Therefore, two nodes talking to each other that are both catching up can | ||
+ | lead to suboptimal interactions, especially when one both are far behind | ||
+ | and one is far ahead of the other. | ||
− | |||
==洪水制限効果 == | ==洪水制限効果 == |