新手入門 | 上鍊第一步!如何完成XuperChain環境、服務部署

本文面向零區塊鏈基礎入門XuperChain的開發者,介紹瞭如何部署XuperChain基礎可用環境以及XuperChain服務部署基本操作和配置,幫助開發者們快速瞭解XuperChain部署流程和基本功能,完成上鍊第一步。

本文主要分爲兩大模塊:XuperChain環境部署和Xuperchain服務部署

 

XuperChain環境部署

第一步 準備環境

XuperChain主要由Golang語言開發,首先需要準備編譯運行的環境:

(1)根據您使用的電腦操作系統,安裝go語言編譯環境 (推薦使用的版本爲1.14或1.15):https://go.dev/dl/

(2)安裝Git,幫助有效、高速地完成項目版本管理:https://git-scm.com/download

第二步 編譯XuperChain

(1) 完成XuperChain編譯運行環境後,使用Git將XuperChain源代碼下載到本地:https://github.com/xuperchain/xuperchain

 

(2)完成源代碼下載後,在XuperChain目錄下執行以下命令:

$ cd xuperchain
$ git checkout v5.1.0
$ make

執行命令後,在output目錄可以得到bin、conf、data 三個文件夾以及一個 control.sh 腳本,各目錄的功能如下表:

經過以上的操作就已經完成對XuperChain編譯環境的基本部署。

 

Xuperchain服務部署

完成XuperChain基本環境部署後,接下來將對XuperChain服務進行部署,此部分內容將以XuperChain單節點single共識的鏈爲例操作,教大家如何快速啓動一條鏈,並在鏈上使用一些基本功能。

 

啓動單節點 single 共識的鏈

XuperChain的最新版本爲啓動服務提供了方便的腳本,只需要在output下執行一條命令【controll.sh】即可啓動單節點 single 共識的鏈。

# 啓動xuper鏈
$ bash control.sh start
/home/ubuntu/go/src/github.com/xuperchain/output/bin/xchain
/home/ubuntu/go/src/github.com/xuperchain/output/conf/env.yaml
2021/08/10 19:26:57 start create chain.bc_name:xuper genesis_conf:./data/genesis/xuper.json env_conf:./conf/env.yaml
2021/08/10 19:26:57 create ledger succ.bc_name:xuper start xchain. cmd:nohup /home/ubuntu/go/src/github.com/xuperchain/output/bin/xchain startup --conf /home/ubuntu/go/src/github.com/xuperchain/output/conf/env.yaml >/home/ubuntu/go/src/github.com/xuperchain/output/logs/nohup.out 2>&1 &
.start proc succ.
start finish.pid:17242
Done!

【control.sh】腳本提供了 start、stop、restart、forcestop 四個命令,可以通過執行【bash control.sh help】命令查看。

 

按照默認配置,Xuperchain服務會監聽37101端口,可以使用如下命令查看Xuperchain服務的運行狀態:

# check服務運行狀況
 $ bin/xchain-cli status -H 127.0.0.1:37101
 {
   "blockchains": [
   {
     "name": "xuper",
     "ledger": {
       "rootBlockid": "d93c260ea5639a55e1fcad3df494495efad5c65d46e846b6db3a9194a4212886",
       "tipBlockid": "9555ca5af579db67734f27013dfaae48d93e4c3e8adcf6ca8f3dc1adb06d0b6f",
       "trunkHeight": 137
     },
     ....
         "9555ca5af579db67734f27013dfaae48d93e4c3e8adcf6ca8f3dc1adb06d0b6f"
      ]
     }
   ],
  "peers": null,
  "speeds": {}
}

 

XuperChain基本功能使用

 

第一步 創建賬號

在XuperChain中,賬號類型分爲“普通賬號”和“合約賬號”。

普通賬號由程序離線生成,在本地保存;合約賬號是XuperChain中用於智能合約管理的單元,由普通賬戶發起交易,在鏈上生成的一個16位數字的賬戶,存儲在鏈上。發起合約相關交易,比如合約調用時,需要使用合約賬戶。

創建賬號的操作如下:

# 創建普通用戶, 生成的地址,公鑰,私鑰在--output 指定位置
$ bin/xchain-cli account newkeys --output data/bob
create account using crypto type default
create account in data/bob

## 創建合約賬號
bin/xchain-cli account new --account 1111111111111111 --fee 2000

賬號創建完成後會在data/bob目錄下會看到文件address,publickey,privatekey生成,這就是本次創建賬號的地址、公鑰和私鑰,在下面的操作中將會用到。

 

第二步 查詢資源餘額

以普通賬號爲例,使用如下命令查詢賬號資源餘額,其中-H參數爲Xuperchain服務的地址。

# 根據賬戶存儲的路徑,查詢該賬戶的餘額。--keys爲要查詢的賬戶的地址
$ bin/xchain-cli account balance --keys data/keys
100000000000338000000

# 根據地址查詢該賬戶餘額
$ bin/xchain-cli account balance TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY
100000000000401000000

 

第三步 轉賬

轉賬操作需要提供源賬號的私鑰目錄,也就類似“創建新賬號”中生成的目錄,這裏注意到並不需要提供目標賬號的任何密鑰,只需要提供地址即可。命令執行的返回是轉賬操作的交易id(txid)。

# --keys 從此地址 轉給 --to地址 --amount 金額
$ bin/xchain-cli transfer --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 10 --keys data/keys/ -H 127.0.0.1:37101
24d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4

 

第四步 查詢賬號交易信息

通過以下命令可以查詢交易的信息,包括交易狀態、交易的目標賬號、交易的金額、所在的區塊(如果已上鍊)等內容。

# 可查詢上一步生成的txid的交易信息
$ bin/xchain-cli tx query 24d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4 -H 127.0.0.1:37101
{
   "txid": "24d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4",
   "blockid": "e83eae0750d0f48cc2b45f25d853fb587d124552851bf6693757e0715837b377",
   "txInputs": [
    {
      "refTxid": "2650aa0c0e8088def98093a327b475fa7577fa8e266c5775435f7c022fe0f463",
      "refOffset": 0,
      "fromAddr": "TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY",
      "amount": "1000000"
    }
   ],
  ......
  "authRequireSigns": [
   {
      "publickey": "{\"Curvname\":\"P-256\",\"X\":36505150171354363400464126431978257855318414556425194490762274938603757905292,\"Y\":79656876957602994269528255245092635964473154458596947290316223079846501380076}",
      "sign": "30460221009509e35b1341284b5d1f22b48c862ecfe2856056196c5650bc203b8a4ed0d454022100f8d286c63ad8eb3bc605bc08da4ff417aaff3c0433a31039f608bb47a90b1267"
    }
   ],
  "receivedTimestamp": 1628596303271475925,
  "modifyBlock": {
    "marked": false,
    "effectiveHeight": 0,
    "effectiveTxid": ""
  }
}

 

第五步 查詢block信息

通過block id可以查詢區塊的相關信息,包括區塊內打包的交易、所在鏈的高度、前驅/後繼區塊的id等內容。

# 可查詢上一步交易所在的block id信息
$ bin/xchain-cli block e83eae0750d0f48cc2b45f25d853fb587d124552851bf6693757e0715837b377 -H 127.0.0.1:37101

{
"version": 1,
"blockid": "e83eae0750d0f48cc2b45f25d853fb587d124552851bf6693757e0715837b377",
"preHash": "41c74e22ccea7dcf1db6ba0d7e1eefd6cfbd7bac7659c3d8cd33d2a009201003",
"proposer": "TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY",
"sign": "3044021f349da2d5c238175a6e7df23262eeb122014f0a0040fc4ce109a3ab2c22b2700221009d92198061193fcd47e25c8f5c2b54e1ea2ffb4aaab675384c4d6408ab2b63de",
"pubkey": "{\"Curvname\":\"P-256\",\"X\":36505150171354363400464126431978257855318414556425194490762274938603757905292,\"Y\":79656876957602994269528255245092635964473154458596947290316223079846501380076}",
"merkleRoot": "d22d2423a93911e42f96370167d878f6780fea44fac6a13771c7532e1969c949",
"height": 492,
  ......
"txCount": 2,
"merkleTree": [
"4a7e42654cf79d6525f6b6d55673b57a92048ee96de950e962db99b102e048a4",
"24d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4",
"d22d2423a93911e42f96370167d878f6780fea44fac6a13771c7532e1969c949"
  ],
"inTrunk": true,
"nextHash": "a541ed97789537166bec5778aad7ba0f68e52a04d1073b244ee1ea6cd38d8f63",
"failedTxs": null,
"curTerm": 0,
"curBlockNum": 0,
"justify": {}
}

到這裏,你已經完成了XuperChain編譯運行的環境部署,構建了第一條鏈並完成了建鏈後的一些基本操作!如果你對以上操作有任何疑問的,歡迎添加百度超級鏈小助手,進入技術交流羣跟我們一同探討!

 

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