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