「Satoshi Client Block Exchange」を編集中
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
55行目: | 55行目: | ||
上記のすべてが、ブロックダウンロードプロセスでの「ジッタ」に大きく寄与します。これは、一定のダウンロード速度よりもユーザーの不満を感じます。 | 上記のすべてが、ブロックダウンロードプロセスでの「ジッタ」に大きく寄与します。これは、一定のダウンロード速度よりもユーザーの不満を感じます。 | ||
− | == | + | ==Footnotes== |
+ | 1. See pfrom->fInbound where pfrom is a CNode. | ||
− | + | 2. See ProcessMessage() in main.cpp where strCommand == "version". | |
− | |||
− | + | 3. See CBlockLocator in main.h. | |
− | + | 4. See Message: inventory in SendMessage in main.cpp. | |
− | + | 5. See Message: getdata at the end of SendMessage in main.cpp. | |
− | + | 6. See CNode::AskFor in net.h. | |
− | + | 7. See ProcessMessage() in main.cpp where strCommand =="getblocks". | |
− | |||
− | 7. main. | ||
− | |||
− | |||
+ | 8. See | ||
int nLimit = 500 + locator.GetDistanceBack(); | int nLimit = 500 + locator.GetDistanceBack(); | ||
in ProcessMessage in main.cpp where strCommand =="getblocks". | in ProcessMessage in main.cpp where strCommand =="getblocks". | ||
− | 9. | + | 9. See |
if (--nLimit <= 0 || nBytes >= SendBufferSize()/2) | if (--nLimit <= 0 || nBytes >= SendBufferSize()/2) | ||
in ProcessMessage() in main.cpp where strCommand =="getblocks". | in ProcessMessage() in main.cpp where strCommand =="getblocks". | ||
− | 10. | + | 10. See |
inline unsigned int SendBufferSize() { | inline unsigned int SendBufferSize() { | ||
return 1000*GetArg("-maxsendbuffer", 10*1000); } | return 1000*GetArg("-maxsendbuffer", 10*1000); } | ||
in net.h. | in net.h. | ||
− | 11. | + | 11. See pfrom->hashContinue = pindex->GetBlockHash(); |
in ProcessMessage() in main.cpp where strCommand =="getblocks". | in ProcessMessage() in main.cpp where strCommand =="getblocks". | ||
− | 12. | + | 12. See: if (inv.hash == pfrom->hashContinue) |
in ProcessMessage() in main.cpp where strCommand =="getdata". | in ProcessMessage() in main.cpp where strCommand =="getdata". | ||
− | 13. | + | 13. See: |
// Ask this guy to fill in what we're missing | // Ask this guy to fill in what we're missing | ||
if (pfrom) | if (pfrom) | ||
97行目: | 94行目: | ||
in ProcessBlock() in main.cpp. | in ProcessBlock() in main.cpp. | ||
− | 14. | + | 14. See: |
else if (inv.type == MSG_BLOCK && mapOrphanBlocks.count(inv.hash)) | else if (inv.type == MSG_BLOCK && mapOrphanBlocks.count(inv.hash)) | ||
pfrom->PushGetBlocks(pindexBest, GetOrphanRoot(mapOrphanBlocks[inv.hash])); | pfrom->PushGetBlocks(pindexBest, GetOrphanRoot(mapOrphanBlocks[inv.hash])); | ||
in ProcessMessage() in main.cpp where strCommand =="inv". | in ProcessMessage() in main.cpp where strCommand =="inv". | ||
− | 15. | + | 15. See: |
// Recursively process any orphan blocks that depended on this one | // Recursively process any orphan blocks that depended on this one | ||
in ProcessBlock() in main.cpp. | in ProcessBlock() in main.cpp. | ||
− | 16. | + | 16. See the last block of code in AcceptBlock in main.cpp. |
− | 17. | + | 17. See: |
if (nBestHeight > (pnode->nStartingHeight != -1 ? pnode->nStartingHeight - 2000 : 134444)) | if (nBestHeight > (pnode->nStartingHeight != -1 ? pnode->nStartingHeight - 2000 : 134444)) | ||
in AcceptBlock() in main.cpp. | in AcceptBlock() in main.cpp. | ||
− | 18. | + | 18. See: |
if (nPos > ReceiveBufferSize()) { | if (nPos > ReceiveBufferSize()) { | ||
in ThreadSocketHandler2() in net.cpp. | in ThreadSocketHandler2() in net.cpp. | ||
− | 19. | + | 19. See: |
if (pnode->fDisconnect || | if (pnode->fDisconnect || | ||
(pnode->GetRefCount() <= 0 && pnode->vRecv.empty() && pnode->vSend.empty())) | (pnode->GetRefCount() <= 0 && pnode->vRecv.empty() && pnode->vSend.empty())) |