「Satoshi Client Block Exchange」を編集中

移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
9行目: 9行目:
 
getblocksメッセージは、遠隔ノートがノード間の最新の共通ブロックを見つけるのを助けるために、要求側ノードが既に所有している複数のブロックハッシュを含む。ハッシュのリストは、最新のブロックから始まり、10に戻り、起点ブロックに達するまで指数関数的に2倍になります。[3]両方のノードは起源ブロックでハードコードされているので、そこでの開始が最も少ないことが保証されています。そのブロックが何らかの理由で一致しない場合、ブロックは交換されません。
 
getblocksメッセージは、遠隔ノートがノード間の最新の共通ブロックを見つけるのを助けるために、要求側ノードが既に所有している複数のブロックハッシュを含む。ハッシュのリストは、最新のブロックから始まり、10に戻り、起点ブロックに達するまで指数関数的に2倍になります。[3]両方のノードは起源ブロックでハードコードされているので、そこでの開始が最も少ないことが保証されています。そのブロックが何らかの理由で一致しない場合、ブロックは交換されません。
  
Hello my family member! I want to say that this article is amazing, great written and come with almost all significant infos. Id like to peer extra posts like this . ckbafbbefakakffd
+
==在庫メッセージ==
 +
 
 +
getblocks要求を受信したノードは実際には送信しないことに注意してください
 +
応答のフルブロック。ノードは、「inv」メッセージを送信します。
 +
リクエストに合った一連のブロックのハッシュが検証されます
 +
ノードが実際にリモートノードが送信するブロックを送信していることを確認します
 +
持っていない(しかし、遠隔ノードがフルブロックをまだ望んでいないと推測する)。
 +
 
 +
ローカルノードが「inv」メッセージを受信すると、ローカルノードは、
 +
ブロックには "getdata"というメッセージがあります。下記参照。
 +
 
 +
しかし、まず、遠隔ノードがどのようにして "inv"メッセージを送信するかの詳細がここにあります
 +
ローカルノードによって送信された「getblocks」要求に応答して、リモート
 +
ノードは、pFrom-> PushInventoryを呼び出します。これは、
 +
ブロックを要求したノードを表します(この中のローカルノード
 +
ウォークスルー)、PushInventoryはvInventoryToSendにブロックハッシュを追加します
 +
CNodeの変数。 [https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp main.cpp]のSendMessages関数は、
 +
vInventoryToSendからアイテムを取り出し、それをvInv変数に追加します。
 +
彼らが本当に送る準備ができていることを意味します。[4]
 +
別個の変数の理由は、一部の在庫アイテム
 +
(今のトランザクションのみ)は、リモートノードに「流される」可能性があり、
 +
それは彼らがすぐに送られないようにすることを意味します。
 +
vInv変数が1000個のエントリでいっぱいになると、メッセージがキューに入れられます
 +
それらの1000のエントリで、ループが続行されます。最後に、
 +
残りのエントリは最後の「inv」メッセージで送信されます。
 +
 
 +
ローカルノードが「inv」メッセージを受信すると、ローカルノードは、
 +
"getdata"メッセージでブロックします。正確には、ノードはpfrom-> AskFor
 +
そのブロックを要求すると、そのメソッドはブロックの要求をキューに入れます
 +
mapAskFor、そして汎用目的のSendMessage()は "getdata"リクエストを送信します
 +
地図からの1000のエントリのバッチで。[5]
 +
 
 +
コードでは、2分ごとに冗長な要求を制限しようとします。
 +
メッセージを遅らせるmapAlreadyAskedForというマップを使用して同じブロック
 +
必要に応じて[6]
  
 
Hello!
 
Hello!

tezos-wikiへの投稿はすべて、a Creative Commons Attribution-ShareAlike 3.0 License (詳細はTezos-wiki:著作権を参照)のもとで公開したと見なされることにご注意ください。 自分が書いたものが他の人に容赦なく編集され、自由に配布されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。 著作権保護されている作品は、許諾なしに投稿しないでください!

取り消し | 編集の仕方 (新しいウィンドウで開きます)