数据模型
蚂蚁区块链合约平台 Java SDK 涉及的数据模型主要分为以下 8 类:
账户模型
账户模型是 Mychain 中的重要概念,帐户地址、余额、账户权重等信息都存储在账户模型中。
| 参数 | 
类型 | 
说明 | 
| identity | 
Identity | 
账户的业务id | 
| balance | 
long | 
余额 | 
| authMap | 
AuthMap | 
账户或者合约的公钥和权重值 | 
| recoverKey | 
PublicKey | 
恢复公钥,用于帐户私钥丢失的情况 | 
| recoverTimestamp | 
long | 
上次成功恢复的时间 | 
| status | 
ObjectStatus | 
状态, 0:NORMAL;1:FREEZE;2:RECOVERING | 
| encryptionKey | 
String | 
加密公钥,用来加密智能合约中的交易金额 | 
合约模型
下面是合约的基本参数及说明
| 参数 | 
类型 | 
说明 | 
| identity | 
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[] | 
合约代码 | 
交易模型
TransactionDO 包含一次交易所需要的完整的信息,但不同请求类型所需的参数可能会不一样。使用 SDK 不需要构造 TransactionDO, 只需要使用对应的 Service。
| 参数 | 
类型 | 
说明 | 
| hash | 
String | 
交易的哈希,由排除signature字段的所有字段构成 | 
| type | 
TransactionType | 
交易的类型 | 
| timestamp | 
long | 
交易的时间戳 | 
| nonce | 
Fixed64BitUnsignedInteger | 
防止重放攻击 | 
| period | 
long | 
单位是毫秒,事务开始或结束的时间。为未来扩展 | 
| from | 
String | 
交易的发送者 | 
| to | 
String | 
交易的接受者 | 
| value | 
Fixed64BitUnsignedInteger | 
转账金额 | 
| gas | 
Fixed64BitUnsignedInteger | 
交易执行的消耗费用 | 
| data | 
byte[] | 
交易数据的编码 | 
| signatureList | 
List | 
签名,使用一个或者多个私钥对hash加签 | 
| groupId | 
Fixed20ByteArray | 
交易在一个group中执行 | 
| extensions | 
List | 
目前用于智能合约中的证明数据 | 
收据模型
只有查到一个交易的收据才能证明出块成功,交易被确认。
| 参数 | 
类型 | 
说明 | 
| result | 
long | 
交易结果 | 
| gasUsed | 
BigInteger | 
交易执行的消耗费用 | 
| logs | 
List | 
交易执行的日志集合 | 
| output | 
byte[] | 
合约的输出 | 
日志模型
LogEntry 区块链输出日志的数据存储结构。
| 参数 | 
类型 | 
说明 | 
| from | 
String | 
交易的发送者 | 
| to | 
String | 
交易的接受者 | 
| topics | 
List | 
订阅的主题 | 
| 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[] | 
共识证明 | 
环境相关模型
| 参数 | 
类型 | 
说明 | 
| identity | 
String | 
sdk实例名称 | 
| clientType | 
ClientTypeEnum | 
网络链接类型 | 
| hashType | 
HashTypeEnum | 
哈希算法类型 | 
| signType | 
SignTypeEnum | 
签名算法类型 | 
| codecType | 
CodecTypeEnum | 
数据编码类型 | 
| socketAddress | 
SocketAddress | 
主连接节点 | 
| sslOption | 
ISslOption | 
tls链接配置 | 
| backups | 
List | 
备份节点,非必填 | 
| 参数 | 
类型 | 
说明 | 
| keyBytes | 
byte[] | 
客户端 key byte数组 | 
| certBytes | 
byte[] | 
客户端证书数组 | 
| keyPassword | 
String | 
客户端密钥密码 | 
| trustStoreBytes | 
byte[] | 
CA 证书字节数组 | 
| trustStorePassword | 
String | 
CA 证书密码 | 
| userPrivateKey | 
PrivateKey | 
对交易进行签名的key,必填。 | 
接口通用扩展参数
| 参数 | 
类型 | 
说明 | 
| privateKeyList | 
List | 
非必填。交易执行需要使用的私钥列表 | 
| gas | 
BigInteger | 
必填。交易设置的 gas 。 | 
| localBlockNumber | 
BigInteger | 
非必填。本地交易时,指定的需要执行的区块号。 | 
| type | 
EnvelopeType.DEFAULT | 
非必填。数据隔离需要使用的字段,默认为 Default 。 | 
| envelopePublicKey | 
String | 
非必填。数据隔离加密需要使用的 public key 。 | 
| groupId | 
Fixed20ByteArray | 
非必填。数据隔离需要执行的 group id 。 | 
| extensions | 
List | 
非必填。隐私保护需要指定的扩展参数 | 
| 参数 | 
类型 | 
说明 | 
| mychainParams | 
MychainParams | 
非必填。sdk 通用扩展数据结构 | 
| timestamp | 
long | 
非必填。交易时间戳 | 
| period | 
long | 
非必填。单位是毫秒,事务开始或结束的时间 | 
| nonce | 
Fixed64BitUnsignedInteger | 
非必填。防止重放攻击 |