交易
交易有不同的分类,不同交易有不同的操作码。
这样做的好处就是明确用户行为,简化系统复杂度。
操作码列表
- OpsTransfer:用于普通的链内转账
- OpsMove:用于链间的转账
- OpsNewChain:用于创建新的子链
- OpsNewApp:用于创建智能合约
- OpsRunApp:用于执行智能合约
- OpsRegisterMiner:用于注册矿工
- OpsUpdateAppLife:更新智能合约的生命周期
交易的数据结构
成员说明:
- Sign:交易的签名信息
- Time:交易的时间戳
- Address:交易的发起者
- Chain ID:交易所属的链ID
- Energy:交易手续费
- Cost:交易的金额
- Ops:交易的操作码
- Others:不同交易携带的数据
交易时效性
区块只允许接收10天内的交易,超过时限的交易将被丢弃。
这是因为系统为了代理账户(本系统新增加的一种账户,可以降低账户过度签名的风险)而增加的限制。
链间转账
系统默认支持向相邻链(父链或子链)转账,系统处理该转账交易时,扣除发起人相应的代币,并将转账信息记录到logSync对象中。
相邻链处理区块时,会读取本链的logSync信息,如果信息的时间满足要求,且目标链为自己,则系统自动为转账人增加相应的代币。
链间转账交易被打包进区块后,转账完成时间为4-5分钟(链间信息同步时间)