区块链BaaS云服务(16)天德链TDBC“智能合约”
1. 智能合約模板
內(nèi)置了區(qū)塊鏈常見業(yè)務(wù)場景的合約模板,智能合約通過模板創(chuàng)建,用戶或應(yīng)用可根據(jù)自己的具體需求,通過配置合約的初始化參數(shù)直接創(chuàng)建個性化智能合約進行使用。
- 合約模板只有通過了嚴(yán)格的校驗與審查后才能存入鏈上。
- 智能合約模板不是僅針對某一特定場景編寫,而是對于某類業(yè)務(wù)場景通用的設(shè)計。
1.1 智能合約的四個部分.
包括合約模板的創(chuàng)建、合約的創(chuàng)建、合約觸發(fā)、合約執(zhí)行。
2. 支持復(fù)雜智能合約
復(fù)雜智能合約:執(zhí)行時間長,邏輯較復(fù)雜的合約,通常具有多個階段。
2.1 問題
在實際中,區(qū)塊鏈系統(tǒng)中的各個節(jié)點的環(huán)境可能各有不同,智能合約在各個節(jié)點運行的速度
可能各不相同,加之邏輯復(fù)雜,智能合約可能會在運行中的任何一個階段改變其所在節(jié)點的狀態(tài),而現(xiàn)有技術(shù)的方案并沒有針對智能合約節(jié)點環(huán)境存在差異情況下的智能合約執(zhí)行方法,因此會產(chǎn)生合約狀態(tài)異步,區(qū)塊鏈系統(tǒng)對于支持復(fù)雜智能合約執(zhí)行的能力低的技術(shù)缺陷,同時,多個獨立節(jié)點同時執(zhí)行合約時數(shù)據(jù)一致性,結(jié)果統(tǒng)一性,數(shù)據(jù)的完整性以及數(shù)據(jù)的隔離性難以保證,數(shù)據(jù)同步會相互干擾。
2.2 解決方法
使用一種基于階段桶的復(fù)雜智能合約狀態(tài)同步方法,包括如下步驟:
step1. 判斷狀態(tài)類型交易,確定需要更新狀態(tài)的賬戶地址;
step2. 根據(jù)狀態(tài)交易的信息生成階段桶,然后為每個階段桶設(shè)定一個計時器;
step3. 統(tǒng)計階段桶內(nèi)的狀態(tài)信息,并分別統(tǒng)計每類信息的條數(shù);
step4. 檢查step3的結(jié)果,確定某階段桶是否已達成一致,如果已達成一致,繼續(xù)執(zhí)行步驟step5,否則繼續(xù)執(zhí)行step7.
step5. 將狀態(tài)存儲到區(qū)塊鏈中;
step6. 標(biāo)記該階段桶為“已達成一致”,然后刪除該階段桶;
step7. 檢查階段桶的計時器是否已超時,如果未超時則跳轉(zhuǎn)執(zhí)行
step3,否則繼續(xù)執(zhí)行step8
step8. 標(biāo)記該階段桶為“已超時”,然后刪除該階段桶,此時的階段桶稱為“廢桶”
參考
【1】 天德鏈技術(shù)白皮書.PDF
總結(jié)
以上是生活随笔為你收集整理的区块链BaaS云服务(16)天德链TDBC“智能合约”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链BaaS云服务(16)天德链TDB
- 下一篇: 区块链BaaS云服务(16)天德链TDB