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

說明:
- 第一個8字節(jié):仍然是傳輸頭。
- 第二個8字節(jié):只使用了后面8-bit,head-type=0,sub-type是真正的命令類型,其他位置清零。
- 第三個8字節(jié):大多數(shù)時候放start_time,但是不同的命令可能不同。
- 第四個8字節(jié):大多數(shù)時候放end_time。
具體到每個不同的命令,細(xì)節(jié)又略有不同。
-
批量block請求
-
head(field0)
sub-type = 0, //
XDAG_MESSAGE_BLOCKS_REQUESTstart_time位置:批量時間起點(diǎn)。
end_time位置:批量時間終點(diǎn)。
-
field1
第一個8字節(jié)放一個request_id,用作消息序列號。后24字節(jié)清零。
-
后面field
從field2開始,直接存儲統(tǒng)計信息的結(jié)構(gòu)體和所有已知hosts地址。
-
-
批量block請求響應(yīng)
-
head(field0)
sub-type = 1, //
XDAG_MESSAGE_BLOCKS_REPLYstart_time位置:填充了返回的block數(shù)量
end_time位置:保留了與請求內(nèi)容一致,但實(shí)際上無用。
-
field1
保持請求時的request_id不變,返回時候接收者需要用這個校驗(yàn)。
-
后面field
與請求類似,返回block中也填充自己已知的統(tǒng)計信息和hosts地址。
-
-
sums請求
-
head(field0)
sub-type = 2, //
XDAG_MESSAGE_SUMS_REQUESTstart_time位置:sums時間起點(diǎn)。
end_time位置:sums時間終點(diǎn)。
-
field1
與批量block請求相同,放request_id。
-
后面field
與批量block請求相同,放統(tǒng)計信息。
-
-
sums請求響應(yīng)
除了sub-type=3(
XDAG_MESSAGE_SUMS_REPLY)外,其他填充模式與批量block請求響應(yīng)一樣。 -
單個block請求
-
head(field0)
sub-type = 6, //
XDAG_MESSAGE_BLOCK_REQUESTstart_time位置:無意義,清零。
end_time位置:無意義,清零。
-
field1
放請求block的hash。
-
后面field
與其他block類似,放統(tǒng)計信息。
-