天天看點

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

目錄

  • 前言
  • 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. 成員管理
  2. 注冊服務:注冊成功得到的是證書,不是使用者名和密碼
  3. 證書:簽名認證
  4. 交易審計

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虛拟機來安裝。

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

選擇下載下傳的iso檔案

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後随便搞搞這個,密碼最好簡單一點,我是用root

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

虛拟機名字可以整成Hadoop,位置最好不要放C槽,放其他大一點的盤,

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後一直按下一步就行了

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後等待安裝完就行了。

進去之後

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

繼續就可了

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

選擇城市

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

密碼就随便搞搞吧

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後就可以了

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

安裝VMware Tools工具

點選虛拟機進行安裝即可。然後重新開機一下就行了。

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

2.2 安裝必要配置

2.2.1換源

我們先要換源

找到這個Software & Update

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

找到自己想要換的源頭

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

即可

2.2.2 安裝vim

sudo apt-get install vim
sudo apt-get update
           

2.2.3 安裝python2.7 以及 python-pip2

安裝python2.7

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

檢視版本

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

安裝python-pip

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

檢視版本

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

2.2.5 安裝go

到go官網

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

下載下傳完之後會是這樣

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

解壓到/usr/local

sudo tar -C /usr/local -zxvf  go1.11.5.linux-amd64.tar.gz
           

然後設定環境變量

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

使環境生效

source ~/.bashrc
           

檢視go版本

go version
           
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

go就安裝成功了!

2.2.6 安裝docker

sudo apt install docker
 sudo apt install docker.io
           
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

檢視docker版本

docker version
           
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

但是會有下面的這個permission denied的問題,我們可以這樣,添權重限組,不過注意要和你的使用者名是一樣的!

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後再看一次就好了。docker version就行了

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

檢視docker運作狀态,可以看到使 綠色的active (running)是正在運作中的。

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

2.2.7 安裝docker-compose

然後建立一個docker目錄

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

安裝一個curl

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後執行下面這一條語句

curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
           
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

出現這個就行了~

然後在

/usr/local/bin

目錄下設定權限!

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

2.2.8 Fabric的Docker鏡像下載下傳

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

檢視docker鏡像,然後發現docker裡面是什麼都沒有的

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

我們先換源,建議是使用這個 daocloud的

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

重新開機一起docker就行了。

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後

依次

運作下面的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

這樣就行了

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

2.2.9 拉取fabric代碼

鑒于在虛拟機上面有點難

git clone

,是以我們可以在windows下進行下載下傳,然後通過xftp6進行轉移。

在github上搜尋

fabric

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後用xftp6

記得是上傳到這個目錄下面。記得改名字

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後進入這個

e2e_cli

的目錄下。(這個workspace目錄是多餘的,我後來删掉了,不要有workspace這個目錄,不然無法下載下傳的。就像上面那張圖的紅色箭頭的目錄就行了)

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

不過記得先要

chmod u+x network_setup.sh

給特權

然後執行

./network_setup.sh up

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

然後在這個目錄下就可以看到了這些可執行檔案了。不過要把這些檔案

cp

到go的bin目錄下。

【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後
【超級賬本】Fabric介紹及其環境搭建(一)前言1. fabric 介紹2. fabric 環境搭建最後

這裡就大功告成了!

最後

小生凡一,期待你的關注。

繼續閱讀