btc的协议有很多,本文主要分析网络通信方面的协议
一、Message

一次通信以message为单位,具体结构如上图:
即最终序列化的字节流,是上图所述格式
代码实现:
(1)通用接口

message 接口,定义通用方法,由具体的消息类型去实现
- BtcDecode BtcEnode 将结构化的消息体序列化为字节流 (对应payload) 或者将字节流实例化为某种消息格式
- Commd 返回具体消息的命令字符串,标识不同的命令
- MaxPayloadLength 最大payload 长度
(2)通用header

message header 结构体,定义通用部分字段
(3)发送

由上图代码可知,发送message时,先发送header再发送payload
二、具体消息实现举例:MsgTx

message tx类型的具体实现
(1)Command()

(2)MaxPayloadLength

(3)BtcDecode BtcEnode 不再赘述,具体可参考 btcd
网友评论