全部产品
Search
文档中心

数据模型

更新时间: 2020-05-08

蚂蚁区块链合约平台 Java SDK 涉及的数据模型主要分为以下 8 类:

账户模型

账户模型是 Mychain 中的重要概念,账户地址、余额、账户权重等信息都存储在账户模型中。

  • Account
参数 类型 说明
id Identity 账户的业务 ID
balance long 余额
authMap AuthMap 账户或者合约的公钥和权重值
recoverKey PublicKey 恢复公钥,用于账户私钥丢失的情况
recoverTimestamp long 上次成功恢复的时间
status ObjectStatus 状态,0:Normal(正常);1:Freeze(冻结);2:Recovering(恢复中)
encryptionKey String 加密公钥,用来加密智能合约中的交易金额

合约模型

下面是合约的基本参数及说明:

  • Contract
参数 类型 说明
id Identity 账户的业务 ID
balance long 余额
authMap AuthMap 账户或者合约的公钥和权重值
recoverKey PublicKey 恢复公钥,用于账户私钥丢失的情况
recoverTimestamp long 上次成功恢复的时间
status ObjectStatus 状态,0:Normal(正常);1:Freeze(冻结);2:Recovering(恢复中)
encryptionKey String 加密公钥,用来加密智能合约中的交易金额
storageRoot Identity 世界状态的默克尔哈希根
codeHash Identity 合约代码哈希
code byte[] 合约代码

交易模型

Transaction 包含一次交易所需要的完整的信息,但不同请求类型所需的参数可能会不一样。使用 SDK 不需要构造 Transaction,只需要使用对应的 Service。

  • Transaction
参数 类型 说明
hash String 交易的哈希,由 signature 字段以外的所有字段构成。
type TransactionType 交易的类型
timestamp long 交易的时间戳
nonce Fixed64BitUnsignedInteger 防止重放攻击
period long 单位为毫秒,事务开始或结束的时间,为未来扩展使用。
from String 交易的发送者
to String 交易的接受者
value Fixed64BitUnsignedInteger 转账金额
gas Fixed64BitUnsignedInteger 交易执行的消耗费用
data byte[] 交易数据的编码
signatureList List<byte[]> 签名,使用一个或者多个私钥对哈希加签。
groupId Fixed20ByteArray 交易在一个群组中执行。
extensions List 目前用于智能合约中的证明数据。
version short 版本

收据模型

只有查到一个交易的收据(Receipt)才能证明出块成功,交易被确认。

  • TransactionReceipt
参数 类型 说明
result long 交易结果
gasUsed BigInteger 交易执行的消耗费用
logs List 交易执行的日志集合
output byte[] 合约的输出

日志模型

LogEntry 区块链输出日志的数据存储结构。

  • LogEntry
参数 类型 说明
from String 交易的发送者
to String 交易的接受者
topics List 订阅的主题,topic 字段是通过 16 进制编码。
logData byte[] 交易产生的日志

区块模型

区块链由一个个区块组成,区块由区块头和区块体构成。

  • Block
参数 类型 说明
blockHeader BlockHeader 区块头
blockBody blockBody 区块体
  • BlockHeader
参数 类型 说明
hash String 区块头的哈希
version long 版本
number BigInteger 区块号
parentHash String 上一区块哈希
transactionRoot String 区块体中的交易构成的默克尔哈希根
receiptRoot String 区块体中的收据构成的默克尔哈希根
stateRoot String 世界状态的默克尔哈希根
gasUsed BigInteger 交易执行的总消耗量
timestamp long 时间戳
logBloom String 日志布隆过滤器
  • BlockBody
参数 类型 说明
transactionList List 交易列表
receiptList List 收据列表
consensusProof byte[] 共识证明

环境相关模型

  • ClientEnv
参数 类型 说明
signerOption SignerOption 签名配置选项
sslOption ISslOption TLS 接口,实现类分别为 SslBytesOption、SslOption。
networkOption NetworkOption 网络配置选项
requestOption RequestOption 消息请求配置选项
logger ILogger 日志接口
needPrivacy Boolean 是否启动隐私保护
  • SignerOption
参数 类型 说明
signers List 签名接口
  • SslOption
参数 类型 说明
keyFilePath String 客户端的私钥
certFilePath String 客户端的证书
keyPassword String 客户端的私钥密码
trustStoreFilePath String CA 机构的根证书路径
trustStorePassword String CA 机构的根证书的密码
  • SslBytesOption
参数 类型 说明
keyBytes byte[] 客户端的私钥
certBytes byte[] 客户端的证书
keyPassword String 客户端的私钥密码
trustStoreBytes byte[] CA 机构的根证书
trustStorePassword String CA 机构的根证书的密码
  • NetworkOption
参数 类型 说明
socketAddressList List 节点的 IP 和端口信息
codecType CodecType 编解码方式,0:RLP;1:JSON
networkType NetworkType 网络连接方式,2:HTTPS,3:TLS
enableCompress Boolean 是否压缩消息
compressSizeLimit Integer 压缩消息最大值,暂未使用
maxMessageSize Integer HTTPS 接收消息最大值,TLS 通道发送和接收缓存最大值
connectTimeoutMs Integer 连接超时时间,单位毫秒
heartbeatIntervalMs Integer 心跳间隔时间,单位毫秒
retryHeartbeatTimes Integer 心跳重试次数
retryConnectTimes Integer 连接单个节点重连次数
coreThreadPoolSize Integer Netty 处理网络事件线程数量,消息解码器的线程数量
threadPoolQueueSize Integer 网络层发送消息的任务队列大小,Netty 处理网络事件的任务队列大小
  • RequestOption
参数 类型 说明
queryReceiptTimeoutMs Integer 查询收据的超时时间,单位毫秒
sendRequestTimeoutMs Integer 发送消息的超时时间,单位毫秒
queryReceiptIntervalMs Integer 查询收据的间隔时间,单位毫秒
enableQueryTxReceipt Boolean 是否自动查询交易回执,默认为 true
  • ILogger
参数 类型 说明
logger ILogger 日志接口,默认可不修改