螞蟻區塊鏈使用搭建方法

螞蟻開放聯盟鏈搭建和使用方法

1準備工作

1.1訪問螞蟻開放聯盟鏈,並使用支付寶賬號登錄

https://auth.cloud.alipay.com/#/cloudauth/login?goto=https:%2F%2Fopenchain.cloud.alipay.com%2F

1.2申請AccessKey和access-id

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-hAw1BpFL-1592904071709)(E:\讀研相關\區塊鏈\螞蟻區塊鏈\images\1.1.jpg)]

生成相應的文件access.key文件作爲私鑰,必須妥善保管

生成access-id: dQ5yMLO1OEBECIRY

****在 導航欄-證書及開發組件 中可查詢

在這裏插入圖片描述

1.3選擇開發語言(以GO語言爲例)

1.3.1創建鏈上用戶

輸入賬戶名稱:mikepony0820

生成租戶KmsKeyId:ma69jcz6OEBECIRY1592531431813

1.3.2給賬號分配“燃料”,在 導航欄-燃料管理 中可查詢

初始系統會贈送10,000,000汽油費,將十分之一分配給鏈上賬戶

在這裏插入圖片描述

2.GO工程Demo下載與配置

2.1下載GoSDK,文件保存爲restclient-go-sdk.zip

https://baas-market-repo-prod.oss-cn-shanghai.aliyuncs.com/openchain/restclient-go-sdk.zip

2.2配置sdk環境

將壓縮文件拷貝至$GOPATH/src/gitlab.alipay-inc.com/antchain文件夾下(如果沒有需要自己創建對應文件夾路徑),解壓restclient-go-sdk.zip
在這裏插入圖片描述

2.3下載GO Demo工程

https://baas-market-repo-prod.oss-cn-shanghai.aliyuncs.com/openchain/GoProject.zip

2.4GO Demo工程配置文件

2.4.1 將1.2中生成的access.key替換項目中access.key

在這裏插入圖片描述

2.4.2配置rest-config.json文件

{
  "RestUrl": "https://rest.baas.alipay.com",
  "AccessId": "dQ5yMLO1OEBECIRY",//採用1.2中生成的access-id
  "AccessSecret": "./access.key",//使用私鑰的路徑,建議使用相對路徑
  "MaxIdleConns": 10,
  "IdleConnTimeout": 30,
  "RetryMaxAttempts": 5,//合約調用時錯誤的重試次數
  "BackOffPeriod": 1000
}

2.4.3配置demo.go中的全局變量

在這裏插入圖片描述

全局變量 全局變量意義 值的來源
RestBizTestBizID 鏈ID 見智能合約3.3.1中的選擇鏈id
RestBizTestAccount 賬戶名 1.3.1賬戶名稱
RestBizTestKmsID 賬戶id 1.3.1生成租戶KmsKeyId
RestBizTestTenantID 租約ID https://admin.cloud.alipay.com/?tenantName=OEBECIRY#/accountsinfo? 租戶信息-租戶id
DeployBit 部署合約內容 見智能合約3.3.2中字節碼

3.智能合約相關開發

3.1合約創建

創建合約工程後填寫“合約工程名”和“合約類型”(這裏選擇Solidity),並選擇空工程
在這裏插入圖片描述

3.2編寫合約,這裏使用已經編寫完成的合約做測試

pragma solidity >0.4.20 <0.5.0;

contract SimpleStorage{
    uint64 myData;
    function setData(uint64 newData) public{
        myData = newData;
    }
    
    function getData() public view returns(uint64){
        return myData;
    }
    
    function pureAdd(uint64 a,uint64 b)public pure returns(uint64,uint64){
        return (a+b,a);
    }
}

3.3選擇開放鏈並編譯

3.3.1選擇默認開放鏈

在這裏插入圖片描述

3.3.2編譯並記錄相應的字節碼

在這裏插入圖片描述

字節碼代替了智能合約的所有信息用於後期部署和調用

4.GO工程運行

demo中提供了5個功能https://tech.antfin.com/docs/2/160376#h3-u67E5u8BE2u56DEu6267

功能名 功能作用
TestDeposit 異步存證
TestDepositSyncWithTransaction 同步存證
TestQueryTransaction 查詢交易
TestQueryReceipt 回執查詢
TestDeployContractAndCallContract 部署和調用合約

4.1重點討論部署和調用合約幾個坑:

  • contractname必須保持唯一性,與已部署在開放鏈上的contractname可使用uuid配置對應名稱

  • orderid部署和調用時必須保持不一致

  • 調用函數restclient.CallContract(…,methodSignature,inputparamlist,outTypes,…)

    • methodSignature必須保持和3.2.1中智能合約的函數名稱一致例如:“pureAdd(uint64,uint64)”
    • inputparamlist必須採用json列表的方式輸入,並且輸入必須爲string類型,json對象得輸入會造成500錯誤
    • outTypes必須和3.2.1中智能合約返回值一致,例如:
      在這裏插入圖片描述

5.補充

5.1在部署成功之後系統會反饋交易hash,可以利用支付寶app或者網站查詢相關情況,體現了區塊鏈得溯源性
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章