XDAG技術(shù)詳解6-塊格式(偽塊)

偽塊是一些命令請求和響應(yīng),格式上相對隨意,每一個都有點(diǎn)細(xì)節(jié)上的不同,但總體風(fēng)格類似。

image-20191128140949189.png

說明:

  1. 第一個8字節(jié):仍然是傳輸頭。
  2. 第二個8字節(jié):只使用了后面8-bit,head-type=0,sub-type是真正的命令類型,其他位置清零。
  3. 第三個8字節(jié):大多數(shù)時候放start_time,但是不同的命令可能不同。
  4. 第四個8字節(jié):大多數(shù)時候放end_time。

具體到每個不同的命令,細(xì)節(jié)又略有不同。

  1. 批量block請求

    1. head(field0)

      sub-type = 0, // XDAG_MESSAGE_BLOCKS_REQUEST

      start_time位置:批量時間起點(diǎn)。

      end_time位置:批量時間終點(diǎn)。

    2. field1

      第一個8字節(jié)放一個request_id,用作消息序列號。后24字節(jié)清零。

    3. 后面field

      從field2開始,直接存儲統(tǒng)計信息的結(jié)構(gòu)體和所有已知hosts地址。

  2. 批量block請求響應(yīng)

    1. head(field0)

      sub-type = 1, // XDAG_MESSAGE_BLOCKS_REPLY

      start_time位置:填充了返回的block數(shù)量

      end_time位置:保留了與請求內(nèi)容一致,但實(shí)際上無用。

    2. field1

      保持請求時的request_id不變,返回時候接收者需要用這個校驗(yàn)。

    3. 后面field

      與請求類似,返回block中也填充自己已知的統(tǒng)計信息和hosts地址。

  3. sums請求

    1. head(field0)

      sub-type = 2, // XDAG_MESSAGE_SUMS_REQUEST

      start_time位置:sums時間起點(diǎn)。

      end_time位置:sums時間終點(diǎn)。

    2. field1

      與批量block請求相同,放request_id。

    3. 后面field

      與批量block請求相同,放統(tǒng)計信息。

  4. sums請求響應(yīng)

    除了sub-type=3(XDAG_MESSAGE_SUMS_REPLY)外,其他填充模式與批量block請求響應(yīng)一樣。

  5. 單個block請求

    1. head(field0)

      sub-type = 6, // XDAG_MESSAGE_BLOCK_REQUEST

      start_time位置:無意義,清零。

      end_time位置:無意義,清零。

    2. field1

      放請求block的hash。

    3. 后面field

      與其他block類似,放統(tǒng)計信息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容