写点什么

基于 XuperChain 的区块链项目从 0 到 N

作者:刘旭东
  • 2022 年 3 月 01 日
  • 本文字数:2013 字

    阅读完需:约 7 分钟

基于XuperChain的区块链项目从0到N

当前区块链技术十分火热,在很多领域都有应用价值。作为小团队以及个人开发者,学习深入区块链技术,并且完成项目的开发成为一种技能。本教程基于百度开源的 XuperChain 作为剖析对象,力图通过一个实例完整的掌握区块链的基础技术,并且能够帮助开发者进入区块链的世界。

区块链的个人价值

国外调查机构对区块链从业者进行深入的分析。初步得出结论,区块链的开发人员工资普遍高于其他种类开发者。区块链开发人员的平均工资为 15 万美元,远超 Web 开发者 7.5 万美元和 Mobile 开发者 10 万美金的年薪。对于中国的开发者,我想这个数据也是有一定的参考意义。所以掌握一定的区块链技术,能够提升开发者的基础开发水平,因为区块链技术需要更多的了解算法和底层的一些技术。另外对于业务的价值也不同于应用开发者,需要更加谨慎,这些特质都是一个高水平开发者的必备技能。



百度 XuperChain 项目

XuperChain 是百度 100%自主研发,拥有完全自主知识产权的区块链底层技术。拥有 500+篇核心技术专利。XuperChain 以 高性能、自主可控、开源 为主要设计目标,响应国家政策,打破了国外技术在区块链技术领域的垄断,致力于创建 最快、 最通用、 最好用 的区块链底层技术。2019 年 5 月,XuperChain 正式向全社会开源。2020 年 9 月,百度将 XuperChain 的内核技术 XuperCore 捐赠给开放原子开源基金会,以全新的开源治理模式面向全社会。


在 Ubuntu 上部署 XuperChain

在开启应用之前需要在系统上部署相关环境,这里我使用 aliyun 的 Ubuntu20 进行基础环境的部署工作,部署后,在后续文章中将进一步深入相关内容。


安装 golang 环境

在 Ubuntu 20.04 上安装 Go

完成下面的步骤,在 Ubuntu 20.04 上安装 Go

1.1 下载 Go 压缩包

在写这篇文章的时候,Go 的最新版为 1.14.2。在我们下载安装包时,请浏览Go 官方下载页面,并且检查一下是否有新的版本可用。


以 root 或者其他 sudo 用户身份运行下面的命令,下载并且解压 Go 二进制文件到/usr/local目录:


wget -c https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local

1.2 调整环境变量

通过将 Go 目录添加到$PATH环境变量,系统将会知道在哪里可以找到 Go 可执行文件。


这个可以通过添加下面的行到/etc/profile文件(系统范围内安装)或者$HOME/.profile文件(当前用户安装):


export PATH=$PATH:/usr/local/go/bin


保存文件,并且重新加载新的 PATH 环境变量到当前的 shell 会话:


source ~/.profile

1.3 验证 Go 安装过程

通过打印 Go 版本号,验证安装过程。


go version


输出应该像下面这样:


go version go1.14.2 linux/amd64

部署环境
$ cd xuperchain$ git checkout -b v5.1.0 v5.1.0$ make
复制代码
  • 在 output 目录得到 bin,conf, data 三个文件夹以及一个 control.sh 脚本

注解

make 时,可能出现拉取失败的情况,可以配置 GOPROXY 解决此问题

$ export GOPROXY=https://goproxy.cn,direct

GOPATH 问题报错,不推荐使用 go1.11 版本之前的版本

GCC 版本需要升级到 4 或 5 以上

在 output 下,有 bin, conf, data 三个目录,以及一个 control.sh 脚本


启动服务

xuper5 为我们启动服务提供了方便的脚本,只需要一条命令使用 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 查看


确认服务状态

按照默认配置,xchain 服务会监听 37101 端口,可以使用如下命令查看 xchain 服务的运行状态

 # 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": {}}
复制代码


以上完成了区块链的基本设置工作,后面将开展后续工作


内容待续…

发布于: 21 小时前阅读数: 90
用户头像

刘旭东

关注

一个乐于思考的工程师 2017.11.10 加入

七年就是一辈子,交个朋友!

评论 (1 条评论)

发布
用户头像
期待后续更新
4 小时前
回复
没有更多了
基于XuperChain的区块链项目从0到N_区块链_刘旭东_InfoQ写作平台