Get desktop application:
View/edit binary Protocol Buffers messages
关闭chain33
payAddr 可以支持 1. 地址 2. 私钥
支持构造多笔nobalance的交易 payAddr 可以支持 1. 地址 2. 私钥
交易接口
导出私钥
导出全部私钥到文件
seed 创建seed
根据账户lable信息获取账户地址
根据label获取账户地址
钱包接口 获取钱包账户信息
获取地址所以合约下的余额
地址列表
执行器名称
Balance Query 获取余额
查询一个地址列表在某个执行器中余额
地址列表
执行器名称
通过block hash 获取对应的blocks信息
resp
通过block seq 获取对应的blocks hash 信息
区块浏览器接口 /
区块视图 head : 区块头信息 txCount :区块上交易个数 txHashes : 区块上交易的哈希列表
chain33 对外提供服务的接口 区块链接口
获取系统致命故障信息
获取是否达到fork高度
获取区块头信息
获取交易的十六进制编码
获取最新的区块头
获取最新的Mempool
缓存接口
通过区块高度列表+title获取平行链交易
通过高度列表和title获取平行链交易
通过seq以及title获取对应平行连的交易
通过seq区间和title请求平行链的交易
获取当前节点连接的其他节点信息
* p2p get peer req
获取最新的ProperFee
获取seed
get add block's sequence by hash
通过地址获取交易信息
通过哈希数组获取对应的交易
获取钱包状态
钱包当前的状态 isWalletLock : 钱包是否锁状态,true锁定,false解锁 isAutoMining :钱包是否开启挖矿功能,true开启挖矿,false关闭挖矿 isHasSeed : 钱包是否有种子,true已有,false没有 isTicketLock :钱包挖矿买票锁状态,true锁定,false解锁,只能用于挖矿转账
导入钱包私钥
bitcoin 的私钥格式
从文件中批量导入私钥
ntpclock是否同步
是否同步
获取拥有此title交易的区块高度
通过指定title以及height翻页获取拥有此title交易的区块高度列表
给钱包上锁
合并钱包余额
获取当前节点的网络信息
* p2p get net info req
* 当前节点的网络信息
创建钱包账户
获取随机HASH
根据哈希查询交易
保存seed
存储钱包的种子 seed : 钱包种子 passwd :钱包密码
发送交易
发送交易 from : 打出地址 to :接受地址 amount : 转账额度 note :转账备注
发送交易
设置标签
设置钱包密码
设置交易手续费
签名交易
签名的模式类型 0:普通交易 1:隐私交易 int32 mode = 6;
bytes newExecer = 9;
给钱包解锁
钱包解锁 passwd : 钱包密码 timeout :钱包解锁时间,0,一直解锁,非0值,超时之后继续锁定 walletOrTicket :解锁整个钱包还是只解锁挖矿买票功能,1只解锁挖矿买票,0解锁整个钱包
获取程序版本
* 当前软件版本信息
获取钱包的交易列表
获取钱包交易的详细信息 fromTx : []byte( Sprintf("%018d", height*100000 + index), 表示从高度 height 中的 index 开始获取交易列表; 第一次传参为空,获取最新的交易。) count :获取交易列表的个数。 direction :查找方式;0,上一页;1,下一页。
广播区块
广播交易
grpc 收集inpeers
获取地址
* 返回请求地址列表的社保
/对方节点返回的其他节点信息
获取区块,最高200
* 获取区间区块
获取数据
* 通过invs 下载数据
/ p2p版本
/ invs 数组
* inv 返回数据
获取头部
* p2p 获取区块区间头部信息协议
* p2p 区块头传输协议
获取mempool
* 获取mempool
获取 peerinfo
* 请求获取远程节点的节点信息
/ p2p版本
PING
* 心跳返回包
grpc server 读客户端发送来的数据
grpc server 发送数据给客户端
获取软件的版本号
版本
* P2P 版本返回
获取p2p协议的版本号
区块追赶主链状态,用于判断本节点区块是否已经同步好
token 对外提供服务的接口 区块链接口
Account 的信息
Used in: , , , , , , ,
coins标识,目前只有0 一个值
账户可用余额
账户冻结余额
账户的地址
Account 的列表
Used as response type in: chain33.GetBalance, token.GetTokenBalance
配置修改部分
Used in:
Used in: ,
assert transfer struct
Used in: ,
Used in: , ,
Used in: , ,
Used in: , ,
批量查询有可能导致数据库崩溃
参考Header解释 mainHash 平行链上使用的字段,代表这个区块的主链hash
Used in: , , , , ,
区块体信息 txs : 区块上所有交易列表 receipts :区块上所有交易的收据信息列表 mainHash : 主链区块hash,平行链使用 mainHeight :主链区块高度,平行链使用 hash : 本链区块hash height :本链区块高度
Used in:
BlockBodys
区块详细信息 block : 区块信息 receipts :区块上所有交易的收据信息列表
Used in: , ,
title平行链交易所在主链区块的信息
Used in:
节点ID以及对应的Block
区块回执 receipts :区块上所有交易的收据信息列表 hash : 本链区块hash height :本链区块高度
Used as response type in: chain33.GetBlockBySeq
Used as field type in:
Used in:
通过block hash记录block的操作类型及add/del:1/2
Used in: , ,
resp
* p2p 广播数据协议
Used as request type in: p2pgservice.ServerStreamRead
Used as response type in: p2pgservice.ServerStreamSend
cert合约action
证书启用
Used in:
用户证书校验
Used in:
带证书签名结构
证书更新
Used in:
Used as request type in: chain33.ExecWallet, chain33.QueryChain, chain33.QueryConsensus
扩展字段,用于额外的用途
区块链状态 currentHeight : 区块最新高度 mempoolSize :内存池大小 msgQueueSize : 消息队列大小
记录平行链第一笔交易的index,以及平行链的roothash title:子链名字,主链的默认是main startIndex:子链第一笔交易的索引 childHash:子链的根hash txCount:子链交易的数量
ChunkInfo用于记录chunk的信息
Used in:
ChunkInfoMsg 用于消息传递
ChunkRecords
用于比较最优区块的消息结构
message for execs.coins
Used in:
Used in:
Used in:
投票值 1:ok 2:nok
内容存证模型
Used in: ,
长度需要小于512k
自定义的主键,可以为空,如果没传,则用txhash为key
Op 0表示创建 1表示追加add
字符串值
Used in:
default signed addr
创建/调用合约的请求结构
转账金额
消耗限制,默认为Transaction.Fee
gas价格,默认为1
合约数据
交易参数
合约别名,方便识别
交易备注
调用合约地址
创建/调用合约的请求结构
转账金额
消耗限制,默认为Transaction.Fee
gas价格,默认为1
合约数据
交易参数
合约别名,方便识别
交易备注
调用合约地址
存放合约固定数据
Used in:
绑定ABI数据 ForkEVMABI
存放合约固定数据
合约对象信息
存放合约变化数据
Used in:
存放合约变化数据
一条evm event log数据
Used in:
多条evm event log数据
Used in:
用于保存EVM只能合约中的状态数据变更
Used in:
一个块中包含的多条evm event log数据
Used in:
多个块中包含的多条evm event log数据
Used in:
加密存证数据运算
Used in: ,
源操作数存证索引
待操作数据
隐私存证模型,如果一个文件需要存证,且不公开内容,可以选择将源文件通过对称加密算法加密后上链
Used in: ,
存证明文内容的hash值,推荐使用sha256哈希,限制256位得摘要值
源文件得密文,由加密key及nonce对明文加密得到该值。
加密iv,通过AES进行加密时制定随机生成的iv,解密时需要使用该值
自定义的主键,可以为空,如果没传,则用txhash为key
字符串值
分享隐私存证模型,需要完备的sdk或者相应的密钥库支持
Used in: ,
存证明文内容的hash值,推荐使用sha256哈希,限制256位得摘要值
源文件得密文。,用公钥地址加密
公钥
自定义的主键,可以为空,如果没传,则用txhash为key
字符串值
存储block高度和hash
0 query, 1 set, -1 clear
Used in:
导出block文件头信息
哈希存证模型,推荐使用sha256哈希,限制256位得摘要值
Used in: ,
长度固定为32字节
自定义的主键,可以为空,如果没传,则用txhash为key
字符串值
区块头信息 version : 版本信息 parentHash :父哈希 txHash : 交易根哈希 stateHash :状态哈希 height : 区块高度 blockTime :区块产生时的时标 txCount : 区块上所有交易个数 difficulty :区块难度系数, signature :交易签名
Used as response type in: chain33.GetLastHeader
Used as field type in: , , , , , , ,
通过seq获取区块的header信息
Used in:
批量推送区块的header信息
Used in:
resp
Used as response type in: chain33.GetHeaders
Used as field type in:
记录本平行链所在区块的信息以及子根hash值 childHash:平行链子roothash值 startIndex:此平行链的第一笔交易的index索引值 childHashIndex:此平行链子roothash在本区块中的索引值 txCount:此平行链交易的个数
Used in:
Used in:
Used as request type in: chain33.GetBlockBySeq
Used as response type in: chain33.GetFork, chain33.GetLastBlockSequence, chain33.GetSequenceByHash
* inv 请求协议
Used in:
ty=MSG_TX MSG_BLOCK
Used in: ,
类型,数据类型,MSG_TX MSG_BLOCK
/哈希
高度
ntp时钟状态
Used in: ,
* p2p 轻量级区块, 广播交易短哈希列表
Used in:
轻量级交易广播
Used in:
链接存证模型
Used in: ,
存证内容的链接,可以写入URL,或者其他可用于定位源文件得线索.
源文件得hash值,推荐使用sha256哈希,限制256位得摘要值
自定义的主键,可以为空,如果没传,则用txhash为key
字符串值
Used in:
local
Used in:
如果需要这个项可以单独做一个域存储
Used in:
* p2p 发送区块协议
Used as request type in: p2pgservice.BroadCastBlock
Used as field type in:
区块交易数据返回
Used in:
请求区块内交易数据
Used in:
* 节点外网信息
/节点的外网地址
节点是否在外网
* 获取对方节点所连接的其他节点地址的请求包
Used as request type in: p2pgservice.GetAddr, p2pgservice.GetAddrList
Used as response type in: p2pgservice.GetBlocks, p2pgservice.GetMemPool
* 节点信息
Used as response type in: p2pgservice.GetPeerInfo
Used as field type in:
/节点的IP地址
/节点的外网端口
/节点的名称
/ mempool 的大小
/节点当前高度头部数据
* P2P 心跳包
Used as request type in: p2pgservice.CollectInPeers, p2pgservice.CollectInPeers2, p2pgservice.Ping, p2pgservice.ServerStreamSend, p2pgservice.SoftVersion
Used as field type in:
/随机数
/节点的外网地址
/节点的外网端口
签名
节点收到区块或交易hash, 当在本地不存在时,需要请求重发完整交易或区块 采用统一结构减少消息类型
Used in:
Used in: ,
* p2p 发送交易协议
Used as request type in: p2pgservice.BroadCastTx
Used as field type in:
请求完整交易数据
Used in:
* p2p节点间发送版本数据结构
Used as request type in: p2pgservice.Version, p2pgservice.Version2
Used as response type in: p2pgservice.Version2
/当前版本
/服务类型
/时间戳
/数据包的目的地址
/数据发送的源地址
/随机数
/用户代理
/当前节点的高度
共识节点索引绑定挖矿地址
bind addr
para bind miner
Used in:
1: bind, 2:unbind
bind coins count
consensus node addr
Used in: ,
miner addr
1: bind, 2:unbind
bind coins count
consensus node addr
action bind block time
action bind block height
bind global only index to the consensus node
共识节点绑定全局状态
Used in:
total bind count to the consensus node
Used in:
平行链区块详细信息 blockdetail : 区块详细信息 sequence :区块序列号 isSync:写数据库时是否需要刷盘
Used in:
bind nodes
Used in: ,
本地址私钥对应的bls聚合签名的公钥
Used in:
Used in: ,
nodegroup申请需要autonomy社区自治board审核
Used in: ,
Used in: ,
共识节点
唯一miner 地址
是否也查询未绑定的
Used in: ,
广义配置类型
Used in:
配置类型
type:平行链交易所在区块add/del操作,方便平行链回滚 header:平行链交易所在区块头信息 txDetails:本区块中指定title平行链的所有交易 proofs:对应平行链子roothash的存在证明路径 childHash:此平行链交易的子roothash index:对应平行链子roothash在整个区块中的索引
Used in:
定义para交易结构
Used as response type in: chain33.GetParaTxByHeight, chain33.GetParaTxByTitle
跨链转账相关
input
跨链类型 0:to para, 1:to main
主链部分
平行链部分
Used in:
Used in:
addrs' bitmap
addr's array
Used in:
ing, done
Used in:
action
Used in: , , , ,
记录不同blockHash的详细数据
Used in:
stateDB
Used in:
LocalDB title-height-addr : txHash
* peer 信息
Used in:
* peer 列表
Used as response type in: chain33.GetPeerInfo, p2pgservice.CollectInPeers
Used in:
Used in: ,
0:代表区块;1:代表区块头信息;2:代表交易回执
允许订阅多个类型的交易回执
根据txhash去状态数据库中查询存储内容
bytes execer = 2;
ty = 0 -> error Receipt ty = 1 -> CutFee //cut fee ,bug exec not ok ty = 2 -> exec ok
Used in:
铸币账户余额增加
铸币前
铸币后
账户余额改变的一个交易回报(coins内)
转移前
转移后
Used in: , , , , , , ,
合约创建/调用日志
创建合约返回的代码
json格式化后的返回值
合约创建/调用日志
合约创建时才会返回此内容
创建合约返回的代码
账户余额改变的一个交易回报(合约内)
合约地址
转移前
转移后
Used in: ,
node addr
self addr
miner addr
node addr
logs
(message has no fields)
log
证书信息
返回证书信息
0:正常 1:注销
返回用户信息
Used as response type in: chain33.CloseQueue, chain33.DumpPrivkeysFile, chain33.ExecWallet, chain33.GetBlocks, chain33.ImportPrivkeysFile, chain33.IsNtpClockSync, chain33.IsSync, chain33.Lock, chain33.QueryChain, chain33.QueryConsensus, chain33.SaveSeed, chain33.SendTransaction, chain33.SetPasswd, chain33.SetTxFee, chain33.UnLock, p2pgservice.BroadCastBlock, p2pgservice.BroadCastTx, p2pgservice.SoftVersion
对应请求序列存在标识数组,存在则true,否则false
存在情况的总个数
Used as response type in: chain33.GetBlockHash, chain33.QueryRandNum, chain33.SendToAddress
Used as response type in: chain33.GenSeed, chain33.GetSeed
Used as response type in: chain33.CreateNoBalanceTransaction, chain33.CreateNoBalanceTxs, chain33.SignRawTx
Used in:
Used as response type in: chain33.GetLastMemPool, chain33.GetMemPool
Used as request type in: chain33.GetAddrOverview, chain33.GetTransactionByAddr
表示取所有/from/to/其他的hash列表
获取区块信息 start : 获取区块的开始高度 end :获取区块的结束高度 Isdetail : 是否需要获取区块的详细信息 pid : peer列表
Used as request type in: chain33.GetBlocks, chain33.GetHeaders
指定交易哈希,查找是否存在
获取ChunkRecord信息 start : 获取Chunk的开始高度 end :获取Chunk的结束高度 Isdetail : 是否需要获取所有Chunk Record 信息,false时候获取到chunkNum--->chunkhash的KV对,true获取全部 pid : peer列表
申请证书
获取CRL请求
根据序列化查询证书
获取用户信息
Used as request type in: chain33.GetBlockOverview, chain33.GetHexTxByHash, chain33.GetSequenceByHash, chain33.QueryTransaction
Used as request type in: chain33.GetBlockByHashes, chain33.GetTransactionByHashes
Used as request type in: chain33.CloseQueue, chain33.GetAccounts, chain33.GetFatalFailure, chain33.GetLastBlockSequence, chain33.GetLastHeader, chain33.GetLastMemPool, chain33.GetWalletStatus, chain33.IsNtpClockSync, chain33.IsSync, chain33.Lock, chain33.Version, paracross.IsSync
Used as response type in: p2pgservice.ServerStreamRead
(message has no fields)
node query
query
Used as request type in: chain33.DumpPrivkeysFile, chain33.ImportPrivkeysFile
query
用户注册请求
用户名
用户ID
用户公钥
请求方签名
证书注销请求
请求方签名
用户注销请求
用户ID
请求方签名
表示取所有/from/to/其他的hash列表
query
通过交易hash获取交易列表,需要区分是短hash还是全hash值
Used in:
commitDone chainHeight
环签名类型时,签名字段存储的环签名信息
环签名中的一组签名数据
Used in:
Used in: , , ,
Used in: , ,
Used in:
对于一个交易组中的交易,要么全部成功,要么全部失败 这个要好好设计一下 最好交易构成一个链条[prevhash].独立的交易构成链条 只要这个组中有一个执行是出错的,那么就执行不成功 三种签名支持 ty = 1 -> secp256k1 ty = 2 -> ed25519 ty = 3 -> sm2 ty = 4 -> OnetimeED25519 ty = 5 -> RingBaseonED25519
Used in: , , ,
当ty为5时,格式应该用RingSignature去解析
后面如果有其他数据模型可继续往上面添加
Used in:
Used in:
state db
Used in:
action
Used in:
Used in:
Used in:
Used in:
创建token,支持最大精确度是8位小数,即存入数据库的实际总额需要放大1e8倍
Used in:
Used in:
Used in:
Used as request type in: chain33.SendTransaction
Used as field type in: , , , , , , , , , , , , , ,
随机ID,可以防止payload 相同的时候,交易重复
对方地址,如果没有对方地址,可以为空
Used as response type in: chain33.QueryTransaction
Used as field type in:
交易的详情: index:本交易在block中索引值,用于proof的证明 tx:本交易内容 receipt:本交易在主链的执行回执 proofs:本交易hash在block中merkel中的路径
Used in:
Used in:
使用多层merkle树之后的proof证明结构体
Used in:
Used in:
Used in:
repeated KeyValue KV = 3;
Used in:
Used in:
Used as response type in: chain33.CreateRawTransaction, chain33.CreateRawTxGroup, chain33.CreateTransaction
* p2p 协议和软件版本
Used in:
Used as response type in: chain33.GetAccount, chain33.ImportPrivkey, chain33.NewAccount, chain33.SetLabl
Used as field type in:
钱包模块存贮的账户信息 privkey : 账户地址对应的私钥 label :账户地址对应的标签 addr :账户地址 timeStamp :创建账户时的时标
钱包模块通过一个随机值对钱包密码加密 pwHash : 对钱包密码和一个随机值组合进行哈希计算 randstr :对钱包密码加密的一个随机值
钱包模块存贮的tx交易详细信息 tx : tx交易信息 receipt :交易收据信息 height :交易所在的区块高度 index :交易所在区块中的索引 blocktime :交易所在区块的时标 amount :交易量 fromaddr :交易打出地址 txhash : 交易对应的哈希值 actionName :交易对应的函数调用 payload: 保存额外的一些信息,主要是给插件使用
Used in: