1. 創(chuàng)業(yè)頭條
  2. 前沿領(lǐng)域
  3. 區(qū)塊鏈
  4. 正文

BAIC佰客云公鏈發(fā)布智能合約開發(fā)說明書!

 2018-08-24 17:55  來源:互聯(lián)網(wǎng)  我來投稿 撤稿糾錯

  域名預(yù)訂/競價,好“米”不錯過

BAIC佰客云公鏈?zhǔn)侵荚谕七M物聯(lián)網(wǎng)及AI之間數(shù)據(jù)互聯(lián)、交易結(jié)算、智能合約的去中心化區(qū)塊鏈技術(shù)平臺,也是目前唯一一家實際落地,支持IOT設(shè)備上鏈的物聯(lián)網(wǎng)公鏈。已于本月正式上線。

目前已經(jīng)有包括智能手環(huán)、智能牙刷、智能燉盅等多個設(shè)備上鏈支持。BAIC公鏈?zhǔn)侵荚谕七M物聯(lián)網(wǎng)及AI設(shè)備間數(shù)據(jù)交易、物物支付、智能合約的去中心化區(qū)塊鏈技術(shù)平臺,也允許開發(fā)者在其協(xié)議頂端創(chuàng)建IOT級別的去中心化應(yīng)用(DAPP)。BAIC公鏈希望可以幫助越來越多的IOT數(shù)據(jù)上鏈,為全球用戶打開物聯(lián)網(wǎng)數(shù)字新資產(chǎn)的大門。本日BAIC佰客云公鏈正式對外發(fā)布智能合約開發(fā)說明書,以供開發(fā)者參考。

1. 概述

本文對BAIC公鏈的智能合約開發(fā)的相關(guān)知識做簡要說明,為智能合約開發(fā)提供示例說明。

2. 所需知識背景

2.1. C/C++

BAIC區(qū)塊鏈平臺使用Web Assembly(WASM)執(zhí)行開發(fā)者提供的應(yīng)用代碼。目前最成熟的用于構(gòu)建應(yīng)用及WASM代碼編譯的工具鏈?zhǔn)莄lang/llvm及其C/C++編譯器。從應(yīng)用的高性能特性和安全需求出發(fā),C++將成為智能合約開發(fā)的最佳語言。

2.2. 開發(fā)環(huán)境

BAIC智能合約開發(fā)需要在特定的平臺環(huán)境中開發(fā),開發(fā)者至少熟悉其中一個開發(fā)環(huán)境。 BAIC支持的開發(fā)環(huán)境:

Ubuntu 16.10 或更高

MacOS Sierra 或更高

3. 環(huán)境搭建

開發(fā)BACI智能合約,開發(fā)環(huán)境平臺需要安裝的軟件包:

v 安裝C++ /boost庫

v 安裝Clang編譯器

v 安裝BAIC官方軟件包baic-sdk

軟件包安裝完成后設(shè)置環(huán)境變量即可。

4. 智能合約開發(fā)

本節(jié)詳細(xì)描述BAIC智能合約的運作機制和開發(fā)過程,包括智能合約的代碼編寫、代碼編譯、可執(zhí)行文件生成、文件格式描述等。

4.1. 合約開發(fā)基礎(chǔ)

4.1.1. 通信模型

BAIC智能合約通過action及共享內(nèi)存數(shù)據(jù)庫相互通信。異步通信導(dǎo)致的spam問題將由資源限制算法來解決。通信模型Inline保證執(zhí)行當(dāng)前的transaction或unwind;無論成功或失敗都會有通知。Inline 操作的scopes和authorities和原來的transaction一樣。

4.1.2. action vs transaction

一個action代表單個操作, 一個transaction是一個或多個action的集合。合約和賬戶通過action通信。action可以單個地發(fā)送,如果希望一次執(zhí)行批處理也可以集合起來發(fā)送。

4.1.3. action名的限定

action的類型實際上是base32編碼的64位整數(shù)。所以action名的最多10個字符,并且限制在字母a-z,A-Z, 0-9, 以及'_' 中。

4.1.4. transaction確認(rèn)

獲得一個transaction哈希并不等于transaction完成,它只表示該節(jié)點無報錯地接受了,而其他區(qū)塊生產(chǎn)者很可能也會接受它。但要確認(rèn)該transaction,你需要在transaction歷史中查看含有該transaction的區(qū)塊數(shù)。

4.1.5. 技術(shù)限制

transaction需要在1 ms內(nèi)執(zhí)行。 transaction的執(zhí)行時間需要在*小于等于1ms否則transaction將會失敗。

最大 30 tps。 目前根據(jù)測試公網(wǎng)設(shè)置,每個賬戶最多每秒可發(fā)布30個transactions。

4.2. 智能合約文件

4.2.1. HPP

HPP是包含CPP文件所引用的變量、常量、函數(shù)的頭文件。

4.2.2. CPP

CPP文件是包含合約功能的源文件。

從代碼中可以看到創(chuàng)建的合約(example)將繼承一個基礎(chǔ)合約baic::contract,這個合約是baic基礎(chǔ)合約,所有的開發(fā)的合約都要繼承這個合約。

在類中添加方法,作為action操作。例如上面的類中action1/action2方法就是合約的action操作。

BAIC_ABI這個宏是替開發(fā)者實現(xiàn)了 apply 函數(shù),使得開發(fā)者可以專注于業(yè)務(wù)邏輯。 開發(fā)人員只需要在宏中指定合同中的代碼和操作名稱,并且所有底層C代碼映射邏輯都由宏生成。在第一個參數(shù)中填入合約名稱(如example),第二個參數(shù)是action名稱(如(action1)(action2)。

4.2.3. WASM

想要部署到BAIC區(qū)塊鏈上的任何程序都需要先編譯成WASM格式。這是區(qū)塊鏈目前能接受的格式。

一旦您完成了CPP文件的開發(fā),您可以用clang工具將它編譯成一個文本版本的WASM 文件。

簡要的生成過程如下:實際使用中要添加相關(guān)參數(shù),具體見示例代碼。

1. 把源文件編譯成bc字節(jié)碼

$ clang -c example.cpp -o example.bc

2. 把多個bc字節(jié)碼鏈接成一個linked.bc文件

$ llvm-link -only-needed -o example.linked.bc example.bc

3. 通過linked.bc文件生成二進制s文件

$ llc -o example.s example.linked.bc

4. 將s文件轉(zhuǎn)成wast文件

$ baic-s2wast -o example.wast -s 16384 example.s

5. 將wast文件編譯成wasm文件

$ baic-wast2wasm example.wast example.wasm -n

6. 生成abi文件

$ baic-abigen -destination-file=example.abi -verbose=0 example.hpp

4.2.4. ABI

Application Binary Interface (ABI)是一個基于JSON的描述文件,是關(guān)于轉(zhuǎn)換JSON和二進制格式的用戶actions的。ABI還描述了如何將數(shù)據(jù)庫狀態(tài)和JSON的互相轉(zhuǎn)換。一旦您通過ABI描述了您的合約,開發(fā)者和用戶就能夠用JSON和您的合約無縫交互了。生成abi過程見上文。

5. 智能合約演示

5.1. 示例代碼 本節(jié)中,我們將一步步地構(gòu)建一個example合約。開始前,先完成上文的所有步驟。

示例代碼中 action1 和 action2 都是一個動作,一個動作表示單個操作,而一個交易是一個或多個動作的集合。合約和賬戶以動作的形式進行交流。動作可以單獨發(fā)送,也可以組合的形式發(fā)送。

5.2. 部署步驟

附件

合約開發(fā)示例也可以參照baic-sdk包中的test示例。合約部署詳細(xì)流程參照BAIC區(qū)塊鏈智能合約部署流程。BAIC官方網(wǎng)址:www.baic.io

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

相關(guān)文章

  • 從Statter公鏈的全生態(tài)應(yīng)用場景出發(fā)探索STT的潛力

    通過創(chuàng)新應(yīng)用場景,推動其生態(tài)系統(tǒng)的發(fā)展和貨幣的流通是每一個項目的必修課。StatterNetwork作為一個有著強大技術(shù)支撐的元宇宙項目,其主網(wǎng)幣STT不僅僅局限于簡單的價值儲存和交易媒介,而是廣泛的應(yīng)用在全生態(tài)和跨鏈生態(tài)中。本文將深入探討STT的主要應(yīng)用場景與價值。1.二級市場交易作為Statte

  • 亞洲區(qū)塊鏈學(xué)會會長:用戶破2億 波場TRON成全球最快增速公鏈

    近日,亞洲區(qū)塊鏈學(xué)會會長蔡志川博士發(fā)表了題為《波場TRON——數(shù)字未來之航,領(lǐng)航區(qū)塊鏈新時代》的文章指出,隨著新時代的來臨,區(qū)塊鏈技術(shù)和數(shù)字化經(jīng)營成為企業(yè)家升級的新引擎,孫宇晨和其創(chuàng)辦的波場TRON在過去幾年里發(fā)展迅速,尤其是在2023年,通過持續(xù)努力、技術(shù)創(chuàng)新和開放合作,波場TRON將繼續(xù)引領(lǐng)行業(yè)

    標(biāo)簽:
    區(qū)塊鏈應(yīng)用
  • 螞蟻鏈位列中國BaaS市場第一 核心技術(shù)自主可控

    9月4日,國際權(quán)威研究機構(gòu)IDC發(fā)布“中國BaaS廠商市場份額,2022”報告。報告顯示,螞蟻集團憑借螞蟻鏈以26.6%的市場占有率位居第一,騰訊云、華為云以16.3%、11.4%分列二三位。據(jù)了解,這是螞蟻鏈連續(xù)三年中國BaaS市場第一,據(jù)了解,螞蟻鏈?zhǔn)菄鴥?nèi)代表性的區(qū)塊鏈廠商,技術(shù)完全自主研發(fā)。其

    標(biāo)簽:
    區(qū)塊鏈技術(shù)
  • 護航區(qū)塊鏈生態(tài)安全,成都鏈安一直在行動

    2023年7月20日,成都鏈安創(chuàng)始人&CEO楊霞教授受邀在新一代信息技術(shù)安全與WEB3.0安全專題峰會上發(fā)表“區(qū)塊鏈安全態(tài)勢與技術(shù)研究”主題演講。成都鏈安楊霞教授首先介紹了全球區(qū)塊鏈安全態(tài)勢,指明目前全球區(qū)塊鏈安全事件層出不窮、居高不下,同時,區(qū)塊鏈、虛擬貨幣也被一些不法分子用來從事非法活動,監(jiān)管面

    標(biāo)簽:
    區(qū)塊鏈技術(shù)
  • 美酒鏈數(shù)字酒證,打開酒類收藏新方式

    李先生是一位酒品收藏家,他對白酒的熱愛無與倫比,用心收集了許多珍貴的酒品。但是,他的收藏之旅卻遭遇到了一次大打擊。李先生為了慶祝自己生日,決定品嘗自己收藏了20年的白酒。激動之下,他打開珍藏的白酒,只想品味一口歷經(jīng)歲月的美酒。然而,想不到的是,香氣撲鼻之際,他發(fā)現(xiàn)嘴中的味道與記憶中的完全不同。心情一

    標(biāo)簽:
    區(qū)塊鏈應(yīng)用
  • 成都鏈安榮登《嘶吼2023網(wǎng)絡(luò)安全產(chǎn)業(yè)圖譜》區(qū)塊鏈安全榜單

    成都鏈安上榜《嘶吼2023網(wǎng)絡(luò)安全產(chǎn)業(yè)圖譜》2023年7月10日,嘶吼安全產(chǎn)業(yè)研究院聯(lián)合國家網(wǎng)絡(luò)安全產(chǎn)業(yè)園區(qū)(通州園)正式發(fā)布《嘶吼2023網(wǎng)絡(luò)安全產(chǎn)業(yè)圖譜》。成都鏈安憑借自身技術(shù)實力以及在區(qū)塊鏈安全行業(yè)廣泛的品牌影響力,榮登《嘶吼2023網(wǎng)絡(luò)安全產(chǎn)業(yè)圖譜》區(qū)塊鏈安全賽道榜單。這也是成都鏈安連續(xù)第二

    標(biāo)簽:
    網(wǎng)絡(luò)安全

編輯推薦