Skip to content

LWC 协议报文定义

gaochun edited this page Feb 8, 2021 · 7 revisions

0 版本

版本号 内容 日期
01 结构定义 2020-12-30 gaochun
02 加入sendtx命令 2021-01-07 gaochun

1 请求报文结构

[协议版本号 2字节 | 客户端deviceid长度 1字节 | 客户端deviceid n字节 | 数据hash 32字节] + [命令类型 2字节 | 请求数据 n字节] + [crc32]


2 响应报文结构

[协议版本号 2字节 | 请求数据hash 32字节 | 错误代码 2字节] + [命令类型 2字节 | 响应数据 n字节] + [crc32]


3 报文内容

3.1 获取UTXO(listunspent)

a.命令类型:0x0011

b.请求数据

序号 名称 描述 Bytes
1 nonce 非重复事务 ID ,由 LWC 分配非 0 唯一 ID 4
2 address lwc钱包地址,0x01 + publickey 33
3 forkid 订阅的分支id 32

c.响应数据

序号 名称 描述 Bytes
1 nonce 对应请求中的nonce 4
2 blockhash 当前分支最后块hash 32
3 blockhight 当前分支最后区块高度 4
4 blocktime 当前分支的最后区块时间戳 4
5 utxo num utxo数量 2
6 utxo list utxo列表 n

d.UTXO相关结构和数据定义

序号 名称 描述 Bytes
1 txid 所属交易的hash值 32
2 out 对应UTXO的输出序号 1
3 timestamp 交易时间 4
4 type 所属的tx类型 2
5 amount UTXO的数值 8
6 sender 发送tx的地址 33
7 lockuntil UTXO的冻结高度 4
8 datasize tx data的长度 2
9 data tx data binary datasize

3.2 发送交易(sendtx)

a. 命令类型:0x0012

b.请求数据

序号 名称 描述 bytes
1 nonce 非重复事务ID ,由LWC分配非0唯一ID 4
2 txid 交易ID 32
3 forkid 发送 Tx 所属的分支 ID 32
4 datasize txdata的字节长度 2
5 txdata 待发送 Tx 序列化数据 datasize

c.响应数据

序号 名称 描述 Bytes
1 nonce 同对应发送交易请求中的nonce 4
2 txid 新交易上链产生的txid 32

d.TxData数据结构定义

序号 数据项 类型 传输大小 说明
1 nVersion uint16 2 byte 版本号
2 nType uint16 2 byte 类型
3 nTimeStamp uint32 4 byte 交易创建时间戳
4 nLockUntil uint32 4 byte 冻结高度
5 hashAnchor uint256 32 byte 有效交易起始hash
6** size0 uint8 1 byte 序列长度,第6项数据为vInput序列
... uint8 0~8 byte
7(vInput) hash + n uint256 & uint8 size0 * (32 + 1) 序列中单项的分布,包括前序输入的hash和索引n
8(sendTo) prefix + data uint8 & uint256 1 + 32 byte 目标地址的前缀(标识地址类型) + 地址
9 nAmount int64 8 byte 交易金额
10 nTxFee int64 8 byte 交易费
11** size1 uint8 1 byte 序列长度,第11项数据为字节序列
... uint8 0~8 byte
12 vchData bytes size1 * 1 byte 交易携带的数据
13** size2 uint8 1 byte 序列长度,第13项数据为字节序列
... uint8 0~8 byte
14 vchSig bytes size2 * 1 byte 签名

Clone this wiki locally