中移鏈合約常用開發介紹(三)工程化開發智慧合約
一、目的
本檔案基於中移鏈合約常用開發,介紹了工程化開發智慧合約的方法。本檔案將從自動生成專案展開,適合剛接觸合約開發的開發人員入門工程化開發。
二、智慧合約介紹
區塊鏈作為一種分散式可信計算平臺,去中心化是其最本質的特徵。每筆交易的記錄不可篡改地儲存在區塊鏈上。智慧合約中定義可以在區塊鏈上執行的動作action和交易transaction的程式碼。可以在區塊鏈上執行,並將合約執行狀態作為該區塊鏈例項不可變歷史的一部分。
因此,開發人員可以依賴該區塊鏈作為可信計算環境,其中智慧合約的輸入、執行和結果都是獨立的,不受外部影響。
三、術語解釋
CMake
CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。它能夠輸出各種各樣的makefile或者project檔案,能測試編譯器所支援的C++特性,組態檔取名為CMakeLists.txt。熟悉某個整合開發環境(IDE)的開發者可以透過CMake用標準的方式建構軟體。
工程化開發
工程化是提高程式開發效率與質量的必由之路。工程化的開發專案主要體現在讓專案檔案以規範清晰的架構排布。
四、環境準備
(一)完全配置的本地開發環境
建立智慧合約專案並編譯部署需要完全配置的本地開發環境,確保系統可以執行eosio系列工具指令,如eosio-cpp。
可使用的環境有:
-
Linux Distributions
-
Amazon Linux 2
-
CentOS Linux 8.x
-
CentOS Linux 7.x
-
Ubuntu 20.04
-
Ubuntu 18.04
-
macOS
-
macOS 10.14 (Mojave)
-
macOS 10.15 (Catalina)
具體搭建過程可參考 [ 中移鏈(基於EOS)測試環境搭建]
(二)CMake及相關依賴
如果環境中未安裝CMake、Make等工具包,可以使用命令列語句進行安裝:
Mac OS
下載cmake提供的安裝包並安裝,開啟cmake點選選單欄的Tools->How to Install For Command Line Use,可以在介面中找到安裝該命令列工具所需的語句,例如:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
Ubuntu
在終端中使用以下語句下載並安裝cmake:
sudo apt install -y gcc g++ make cmake
CentOS
sudo yum install -y gcc gcc-c++ make cmake
五、開始建立工程
(一)自動建立
1、使用eosio-init指令初始化專案
要用CMake編譯EOSIO智慧合約,你需要一個CMake檔案。要使用新的eosio-init工具生成目錄結構存根,.hpp、.cpp檔案和CMake配置檔案。
執行以下步驟自動建立一個架構分明的專案檔案:
cd ~/biosboot/genesis eosio-init --path=. --project=test_contract
-
--path=專案資料夾建立的位置,.表示就在當前路徑下建立
-
--project=專案名,本例中命名為test_contract
2、檢查專案檔案
指令執行成功後可以在指定路徑下得到test_contract資料夾,其中存放著專案預設的資料夾和檔案:
-
資料夾
-
build
-
include
-
ricardian
-
src
-
檔案
-
CMakeLists.txt
-
README.txt
(二)初始化檔案簡介
自動生成的初始化專案中存在一些預設生成的樣例檔案,主要內容為一個hi動作的實現,會在呼叫時列印出打招呼的賬戶名。
.hpp檔案中的內容如下:
#include <eosio/eosio.hpp>
using namespace eosio;
CONTRACT test_contract : public contract {
public:
using contract::contract;
ACTION hi( name nm );
using hi_action = action_wrapper<"hi"_n, &test_contract::hi>;
};
.cpp檔案中的內容如下:
#include <test_contract.hpp> ACTION test_contract::hi( name nm ) { /* fill in action body */ print_f("Name : %\n",nm); }
不難看出該初始化專案中的兩個C++程式檔案僅作為樣例展示該智慧合約工程中的檔案存放位置和編寫格式。開發人員可以根據自己的需要按照此框架編寫自己的智慧合約檔案。
(三)專案編譯
執行以下指令編譯專案:
cd build cmake .. make
得到編譯成功的結果後,會在build資料夾中生成用於部署合約的.wasm和.abi檔案。
六、常見問題
由於版本問題cmake命令失敗
使用cmake編譯專案時失敗,返回提示為:
CMake Error in CMakeLists.txt: No cmake_minimum_required command is present. A line of code such as cmake_minimum_required(VERSION 3.25) should be added at the top of the file. The version specified may be lower if you wish to support older CMake versions for this project. For more information run "cmake --help-policy CMP0000".
需要再test_contract/CMakelist.txt檔案中新增如下語句,指明cmake版本:
cmake_minimum_required(VERSION 3.25)
電腦訪問DDC網路門戶
ddc.bsnbase.com
-END-
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70012206/viewspace-2947445/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中移鏈合約常用開發介紹 (一)開發基本流程
- 中移鏈合約常用開發介紹(四)工程樹目錄
- 中移鏈合約常用開發介紹 (二)多索引表的使用索引
- 智慧合約系統開發原理介紹丨智慧合約開發原始碼詳情原始碼
- 區塊鏈智慧合約開發區塊鏈
- matic馬蹄鏈智慧合約dapp系統開發搭建介紹APP
- 智慧合約鏈遊開發詳情丨智慧合約鏈遊系統開發(開發方案)及原始碼分析原始碼
- CeresDAO智慧合約模式系統開發技術介紹模式
- Dapp智慧合約遊戲鏈遊開發丨智慧合約遊戲鏈遊系統開發案例版APP遊戲
- 區塊鏈BSC智慧合約DAPP開發區塊鏈APP
- 中移鏈系統合約管控功能介紹
- 馬蹄鏈Dapp智慧合約(系統開發)案例丨馬蹄鏈MATIC智慧合約技術開發原理APP
- SET智慧合約量化系統開發|秒合約量化開發搭建
- Dapp 合約代幣系統開發智慧合約APP
- 馬蹄鏈智慧合約DAPP開發需求丨馬蹄鏈智慧合約DAPP質押挖礦系統開發(開發案例)APP
- NFT鏈上鑄造交易智慧合約模式系統開發詳情介紹模式
- polygon鏈(matic)矩陣公排智慧合約系統開發詳細介紹Go矩陣
- FDF迴圈遊戲互助合約開發|polygon馬蹄鏈智慧合約遊戲Go
- DAPP鏈上合約互助模式系統開發詳情介紹APP模式
- PG盤古OSK挖礦dapp系統開發智慧合約開發介紹APP
- 鏈上DAPP系統開發|智慧合約DAPP開發搭建APP
- FDF互助遊戲智慧合約開發(馬蹄鏈開發)遊戲
- 智慧合約Dapp專案如何開發構建?智慧合約開發原始碼示例APP原始碼
- DAPP開發流程 | DAPP智慧合約開發APP
- NFT智慧合約開發鏈遊優勢分析
- 區塊鏈DApp開發 | 跨鏈智慧合約技術搭建開發區塊鏈APP
- 智慧合約開發環境搭建及Hello World合約開發環境
- 關於馬蹄鏈智慧合約DAPP系統開發方案流程詳情介紹APP
- DAPP馬蹄鏈智慧合約專案系統開發詳情技術介紹APP
- NFT鑄造鏈上智慧合約模式系統開發丨DAPP技術介紹模式APP
- DAPP馬蹄鏈智慧合約開發正式版丨DAPP馬蹄鏈智慧合約系統開發(詳解及案例)APP
- DApp智慧合約系統開發APP
- 區塊鏈智慧合約技術系統開發區塊鏈
- Hyperledger Fabric Node.js 智慧合約鏈碼開發Node.js
- 長沙幣安鏈智慧合約開發技術
- 馬蹄鏈智慧合約dapp系統開發搭建APP
- NFT鏈上鑄造交易智慧合約開發demo
- JAva智慧合約DAPP系統開發(區塊鏈)JavaAPP區塊鏈