-
Notifications
You must be signed in to change notification settings - Fork 0
LWC 协议报文定义
gaochun edited this page Feb 8, 2021
·
7 revisions
| 版本号 | 内容 | 日期 | |
|---|---|---|---|
| 01 | 结构定义 | 2020-12-30 | gaochun |
| 02 | 加入sendtx命令 | 2021-01-07 | gaochun |
[协议版本号 2字节 | 客户端deviceid长度 1字节 | 客户端deviceid n字节 | 数据hash 32字节] + [命令类型 2字节 | 请求数据 n字节] + [crc32]
[协议版本号 2字节 | 请求数据hash 32字节 | 错误代码 2字节] + [命令类型 2字节 | 响应数据 n字节] + [crc32]
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 |
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 | 签名 |