布比應用開發友好的智慧合約 | 商用區塊鏈BubiChain詳解(五)

買賣虛擬貨幣
區塊鏈技術逐漸從小眾的極客圈子走向規模化商用。從整體來看,區塊鏈技術的規模化商用還處在相對初期的階段,企業對區塊鏈技術效能、易用程度的較高需求,與區塊鏈技術本身的可拓展性瓶頸及較低的執行效率構成了當前限制行業發展的主要矛盾。基於自身大量的商業實踐和對區塊鏈商用的探索與創新,布比打造了完全自主智慧財產權、高效能可擴充套件、產品化成熟的商用級區塊鏈底層平臺BubiChain。商用級區塊鏈底層平臺BubiChain取得底層技術關鍵突破:應用開發友好的智慧合約、安全高效的共識演算法、可靠的隱私保護、並行快速的多鏈,以及可擴充套件的跨鏈技術等創新;實現了產品化重要突破:應用可快速構建、視覺化運維、技術合規及資金賬戶體系等,形成完整的產品服務能力。本文為商用區塊鏈BubiChain詳解系列文章的第五篇——應用開發友好的智慧合約,以下為正文內容。布比區塊鏈基於Chrome V8虛擬機器構建智慧合約引擎,提供整合開發環境以及多場景、多型別的智慧合約模板。

考慮到智慧合約的安全性,智合約模組採用JavaScript子集作為程式語言,開發者可快速安全的開發智慧合約應用程式。為了讓更多開發者使用智慧合約,布比區塊鏈同時採用WebAssembly技術構建引擎,支援C/C++/python語言編寫智慧合約。

布比區塊鏈智慧合約引擎是Google V8和WebAssembly的創新改進,更好地滿足區塊鏈系統生態友好性需求。Google V8是由Google開發的開源JavaScript引擎,可將JavaScript程式碼直接翻譯成二進位制機器碼在物理機上執行,執行效率高;WebAssembly是一種可移植、載入高效、平臺無關的位元組碼格式,能在平臺上以接近原生的速度執行程式,這是一種全新的 WEB 標準,由 Google、蘋果、微軟、 Mozilla 等幾大公司同時支援和制定。這兩項技術為布比區塊鏈智慧合約提供良好的基礎功能支撐。執行過程如下:

如圖所示,智慧合約的執行過程如下:

使用者A發起簽名交易,目標賬戶為B,B為一個智慧合約賬號,裡面儲存著智慧合約程式碼。假定此時交易被廣播且被打包,節點需要將該交易儲存在區塊鏈上,需要對該交易進行回放和演算。

客戶端(使用C++程式碼實現)呼叫V8引擎,並把合約程式碼載入到引擎裡執行,在執行的過程中如果遇到內建的介面將會產生回撥函式,呼叫客戶端的實現,此時實現了雙向互動功能。

當合約執行過程中,有可能生成新的交易,如合約B觸發了賬號C,如果賬號C僅是普通賬號,那麼只需進行普通轉賬操作即可;如果賬號C是一個合約賬號,那麼將會再次觸發新的合約形成一個遞迴呼叫。合約呼叫合約的遞迴深度為3層,超過3層將會出錯並回退整個交易,這是出於合約實現的複雜度和區塊鏈底層的安全性來考慮和設計。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;