There are different types of transactions. Different transactions have different opcodes.
The benefit of this is to clarify user behavior and simplify system complexity.
- OpsTransfer: used for in-chain transfers
- OpsMove: used for inter-chain transfers
- OpsNewChain: used to create new child chains
- OpsNewApp: used to create smart contracts
- OpsRunApp: used to execute smart contracts
- OpsRegisterMiner: used to register miners
- OpsUpdateAppLife: Update the life of a smart contract
Data structure of the transaction
- Sign: the signature information of the transaction
- Time: timestamp of the transaction
- Address: The originator of the transaction
- Chain ID: ID of the chain to which the transaction belongs
- Energy: transaction fee
- Cost: the amount of the transaction
- Ops: operation code of the transaction
- Others: data carried by different transactions
Timeliness of transactions
Blocks are only allowed to receive transactions within 10 days. Transactions that exceed the time limit will be discarded.
This is because the system has increased restrictions for proxy accounts (a newly added account in this system that can reduce the risk of over-signaturing accounts).
The system supports transfers to adjacent chains (parent or child chains) by default. When the system processes the transfer transaction, the corresponding token of the initiator is deducted, and the transfer information is recorded in the logSync object.
When the neighboring chain processes the block, it will read the logSync information of this chain. If the time of the information meets the requirements and the target chain is itself, the system automatically adds the corresponding tokens to the transferor.
After the inter-chain transfer transaction is packaged into the block, the transfer completion time is 4-5 minutes (inter-chain information synchronization time)