轉移研究Hyperledger Fabric
去年幾乎都是在研究Ethereum,去實現與實作DAPP與Smart Contract。但從今年年初開始,因為工作方面需要,而開始大量研究Hyperledger Fabric,不利用雲端去建立Fabric的架構與客製化ChainCode並測試。所以之後有關Hyperledger的文章會多點,Ethereum會減少許多。
Hyperledger 簡單介紹
Hyperledger Fabric與Ethereum差別非常的大,畢竟兩者一開始設計的目標就是不同,一個是給企業開發使用,一個是給一般大眾使用。Hyperledger Fabric最主要的幾個服務功能,也就是會封裝成Docker去運行的功能有Orderer,CA,Peer,更進階的Kafka機制則會多增加Zookeeper,Kafka
- Orderer:共識與排序服務,目前有Solo跟Kafka兩種共識機制
- CA:身分驗證機制
- Peer:運行ChainCode驗證與資料儲存
- Zookeeper:同步所有Kafka內容與配置
- Kafka:一台Kafka就是一個Broker角色,一個Kafka共識機制由多個Broker所組成一個群集
Fabric-Sample 入門
請先參考Hyperledger Fabric範例網站https://hyperledger-fabric.readthedocs.io/en/release-1.0/,裝好所有環境(GOLANG,DOCKER,DOCKER-COMPOSE,NODEJS) 以下整理所有所需環境安裝方法供參考(Ubuntu 16.04)
# Docker
參考網址:
https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-docker-ce-1
# Docker-compose
sudo apt-get install docker-compose
# 修改Docker指令權限並重新開機
sudo usermod -aG docker your-user
# 測試
docker version
docker-compose version
# Go1.9
sudo apt-get install wget
wget https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz
sudo tar -zxvf go1.9.2.linux-amd64.tar.gz -C /usr/local/
mkdir $HOME/go
# 設環境變數(或把以下加入~/.profile並重新開機)
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
# 測試
go version
# Nodejs9.5
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt-get install -y nodejs
# 測試
node -v
# 下載Fabric Sample與執行檔
git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples
curl -sSL https://goo.gl/kFFqh5 | bash -s 1.0.5
至此環境就架設完成,可以嘗試按照範例網站的Tutorials > Building Your First Network,跟著講解一行一行的輸入指令,了解每個服務與功能,這樣就可以初步了解Hyperledger Fabric架構
Hyperledger Fabric入門就從這篇開始,下篇會持續以Hyperlerger Fabric為主