環(huán)境 Ubuntu 14.04.5 LTS
Bubichain version: v3
布比chain是一個(gè)具有跨鏈服務(wù)帚称,合約模版州袒,隱私保護(hù)以及使用DPos+BFT共識(shí)機(jī)制的區(qū)塊鏈網(wǎng)絡(luò)化借。
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系統(tǒng))
cd bubichain-v3
make install
生成的可執(zhí)行文件目錄:bubichain-v3/bin虱朵,并且安裝服務(wù)
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. 服務(wù)
Bubichain-v3版本的服務(wù)是放在/usr/local/bubichain/上钓账,總共有四個(gè)目錄。
目錄 | 描述 |
---|---|
bin | 存放可執(zhí)行文件(編譯后的bubi可執(zhí)行程序) |
config | 配置文件目錄包含:bubi.json絮宁、ca.crt梆暮、entity.crt、entity_privkey.pem绍昂、dh2048.pem |
data | 數(shù)據(jù)庫(kù)目錄啦粹,存放賬本數(shù)據(jù) |
script | 啟停腳本目錄 |
運(yùn)行
service bubi start
運(yùn)行狀態(tài)
service bubi status
Bubi的腳本其實(shí)已經(jīng)幫我們安裝好服務(wù)的了,但是可能是某些操作的原因窘游,我沒有安裝成功唠椭。我還需要手動(dòng)強(qiáng)制把服務(wù)加進(jìn)去,加上-f的原因是因?yàn)槲抑鞍惭b了忍饰,但是沒有成功贪嫂,我強(qiáng)制讓它安裝。
sudo update-rc.d -f bubi defaults
服務(wù)檢查
通過打開bubichain的配置文件可以發(fā)現(xiàn)艾蓝,一個(gè)節(jié)點(diǎn)有四個(gè)關(guān)鍵的服務(wù)端口被打開了力崇,如下圖。
- Monitor節(jié)點(diǎn)
我們可以看到每個(gè)節(jié)點(diǎn)都配置了一個(gè)center的地址赢织,可見Monitor Center是用來做監(jiān)控的亮靴,便于實(shí)時(shí)報(bào)警。
- P2P節(jié)點(diǎn)
這個(gè)端口沒啥好說的敌厘,P2P技術(shù)必須開一個(gè)端口台猴。可以看到ssl的配置路徑俱两,用于用戶驗(yàn)證的。
- webserver和wsserver
這是通過http和websocket留給頂層應(yīng)用調(diào)用的api曹步。我們?cè)囈辉嚒?/p>
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++了。老本行不能丟筹麸。活合。
總體計(jì)劃
計(jì)劃半年內(nèi)把全部主流的blockchain源碼過一次,區(qū)塊鏈?zhǔn)且粋€(gè)好技術(shù)物赶,布比chain也是一個(gè)好東西白指。但是,渾水摸魚的垃圾鏈太多酵紫,ppt可以騙人告嘲,語言可以騙人错维,但是代碼騙不了人。