区块链BaaS云服务(16)天德链TDBC“智能合约”
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链BaaS云服务(16)天德链TDBC“智能合约”相关的知识,希望对你有一定的参考价值。
1. 智能合约模板
内置了区块链常见业务场景的合约模板,智能合约通过模板创建,用户或应用可根据自己的具体需求,通过配置合约的初始化参数直接创建个性化智能合约进行使用。
- 合约模板只有通过了严格的校验与审查后才能存入链上。
- 智能合约模板不是仅针对某一特定场景编写,而是对于某类业务场景通用的设计。
1.1 智能合约的四个部分.
包括合约模板的创建、合约的创建、合约触发、合约执行。
2. 支持复杂智能合约
复杂智能合约:执行时间长,逻辑较复杂的合约,通常具有多个阶段。
2.1 问题
在实际中,区块链系统中的各个节点的环境可能各有不同,智能合约在各个节点运行的速度
可能各不相同,加之逻辑复杂,智能合约可能会在运行中的任何一个阶段改变其所在节点的状态,而现有技术的方案并没有针对智能合约节点环境存在差异情况下的智能合约执行方法,因此会产生合约状态异步,区块链系统对于支持复杂智能合约执行的能力低的技术缺陷,同时,多个独立节点同时执行合约时数据一致性,结果统一性,数据的完整性以及数据的隔离性难以保证,数据同步会相互干扰。
2.2 解决方法
使用一种基于阶段桶的复杂智能合约状态同步方法,包括如下步骤:
step1. 判断状态类型交易,确定需要更新状态的账户地址;
step2. 根据状态交易的信息生成阶段桶,然后为每个阶段桶设定一个计时器;
step3. 统计阶段桶内的状态信息,并分别统计每类信息的条数;
step4. 检查step3的结果,确定某阶段桶是否已达成一致,如果已达成一致,继续执行步骤step5,否则继续执行step7.
step5. 将状态存储到区块链中;
step6. 标记该阶段桶为“已达成一致”,然后删除该阶段桶;
step7. 检查阶段桶的计时器是否已超时,如果未超时则跳转执行
step3,否则继续执行step8
step8. 标记该阶段桶为“已超时”,然后删除该阶段桶,此时的阶段桶称为“废桶”
参考
【1】 天德链技术白皮书.PDF
以上是关于区块链BaaS云服务(16)天德链TDBC“智能合约”的主要内容,如果未能解决你的问题,请参考以下文章