环境 Ubuntu 14.04.5 LTS
Bubichain version: v3
布比chain是一个具有跨链服务,合约模版,隐私保护以及使用DPos+BFT共识机制的区块链网络。
1. 下载源码
布比chain的代码是开源的,所以我们直接从github中clone源码。
git clone https://github.com/bubicn/bubichain-v3.git
2. 安装依赖
sudo apt-get install automake
sudo apt-get install autoconf
sudo apt-get install libtool
sudo apt-get install g++
sudo apt-get install libssl-dev
sudo apt-get install cmake
sudo apt-get install libbz2-dev
sudo apt-get install python
3. 编译(Linux系统)
cd bubichain-v3
make install
生成的可执行文件目录:bubichain-v3/bin,并且安装服务
sudo ln -s -f /etc/init.d/bubid /etc/rc1.d/S50bubid;\
sudo ln -s -f /etc/init.d/bubid /etc/rc2.d/S50bubid;\
sudo ln -s -f /etc/init.d/bubid /etc/rc3.d/S50bubid;\
sudo ln -s -f /etc/init.d/bubid /etc/rc4.d/S50bubid;\
sudo ln -s -f /etc/init.d/bubid /etc/rc5.d/S50bubid;\
sudo mkdir -p /usr/local/bubichain/data;
ln: failed to create symbolic link '/etc/init.d/bubi': File exists
ln: failed to create symbolic link '/etc/init.d/bubid': File exists
make[1]: Leaving directory '/root/Bubi/bubichain-v3/build/linux'
# 成功安装,离开目录
4. 服务
Bubichain-v3版本的服务是放在/usr/local/bubichain/上,总共有四个目录。
目录 | 描述 |
---|---|
bin | 存放可执行文件(编译后的bubi可执行程序) |
config | 配置文件目录包含:bubi.json、ca.crt、entity.crt、entity_privkey.pem、dh2048.pem |
data | 数据库目录,存放账本数据 |
script | 启停脚本目录 |
运行
service bubi start
运行状态
service bubi status
Bubi的脚本其实已经帮我们安装好服务的了,但是可能是某些操作的原因,我没有安装成功。我还需要手动强制把服务加进去,加上-f的原因是因为我之前安装了,但是没有成功,我强制让它安装。
sudo update-rc.d -f bubi defaults
服务检查
通过打开bubichain的配置文件可以发现,一个节点有四个关键的服务端口被打开了,如下图。
temp.png- Monitor节点
我们可以看到每个节点都配置了一个center的地址,可见Monitor Center是用来做监控的,便于实时报警。
Monitor监控图- P2P节点
这个端口没啥好说的,P2P技术必须开一个端口。可以看到ssl的配置路径,用于用户验证的。
- webserver和wsserver
这是通过http和websocket留给顶层应用调用的api。我们试一试。
curl 127.0.0.1:29333/getModulesStatus
# Result
{
"account_db" : {
"rocksdb.cur-size-all-mem-tables" : "200",
"rocksdb.estimate-table-readers-mem" : "23",
"rocksdb.stats" : "\n** Compaction Stats [default] **\nLevel Files Size(MB) Score Read(GB) Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Moved(GB) W-Amp Rd(MB/s) Wr(MB/s) Comp(sec) Comp(cnt) Avg(sec) Stall(cnt) KeyIn KeyDrop\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------\n L0 1/0 0 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0.000 0 0 0\n Sum 1/0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0.000 0 0 0\n Int 0/0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0.000 0 0 0\nFlush(GB): cumulative 0.000, interval 0.000\nStalls(count): 0 level0_slowdown, 0 level0_numfiles, 0 memtable_compaction, 0 leveln_slowdown_soft, 0 leveln_slowdown_hard\n\n** DB Stats **\nUptime(secs): 1926.5 total, 1170.3 interval\nCumulative writes: 0 writes, 0 keys, 0 batches, 0.0 writes per batch, ingest: 0.00 GB, 0.00 MB/s\nCumulative WAL: 0 writes, 0 syncs, 0.00 writes per sync, written: 0.00 GB, 0.00 MB/s\nCumulative stall: 00:00:0.000 H:M:S, 0.0 percent\nInterval writes: 0 writes, 0 keys, 0 batches, 0.0 writes per batch, ingest: 0.00 MB, 0.00 MB/s\nInterval WAL: 0 writes, 0 syncs, 0.00 writes per sync, written: 0.00 MB, 0.00 MB/s\nInterval stall: 00:00:0.000 H:M:S, 0.0 percent\n"
},
....
}
接下来的工作
接下来试试Bubichain的slave cluster的横向拓展能力以及证书功能。然后分析一下Bubichain的源码,看起来不难。C++写的,终于可以写回C++了。老本行不能丢。。
总体计划
计划半年内把全部主流的blockchain源码过一次,区块链是一个好技术,布比chain也是一个好东西。但是,浑水摸鱼的垃圾链太多,ppt可以骗人,语言可以骗人,但是代码骗不了人。
网友评论