目錄
- 前言
- 1. fabric 介紹
-
- 1.1 fabric和以太坊的差別
- 1.2 身份管理介紹
- 1.3 賬本:每個節點中都有
- 1.4 交易管理介紹
- 1.5 節點介紹
- 1.6 通道介紹--channel
- 2. fabric 環境搭建
-
- 2.1 安裝虛拟機
- 2.2 安裝必要配置
-
- 2.2.1換源
- 2.2.2 安裝vim
- 2.2.3 安裝python2.7 以及 python-pip2
- 2.2.5 安裝go
- 2.2.6 安裝docker
- 2.2.7 安裝docker-compose
- 2.2.8 Fabric的Docker鏡像下載下傳
- 2.2.9 拉取fabric代碼
- 最後
前言
我知道學習新事物的時候,環境總是最難的,很多人因為環境搭不好而放棄,這篇部落格非常詳細的說明了安裝fabric的每一個步驟,我希望喜歡區塊鍊的同學可以試一下~
在
的世界裡面,
區塊鍊
的分量還是很重的~
超級賬本
哪一步安裝不成功可以直接私聊我~
1. fabric 介紹
Hyperledger(超級賬本)
是Linux基金會旗下的項目,
Fabric
是
Hyperledger
項目裡最早也是目前應用最廣泛的
區塊鍊
項目,最初由IBM開發,後來捐助給基金會。
- 是一個開源的企業級需要許可的分布式賬本技術平台
- 是一個高度子產品化和可配置架構(a,b,c)
- 支援不同元件的可插拔實作
- 智能合約支援多語言:go,java,node.js等
1.1 fabric和以太坊的差別
差別 | 以太坊 | fabric |
---|---|---|
鍊的狀況 | “鍊”是信任的錨點,所有的信任都來自于同一條鍊 | 每個智能合約可以建立新的鍊,也可以和其他智能合約共用一個鍊 |
合約環境 | 有自己的沙盒執行環境(EVM) | 使用了 Docker 機制實作智能合約 |
合約語言 | solidity | go,java,nodejs |
總體性能 | 自身耦合度較高 | 靈活性更高,更像一個區塊鍊雲服務平台,能夠讓使用者在這平台上,使用各個子產品建立一個個鍊,進而實作一個個的應用。 |
1.2 身份管理介紹
- 成員管理
- 注冊服務:注冊成功得到的是證書,不是使用者名和密碼
- 證書:簽名認證
- 交易審計
1.3 賬本:每個節點中都有
區塊鍊(儲存到本地磁盤中):
- 存儲所有交易記錄(tx array),也就是交易的鍊資料,
裡面存儲讀和寫的數組tx
- 可以用來曆史資料查詢
- 每個區塊中包含的資料有:
,blockHash
,blockNum
txid
世界狀态:
- 存儲資料的最新狀态
- 存儲的是鍵值對,存儲在目前節點的資料庫中,預設資料庫:
(level DB
也可以,需配置)couchdb
- 鍊碼模拟查詢(
chaincode
simulation
)queries
- 資料庫中包含的資料有:
,txid
,data
owner
1.4 交易管理介紹
- 部署交易:部署的是鍊碼,給節點安裝鍊碼(chaincode)
- 調用交易:
invoke
1.5 節點介紹
client
:
進行交易管理
- cli:shell指令
- node.js:api實作
- go sdk:api實作
- java sdk:api實作
peer
:
- 存儲和同步賬本資料:資料送出到某一個節點,然後從這個節點同步到其他節點,fabric自帶的同步機制可以自動同步資料到其他節點
order
:
- 排序和分發交易,排序為了解決雙花問題,交易資料打包寫入到區塊中。
1.6 通道介紹–channel
一種共識服務提供的通訊機制,将
peer
和
order
連接配接到一起,形成一個具有保密性的通訊鍊路,也與賬本狀态緊密相連,不同通道中的資料互相獨立,不共享,業務隔離,可以了解為一個分組,在
同一個分組
中的資料可以同步。
一個peer節點可以同時加入到不同的通道中,相當于一個人可以同時加入多個分組
2. fabric 環境搭建
2.1 安裝虛拟機
可以随便在網上找到VM虛拟機來安裝。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP310dVRkT31EVOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1czNzQTNwATM5ITNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
選擇下載下傳的iso檔案
然後随便搞搞這個,密碼最好簡單一點,我是用root
虛拟機名字可以整成Hadoop,位置最好不要放C槽,放其他大一點的盤,
然後一直按下一步就行了
然後等待安裝完就行了。
進去之後
繼續就可了
選擇城市
密碼就随便搞搞吧
然後就可以了
安裝VMware Tools工具
點選虛拟機進行安裝即可。然後重新開機一下就行了。
2.2 安裝必要配置
2.2.1換源
我們先要換源
找到這個Software & Update
找到自己想要換的源頭
即可
2.2.2 安裝vim
sudo apt-get install vim
sudo apt-get update
2.2.3 安裝python2.7 以及 python-pip2
安裝python2.7
檢視版本
安裝python-pip
檢視版本
2.2.5 安裝go
到go官網
下載下傳完之後會是這樣
解壓到/usr/local
sudo tar -C /usr/local -zxvf go1.11.5.linux-amd64.tar.gz
然後設定環境變量
使環境生效
source ~/.bashrc
檢視go版本
go version
go就安裝成功了!
2.2.6 安裝docker
sudo apt install docker
sudo apt install docker.io
檢視docker版本
docker version
但是會有下面的這個permission denied的問題,我們可以這樣,添權重限組,不過注意要和你的使用者名是一樣的!
然後再看一次就好了。docker version就行了
檢視docker運作狀态,可以看到使 綠色的active (running)是正在運作中的。
2.2.7 安裝docker-compose
然後建立一個docker目錄
安裝一個curl
然後執行下面這一條語句
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
出現這個就行了~
然後在
/usr/local/bin
目錄下設定權限!
2.2.8 Fabric的Docker鏡像下載下傳
檢視docker鏡像,然後發現docker裡面是什麼都沒有的
我們先換源,建議是使用這個 daocloud的
重新開機一起docker就行了。
然後
依次
運作下面的docker pull鏡像,一行一行搞!不要全搞進去!
docker pull hyperledger/fabric-tools:x86_64-1.0.0
docker pull hyperledger/fabric-orderer:x86_64-1.0.0
docker pull hyperledger/fabric-peer:x86_64-1.0.0
docker pull hyperledger/fabric-couchdb:x86_64-1.0.0
docker pull hyperledger/fabric-kafka:x86_64-1.0.0
docker pull hyperledger/fabric-ca:x86_64-1.0.0
docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
docker pull hyperledger/fabric-baseimage:x86_64-0.4.7
docker pull hyperledger/fabric-javaenv:x86_64-1.0.0
docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0
是有點慢的。慢慢等吧~
然後下面這個也是修改标簽為latest:
docker tag hyperledger/fabric-tools:x86_64-1.0.0 hyperledger/fabric-tools
docker tag hyperledger/fabric-orderer:x86_64-1.0.0 hyperledger/fabric-orderer
docker tag hyperledger/fabric-peer:x86_64-1.0.0 hyperledger/fabric-peer
docker tag hyperledger/fabric-couchdb:x86_64-1.0.0 hyperledger/fabric-couchdb
docker tag hyperledger/fabric-kafka:x86_64-1.0.0 hyperledger/fabric-kafka
docker tag hyperledger/fabric-ca:x86_64-1.0.0 hyperledger/fabric-ca
docker tag hyperledger/fabric-ccenv:x86_64-1.0.0 hyperledger/fabric-ccenv
docker tag hyperledger/fabric-baseimage:x86_64-0.4.7 hyperledger/fabric-baseimage
docker tag hyperledger/fabric-javaenv:x86_64-1.0.0 hyperledger/fabric-javaenv
docker tag hyperledger/fabric-zookeeper:x86_64-1.0.0 hyperledger/fabric-zookeeper
驗證:
docker images
這樣就行了
2.2.9 拉取fabric代碼
鑒于在虛拟機上面有點難
git clone
,是以我們可以在windows下進行下載下傳,然後通過xftp6進行轉移。
在github上搜尋
fabric
然後用xftp6
記得是上傳到這個目錄下面。記得改名字
然後進入這個
e2e_cli
的目錄下。(這個workspace目錄是多餘的,我後來删掉了,不要有workspace這個目錄,不然無法下載下傳的。就像上面那張圖的紅色箭頭的目錄就行了)
不過記得先要
chmod u+x network_setup.sh
給特權
然後執行
./network_setup.sh up
然後在這個目錄下就可以看到了這些可執行檔案了。不過要把這些檔案
cp
到go的bin目錄下。
這裡就大功告成了!
最後
小生凡一,期待你的關注。