初探比原链
为了能深入了解到区块链底层技术,我们需要选择某一个应用进行深入探究。
go公链开发实战这本书就是以比原链为基础对区块链技术进行深入的探讨,而且其代码开源,是一个值得学习的项目。
但是此书只能提供一些参考,更多的需要我们自己去探究很多东西。
通过此项目,也让我们对区块链技术可以有个比较深入的了解,而不是空空说一些概念上的东西。
加入比原链主网
运行比原链主网后,我们就可以同步全网账本。
为了后面能够深入了解底层技术,我们使用v1.0.5版本的代码进行运行和研究。
git clone https://github.com/Bytom/bytom.git
cd bytom
git fetch origin v1.0.5
git checkout v1.0.5
docker build -t="bytom:v1.0.5" .
docker run --name="mybytom" -itd -p 9888:9888 bytom:v1.0.5
docker exec -it mybytom sh
# 初始化 设置运行主网
bytomd init --chain_id mainnet
# 启动bytomd守护进程
nohup bytomd &>log.log &
web端钱包
访问localhost:9888
如果访问成功,则说明进程启动成功。
为了能够进入此钱包,我们需要使用命令行工具生成一个access-token。
在前面的容器中输入
bytomcli create-access-token test
将token的值填入web端即可。
创建一个比原链账户
可以使用web端或者命令行。
作为“专业人士”,还是使用命令行工具吧,比较符合极客身份。
关于命令行的使用,我们可以看看官网的使用详情。
# 创建账户之前需要密匙,使用create-key生成
# jaronnie为别名,123456位密码
bytomcli create-key jaronnie 123456
根据这个密匙创建一个账户:
bytomcli create-account jaronnie [替换上面的xpubs]
此时我们创建用户就成功了。
同步全网账本
我们知道,区块链是去中心化的,每个结点都拥有所有区块的数据。图中我已经对全网账本进行了同步,那具体该如何同步呢?
- 它会自动去同步(由较近的结点进行P2P连接),但是速度比较慢
- 去官网下载同步好的账本,放在具体的位置即可
我们选择第二种办法,较为方便:
去官网下载账本。
同步之前首先需要断网!!!切记!
远程调用区块链中的信息
我们可以通过官方提供的命令行工具获取所有的信息,但是如果需要远程调用这些信息呢?
如获取当前区块的高度:
bytomcli get-block-count
在该主网中,提供了9888端口供我们远程调用该服务。
接口为http://localhost:9888
比较坑的是:调用后出现问题,需要我们假如一些参数(token)才可以进行调用。
curl -X POST localhost:9888/get-block-count
先获取之前创建的access-token
bytomcli list-access-tokens
然后在调用是带入该参数即可调用成功:
curl -u test:017b61225961243a718987475d30bcdec93f98f3ab8e4d4fa6eb0bab01828903 -X POST localhost:9888/get-block-count
这其中的原理还需要好好研究,暂时先写到这里吧!