本文面向零区块链基础入门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

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下执行一条命令【control.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编译运行的环境部署,构建了第一条链并完成了建链后的一些基本操作!如果你对以上操作有任何疑问的,欢迎添加百度超级链小助手,进入技术交流群跟我们一同探讨!
点击进入获得更多技术信息~~

新手入门 | 上链第一步,如何完成XuperChain环境、服务部署相关推荐

  1. paddlepaddle测试安装_专栏 | 新手入门?一步一步教你如何安装PaddlePaddle

    原标题:专栏 | 新手入门?一步一步教你如何安装PaddlePaddle 机器之心发布 来源:百度PaddlePaddle 不久之前,机器之心联合百度推出 PaddlePaddle 专栏,为想要学习这 ...

  2. windows phone开发第一步:搭建软件开发环境

    2019独角兽企业重金招聘Python工程师标准>>> windows phone开发第一步:搭建软件开发环境:http://www.cnblogs.com/hanjun/archi ...

  3. 做自媒体新手怎么入门?第一步教你增加短视频流量

    现在几乎是人人自媒体的时代,做自媒体新手怎么入门?小蚁同学告诉你新手做自媒体其实是先要从基础做起,现在大部分人都想在自媒体运营中赚到钱,无论是运用什么样的方法,比如说带货,直播等等. 做自媒体新手怎么 ...

  4. Titanic:数据挖掘入门的第一步

    关键词: 数据挖掘 机器学习 预测 Python 这个项目是kaggle上的一个入门级项目,专门给新手做的,这个项目比较简单,但是涉及到了数据挖掘和机器学习的各个方面,有关的文章和解释和很多,所以呢, ...

  5. 【C语言入门】第一步,初识C语言

    学习C语言,首先要入门.C语言的入门其实很简单,只需要对C语言的整体进行一个大概的了解.我自身在学习,也需要巩固,同时也为了帮助想学习的盆友们入门,共同进步,准备开启c入门系列的文章. 这一篇,我将介 ...

  6. 新手零基础学习Python第一步,搭建开发环境!

    如何在电脑上面搭建Python开发环境?本文会解答这个问题. Python是一门计算机编程语言,通过给计算机下达精确的指令以完成相应的任务或者事情. 人类掌握Python后,就可以利用这个工具告诉计算 ...

  7. vue(vue-cli+vue-router)+babel+webpack项目搭建入门 (第一步)

    vue(vue-cli+vue-router)+babel+webpack项目搭建入门<一> 本系列文章将介绍基于vue+webpack的前端项目的构建过程.文章分为四章内容,第一章介绍开 ...

  8. 小白入门计算机视觉第一步——编程+cv软件安装

    初步安装 Python MATLAB Visual Studio OpenCv Matplotlib模块 EasyGUI Meshroom 写在最前:建议先了解每个软件的用途,和自己的所需.要是装了不 ...

  9. python安装包_迈出Python学习第一步:Python开发环境的下载与安装

    所谓"磨刀不误砍柴工"."工欲善其事,必先利其器",都在告诉我们一个道理:要做好一个事情,事先做好充分的准备工作是非常重要的.所以在我们正式学习用Python编 ...

最新文章

  1. louvain算法_单细胞聚类(四)图解Leiden算法对Louvain算法的优化
  2. 啊哈c语言推箱子小游戏,啊哈C入门版学完了,现发推箱子源代码~
  3. 编写高效的PyTorch代码技巧(上)
  4. 爬虫使用urllib库报错urllib.error.URLError: 「urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate veri
  5. mysql服务器的搭建_基于linux的Mysql服务器的搭建
  6. 1040. Longest Symmetric String (25)-PAT甲级真题
  7. 1500ml等于多少l_发动机1.5T、2.0T大概等于多少L?涡轮增压就一定比自然吸气好?...
  8. hdu 1754 线段树(点修改)
  9. PHPStorm更换主题,调整背景和字体颜色
  10. 股票数据下载-如何下载股票历史行情数据?
  11. charles SSL证书安装
  12. 容器如何访问外部世界?- 每天5分钟玩转 Docker 容器技术(36)
  13. Origin图选择性粘贴到word出现问题,提示‘word出现问题’解决方法
  14. dmac学习之基于shadow register的multi block transfer
  15. Warning maven relocated xml-apis to 1.0.b
  16. ps在褶皱T恤上贴上图案
  17. Dell 730xd 加外部硬件 风扇变快
  18. 车载冰箱E-mark认证要多长时间?
  19. 网站被黑中毒WebShell木马的解决方案
  20. 评论:Ubiquiti Networking的UniFi是终极的专业家用网络解决方案

热门文章

  1. 误删除了_msdcs.domain.com
  2. 原码、反码、补码的运算 【2分钟掌握】
  3. 拯救者Y7000P 2020H款安装deepin20.5后资源空闲时经常出现风扇狂转现象
  4. golang基本数据类型和string的相互转换
  5. 【示例】使用maven构建scala项目并打包运行
  6. 【面试】Java集合篇--图解HashMap的put方法的具体流程
  7. Linux CentOS 6.x 关闭图形化界面的方法
  8. python3 import导入模块
  9. linux系统修改系统时间
  10. python爬虫搜特定内容的论文_Python 爬虫爬取指定博客的所有文章