无意中发现趣链最近推出了一款区块链(联盟链)的平台,其试用版可供学生,爱好者和从业人员学习。正好最近想了解一下联盟链,就将其下载下来游玩一下。如果也想了解这个平台的朋友,可以点击这个链接。我也是基于官方文档来完成这篇文章的
产品架构下图是源于官网的架构图,由于该产品并未开源(仅部分功能开源),感觉目前版本可能没有做全部的支持。目前支持的功能可以点击这个链接查看。
学习下面的架构设计,如果以后你需要设计一个联盟链的架构,就有了一个参考的方向。
目前这个平台已经支持 RBFT,SOLO 共识算法。一般联盟链支持的共识算法都是 BFT 拿来修改的,RBFT 是趣链自己搞的高健壮性(Robust) BFT 的共识算法。SOLO 共识是针对于单点的共识,估计也是趣链自己搞的吧,想了解这两个共识机制的朋友,可以戳这个链接。
官方文档提到了自适应共识算法,不太清楚这个自适应是自动根据情况进行选择共识算法,还是只是说支持多种共识算法,但要手工配置。
智能合约执行引擎这一块目前平台支持 HVM(Java 语言编写的智能合约)和 EVM(Solidity 语言编写的智能合约),试用版未支持 BVM(Go 语言编写的智能合约)。对于智能合约这一块,我一直觉得联盟链能够支持很多传统语言来进行开发,这一点比很多公链自己搞一套编程语言来进行智能合约开发要好。
数据存储趣链的这个平台主要的账户模型还是传统的用户模型。即某用户A发起一笔合约调用交易,使得某合约中的变量a的值由0变为1,并持久化到合约账户数据库中存储。
在存储上,采用了混合存储的方式,针对不同数据类型设计相应的存储方式。这种混合存储的方式不太清楚现在的公链有没有用这样的架构,据我了解好像是没有的。
加密的话,该平台提供了国标和国密两套。
扩展功能扩展功能我关注的是数据索引和数据归档,其他的扩展功能可以去官方文档了解。
数据索引也就是数据搜索的意思,目前区块链链上搜索一直是学界和产业界的关注点,因为区块链自身的数据结构,往往只能遍历,而且是精确遍历。在趣链的官方文档中,提到了它可以支持模糊搜索,比较好奇是怎么实现的。
数据归档理论上链上数据会不断增加,该平台提供了数据归档的功能,让一部分数据迁移至线下。
安装步骤 先决条件一般来说区块链平台最好还是运行在 Linux 环境下,此次我选择了 ubuntu18.04 这个版本,至于 ubuntu 的安装方式这里就不做过多介绍了。
ubuntu 安装好后,一些基本的配置也要做好,如换国内的源,安装 curl,git,pip3.
同时还需要安装 docker 和 docker-compose,这一部分的安装教程可以直接参见官方教程,docker 的安装,docker-compose 的安装。免费版对 docker 的要求是 v19.03版和 docker-compose 为 v1.27.4 版本。最新的 docker 和 docker-compose 都符合版本要求。
安装合并版该平台提供了合并版(集成了轻量级 Baas 平台)和单独版本(可以支持多机部署),我这里选择了合并版,对学生和爱好者来说足够了。
下面的步骤也是参照官方教程,你可以点击这个链接查看。
第一步,到指定链接注册,下载安装包。
第二步,解压安装包后,进入目录,安装依赖
noname@noname-MRC-WX0:~/文档$ cd trial/
noname@noname-MRC-WX0:~/文档/trial$ ls
trial_version
noname@noname-MRC-WX0:~/文档/trial$ cd trial_version/
noname@noname-MRC-WX0:~/文档/trial/trial_version$ ls
cfg.toml docker requirements.txt script stop.sh
conf README.md reset.sh start.sh
在该目录下,使用 pip 或 pip3 安装
pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt
第三步,编辑配置文件
一般来说,只需要修改网卡的部分,因为我是在本机测试,所以只要将网卡设为 127.0.0.1 即可。
通过 ifconfig 来查看你的网卡
noname@noname-MRC-WX0:~/文档/trial/trial_version$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:77:e7:12:48 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 374 bytes 36518 (36.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 374 bytes 36518 (36.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.6.224.145 netmask 255.255.248.0 broadcast 10.6.231.255
inet6 fe80::9291:ad6a:2875:db36 prefixlen 64 scopeid 0x20<link>
ether f4:d1:08:bf:9c:17 txqueuelen 1000 (Ethernet)
RX packets 8631 bytes 8581795 (8.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5385 bytes 1168816 (1.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo 为还回地址(127.0.0.1),打开配置文件,将网卡部分修改为 lo,lo 为 local 的简化表达。
打开配置文件,gedit conf/values.toml
# 全局配置
[global]
# 安装用户
user = "hyperchain"
# 网络配置,具体参考《README.md》文档
# 默认 eth0,这里我修改为了 lo
network = "lo"
[console]
# 免费试用版web页面访问端口
port = 30080
[flato]
# 是否自动部署flato节点
enable=true
[flato.node1]
# 节点1的访问端口
jsonport=43221
[flato.node2]
# 节点2的访问端口
jsonport=43222
[flato.node3]
# 节点3的访问端口
jsonport=43223
[flato.node4]
# 节点4的访问端口
jsonport=43224
第四步,开始安装了,启动 bash 命令,运行下面的命令就可以慢慢等待,我是等了小半个上午才装好。非 root 要加 sudo,不然会报错“权限拒绝”
sudo ./start.sh
然后就慢慢等待吧。
第五步,安装好后就可以通过 https://127.0.0.1:30080 这个链接访问了,并体验了。
如果你想删除组建或者重置数据则使用下面的两条命令,特别的是,stop.sh 我以为只是停用组建,结果没想到是直接删除了了,导致我第二次启动的时候,所有的模块要重新下载,因为下载等待时间过于漫长,加之该平台未开源,遂放弃。
// 删除组件
sudo ./stop.sh
// 重置数据
sudo ./reset.sh
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)