The Java SDK of the Ant blockchain contract platform involves eight data models:
Account model
The account model is an important concept in MyChain. The account address, balance, account weight, and other information are stored in the account model.
Parameter |
Type |
Description |
id |
Identity |
The account’s business ID. |
balance |
long |
The balance. |
authMap |
AuthMap |
The public key and weight of the account or contract. |
recoverKey |
PublicKey |
The recovery public key used when the account private key is lost. |
recoverTimestamp |
long |
The last successful recovery time. |
status |
ObjectStatus |
The status. 0 indicates Normal, 1 indicates Freeze, and 2 indicates Recovering. |
encryptionKey |
String |
The encryption public key for encrypting the transaction amount in a smart contract. |
Contract model
The following describes basic contract parameters.
Parameter |
Type |
Description |
id |
Identity |
The account’s business ID. |
balance |
long |
The balance. |
authMap |
AuthMap |
The public key and weight of the account or contract. |
recoverKey |
PublicKey |
The recovery public key used when the account private key is lost. |
recoverTimestamp |
long |
The last successful recovery time. |
status |
ObjectStatus |
The status. 0 indicates Normal, 1 indicates Freeze, and 2 indicates Recovering. |
encryptionKey |
String |
The encryption public key for encrypting the transaction amount in a smart contract. |
storageRoot |
Identity |
The Merkle hash root of the world state. |
codeHash |
Identity |
The contract code hash. |
code |
byte[] |
The contract code. |
Transaction model
A Transaction contains the complete information required for a transaction. Different request types may require different parameters. The SDK allows you to use a Service without needing to construct a Transaction.
Parameter |
Type |
Description |
hash |
String |
The transaction hash, which consists of all fields other than signature . |
type |
TransactionType |
The transaction type. |
timestamp |
long |
The transaction timestamp. |
nonce |
Fixed64BitUnsignedInteger |
Prevents replay attacks. |
period |
long |
The transaction start or end time, in milliseconds, used for future expansion. |
from |
String |
The transaction sender. |
to |
String |
The transaction recipient. |
value |
Fixed64BitUnsignedInteger |
The transfer amount. |
gas |
Fixed64BitUnsignedInteger |
The transaction execution cost. |
data |
byte[] |
The transaction data code. |
signatureList |
List<byte[]> |
The signature obtained by signing the hash with one or more private keys. |
groupId |
Fixed20ByteArray |
The group where the transaction is executed. |
extensions |
List |
The proof data currently used in a smart contract. |
version |
short |
The version. |
Receipt model
A transaction receipt proves that the block has been successfully delivered and that the transaction has been confirmed.
Parameter |
Type |
Description |
result |
long |
The transaction result. |
gasUsed |
BigInteger |
The transaction execution cost. |
logs |
List |
The collection of transaction execution logs. |
output |
byte[] |
The contract ouput. |
Log model
The LogEntry blockchain provides the data storage structure of logs.
Parameter |
Type |
Description |
from |
String |
The transaction sender. |
to |
String |
The transaction recipient. |
topics |
List |
The subscribed topics, which are usually encoded in hexadecimal format. |
logData |
byte[] |
The logs generated for a transaction. |
Block model
A blockchain consists of blocks, each of which contains a block header and a block body.
Parameter |
Type |
Description |
blockHeader |
BlockHeader |
The block header. |
blockBody |
blockBody |
The block body. |
Parameter |
Type |
Description |
hash |
String |
The block header hash. |
version |
long |
The version. |
number |
BigInteger |
The block number. |
parentHash |
String |
The hash of the parent block. |
transactionRoot |
String |
The Merkle hash root composed of transactions in the block body. |
receiptRoot |
String |
The Merkle hash root composed of receipts in the block body. |
stateRoot |
String |
The Merkle hash root of the world state. |
gasUsed |
BigInteger |
The total consumption of transaction execution. |
timestamp |
long |
The timestamp. |
logBloom |
String |
The log Bloom filter. |
Parameter |
Type |
Description |
transactionList |
List |
The transaction list. |
receiptList |
List |
The receipt list. |
consensusProof |
byte[] |
The consensus proof. |
Parameter |
Type |
Description |
signerOption |
SignerOption |
The signature configuration option. |
sslOption |
ISslOption |
The TLS API, which contains the following implementation classes: SslBytesOption and SslOption. |
networkOption |
NetworkOption |
The network configuration option. |
requestOption |
RequestOption |
The message request configuration option. |
logger |
ILogger |
The log API. |
needPrivacy |
Boolean |
Specifies whether to enable privacy protection. |
Parameter |
Type |
Description |
signers |
List |
The signature API. |
Parameter |
Type |
Description |
keyFilePath |
String |
The client private key. |
certFilePath |
String |
The client certificate. |
keyPassword |
String |
The password for the client private key. |
trustStoreFilePath |
String |
The path of the CA root certificate. |
trustStorePassword |
String |
The password for the CA root certificate. |
Parameter |
Type |
Description |
keyBytes |
byte[] |
The client private key. |
certBytes |
byte[] |
The client certificate. |
keyPassword |
String |
The password for the client private key. |
trustStoreBytes |
byte[] |
The CA root certificate. |
trustStorePassword |
String |
The password for the CA root certificate. |
Parameter |
Type |
Description |
socketAddressList |
List |
The node’s IP address and port information. |
codecType |
CodecType |
The codec mode. 0 indicates RLP, and 1 indicates JSON. |
networkType |
NetworkType |
The network connection mode. 2 indicates HTTPS, and 3 indicates TLS. |
enableCompress |
Boolean |
Specifies whether to compress messages. |
compressSizeLimit |
Integer |
The maximum size of a compressed message. This parameter is not used yet. |
maxMessageSize |
Integer |
The maximum size of a message received over HTTPS, or the maximum TX and RX buffer size for a TLS channel. |
connectTimeoutMs |
Integer |
The connection timeout time, in milliseconds. |
heartbeatIntervalMs |
Integer |
The heartbeat interval, in milliseconds. |
retryHeartbeatTimes |
Integer |
The number of heartbeat retries. |
retryConnectTimes |
Integer |
The number of reconnections with a single node. |
coreThreadPoolSize |
Integer |
The number of Netty threads for handling network events, or the number of threads for the message decoder. |
threadPoolQueueSize |
Integer |
The size of the network-layer message send task queue, or the size of the Netty task queue for handling network events. |
Parameter |
Type |
Description |
queryReceiptTimeoutMs |
Integer |
The receipt query timeout time, in milliseconds. |
sendRequestTimeoutMs |
Integer |
The message sending timeout time, in milliseconds. |
queryReceiptIntervalMs |
Integer |
The receipt query interval, in milliseconds. |
enableQueryTxReceipt |
Boolean |
Specifies whether to automatically query for the transaction receipt. The default value is true. |
Parameter |
Type |
Description |
logger |
ILogger |
The log API, which cannot be modified by default. |