本文面向零区块链根底入门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...

(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.yaml2021/08/10 19:26:57 start create chain.bc_name:xuper genesis_conf:./data/genesis/xuper.json env_conf:./conf/env.yaml2021/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:17242Done!

【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/bobcreate account using crypto type defaultcreate 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/keys100000000000338000000# 依据地址查问该账户余额$ bin/xchain-cli account balance TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY100000000000401000000

第三步 转账

转账操作须要提供源账号的私钥目录,也就相似“创立新账号”中生成的目录,这里留神到并不需要提供指标账号的任何密钥,只须要提供地址即可。命令执行的返回是转账操作的交易id(txid)。

# --keys 从此地址 转给 --to地址 --amount 金额$ bin/xchain-cli transfer --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 10 --keys data/keys/ -H 127.0.0.1:3710124d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4

第四步 查问账号交易信息

通过以下命令能够查问交易的信息,包含交易状态、交易的指标账号、交易的金额、所在的区块(如果已上链)等内容。

# 可查问上一步生成的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编译运行的环境部署,构建了第一条链并实现了建链后的一些基本操作!如果你对以上操作有任何疑难的,欢送增加百度超级链小助手,进入技术交换群跟咱们一起探讨!