蚂蚁区块链合约平台 Java SDK 涉及的数据模型主要分为以下 8 类:
账户模型
账户模型是 Mychain 中的重要概念,账户地址、余额、账户权重等信息都存储在账户模型中。
参数 |
类型 |
说明 |
id |
Identity |
账户的业务 ID |
balance |
long |
余额 |
authMap |
AuthMap |
账户或者合约的公钥和权重值 |
recoverKey |
PublicKey |
恢复公钥,用于账户私钥丢失的情况 |
recoverTimestamp |
long |
上次成功恢复的时间 |
status |
ObjectStatus |
状态,0:Normal(正常);1:Freeze(冻结);2:Recovering(恢复中) |
encryptionKey |
String |
加密公钥,用来加密智能合约中的交易金额 |
合约模型
下面是合约的基本参数及说明:
参数 |
类型 |
说明 |
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。
参数 |
类型 |
说明 |
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)才能证明出块成功,交易被确认。
参数 |
类型 |
说明 |
result |
long |
交易结果 |
gasUsed |
BigInteger |
交易执行的消耗费用 |
logs |
List |
交易执行的日志集合 |
output |
byte[] |
合约的输出 |
日志模型
LogEntry 区块链输出日志的数据存储结构。
参数 |
类型 |
说明 |
from |
String |
交易的发送者 |
to |
String |
交易的接受者 |
topics |
List |
订阅的主题,topic 字段是通过 16 进制编码。 |
logData |
byte[] |
交易产生的日志 |
区块模型
区块链由一个个区块组成,区块由区块头和区块体构成。
参数 |
类型 |
说明 |
blockHeader |
BlockHeader |
区块头 |
blockBody |
blockBody |
区块体 |
参数 |
类型 |
说明 |
hash |
String |
区块头的哈希 |
version |
long |
版本 |
number |
BigInteger |
区块号 |
parentHash |
String |
上一区块哈希 |
transactionRoot |
String |
区块体中的交易构成的默克尔哈希根 |
receiptRoot |
String |
区块体中的收据构成的默克尔哈希根 |
stateRoot |
String |
世界状态的默克尔哈希根 |
gasUsed |
BigInteger |
交易执行的总消耗量 |
timestamp |
long |
时间戳 |
logBloom |
String |
日志布隆过滤器 |
参数 |
类型 |
说明 |
transactionList |
List |
交易列表 |
receiptList |
List |
收据列表 |
consensusProof |
byte[] |
共识证明 |
环境相关模型
参数 |
类型 |
说明 |
signerOption |
SignerOption |
签名配置选项 |
sslOption |
ISslOption |
TLS 接口,实现类分别为 SslBytesOption、SslOption。 |
networkOption |
NetworkOption |
网络配置选项 |
requestOption |
RequestOption |
消息请求配置选项 |
logger |
ILogger |
日志接口 |
needPrivacy |
Boolean |
是否启动隐私保护 |
参数 |
类型 |
说明 |
signers |
List |
签名接口 |
参数 |
类型 |
说明 |
keyFilePath |
String |
客户端的私钥 |
certFilePath |
String |
客户端的证书 |
keyPassword |
String |
客户端的私钥密码 |
trustStoreFilePath |
String |
CA 机构的根证书路径 |
trustStorePassword |
String |
CA 机构的根证书的密码 |
参数 |
类型 |
说明 |
keyBytes |
byte[] |
客户端的私钥 |
certBytes |
byte[] |
客户端的证书 |
keyPassword |
String |
客户端的私钥密码 |
trustStoreBytes |
byte[] |
CA 机构的根证书 |
trustStorePassword |
String |
CA 机构的根证书的密码 |
参数 |
类型 |
说明 |
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 处理网络事件的任务队列大小 |
参数 |
类型 |
说明 |
queryReceiptTimeoutMs |
Integer |
查询收据的超时时间,单位毫秒 |
sendRequestTimeoutMs |
Integer |
发送消息的超时时间,单位毫秒 |
queryReceiptIntervalMs |
Integer |
查询收据的间隔时间,单位毫秒 |
enableQueryTxReceipt |
Boolean |
是否自动查询交易回执,默认为 true |
参数 |
类型 |
说明 |
logger |
ILogger |
日志接口,默认可不修改 |
在文档使用中是否遇到以下问题
更多建议
匿名提交