自BCH在去年5月份升級之后,實現(xiàn)智能合約功能一直都是BCH發(fā)展的其中一個方向。BCH社區(qū)的開發(fā)者為了實現(xiàn)這一功能在不斷努力。經(jīng)歷一年多的時
自BCH在去年5月份升級之后,實現(xiàn)智能合約功能一直都是BCH發(fā)展的其中一個方向。BCH社區(qū)的開發(fā)者為了實現(xiàn)這一功能在不斷努力。經(jīng)歷一年多的時間,BCH在智能合約、公鏈方面也取得了一定的成績。
BCH經(jīng)過升級,在OP-return容量擴大的基礎(chǔ)上,BCH社區(qū)相繼推出蟲洞、SLP等代幣方案實現(xiàn)了BCH區(qū)塊鏈發(fā)行Token的功能。目前已經(jīng)有多種代幣通過BCH網(wǎng)絡(luò)被創(chuàng)建出來,其中包括合規(guī)的穩(wěn)定幣USDH等。
去年11月的那次升級,BCH又新增了一個極其重要的操作碼op_checkdatasig,它允許腳本驗證來自區(qū)塊鏈外部的任意消息,從而打開了許多令人興奮的可能用例,其中也包括智能合約用例,例如區(qū)塊鏈上的國際象棋。利用op_checkdatasig操作碼,BCH可以實現(xiàn)有狀態(tài)的智能合約。Local Bitcoin.com交易平臺的去中心化實現(xiàn)有很大一部分正是op_checkdatasig的功勞。
雖然BCH的智能合約功能早就已經(jīng)實現(xiàn),但是BCH鏈上的智能合約用例卻是寥寥無幾,這是為什么呢?
其中,最主要的原因是缺少編程工具。眾所周知,ETH的智能合約之所以應用廣泛,最重要的原因是簡單。ETH有很多可參考的智能合約案例,用戶可以直接套用。相比之下,BCH社區(qū)中的智能合約并沒有統(tǒng)一的語言和編程工具,僅有的幾個案例也都是技術(shù)非常強的開發(fā)者編寫,普通開發(fā)者即使想要創(chuàng)建智能合約也一籌莫展,不知道如何入手。
不過,這一問題即將得到解決。Cashscript是一種高級編程語言,可以在BCH主鏈上實現(xiàn)智能合約,允許用戶以熟悉的方式編寫智能合約。據(jù)它的開發(fā)者 Rosco Kalis表示,Cashscript的靈感來自以太坊的Solidity,但并不相同。CashScript語言允許用戶以非常直接,可讀和可維護的方式編寫現(xiàn)金合約。與以太坊相比,比特幣現(xiàn)金的智能合約雖然在功能上是有限的,但是它允許用戶在貨幣支出上設(shè)置較為復雜的條件。
CashScript的出現(xiàn)將BCH智能合約的編寫過程變得簡單規(guī)范,而且也提高了開發(fā)者的效率。開發(fā)者通過使用CashScript可以快速高效的編寫智能合約案例。
昨天,開發(fā)者Gabriel Cardona在其推特上宣布,CashScript文檔已經(jīng)發(fā)布。這對于開發(fā)者來說,無疑是一個非常好的消息。
CashScript文檔主要分為4部分:入門,Cashc CLI,CashScript SDK參考,CashScript語言。在CashScript文檔中有很多智能合約的案例,而且還有一些CashScript語言的使用方法。開發(fā)者可以依照此文檔創(chuàng)建基于BCH網(wǎng)絡(luò)的智能合約。
根據(jù)CashScript文檔,CashScript中的合約是一組函數(shù)的集合,這些函數(shù)可用于支付鎖定在該合約中的資金。用戶可以使用合約的參數(shù)將這些合約實例化,并且可以通過指定正確的函數(shù)參數(shù)來調(diào)用這些的函數(shù)。CashScript語言唯一的控制結(jié)構(gòu)是if和else,由于它們與底層比特幣腳本不兼容而導致循環(huán)和返回語句被遺漏。If-else語句遵循C或JavaScript中已知的常用語義。CashScript是一種靜態(tài)類型語言,這意味著需要指定每個變量的類型。類型可以在包含運算符的表達式中相互交互。
CashScript將編譯器作為獨立的命令行工具,稱為cashc。它可以通過npm安裝,用于將.cash文件編譯成.json工件文件。這些文件可以導入CashScript JavaScript SDK(或?qū)淼钠渌鸖DK)。CashScript SDK還具有直接導入和編譯.cash文件的功能,因此不需要使用cashc命令行工具。
目前,與智能合約交互并將其集成到應用程序中的主要方式是使用CashScript SDK。此SDK允許用戶編譯.cash文件或?qū)?json工件文件,并將它們轉(zhuǎn)換為Contract對象。這些對象可用于創(chuàng)建新的合約實例。而這些實例可使用.cash文件中實現(xiàn)函數(shù)與合約進行交互。
CashScript文檔的推出對于普通的開發(fā)者而言,不僅提高了開發(fā)效率,而且降低了開發(fā)難度,開發(fā)者可以根據(jù)文檔中的內(nèi)容和參考案例進行智能合約的搭建。與此同時,BCH智能合約的參與門檻也會有所降低,從而吸引更多的開發(fā)者加入到BCH智能合約的創(chuàng)建中來,這將為BCH網(wǎng)絡(luò)出現(xiàn)殺手級應用奠定基礎(chǔ)。CashScript亦將書寫B(tài)CH智能合約新篇章。
關(guān)鍵詞: BCH Cashscript 智能合約