Hyperledger fabric是一個開源的區塊鏈應用程序平臺,爲開發基於區塊鏈的應用程序提供了一個起點。當咱們提到Hyperledger Fabric網絡時,咱們指的是使用Hyperledger Fabric的正在運行的系統。php
即便只使用最少數量的組件,部署Fabric網絡也不是一件容易的事。Fabric社區建立了一個名爲Cello的項目,幫助區塊鏈應用程序開發人員和運營商部署各類規模的Fabric網絡。html
在本教程中,咱們將演示如何使用Cello將具備全部必要組件的小型Hyperledger Fabric(版本1.0.2)網絡部署到單個Ubuntu服務器,以便你能夠開始開發基於區塊鏈的應用程序。java
除了運行Hyperledger Fabric網絡外,你還將完成如下任務:node
在本教程中,咱們使用VirtualBox,它能夠在各類Windows,Mac和Linux操做系統上使用。具體而言,須要如下內容:python
完成這個操做方法大約須要一個小時。android
1.要建立一個乾淨的VirtualBox Ubuntu 16.04虛擬機,你能夠下載VirtualBox和Ubuntu,本身建立一個新的虛擬機。或者,你能夠使用預製鏡像進行此練習,下載後,能夠經過選擇文件->導入設備,而後選擇下載的文件將鏡像導入VirtualBox。git
2.啓動虛擬機。若是使用預製鏡像,則用戶名爲ubuntu,密碼爲ps。若是你沒有使用預製鏡像,那麼用戶名和密碼可能會有所不一樣。程序員
3.更改vars/vb.yml
和vars/vb1st.yml
文件中的ssh_user
。Cello項目不使用密碼。github
sudo apt-get update sudo apt-get install python-dev python-pip libssl-dev libffi-dev docker.io -y sudo pip install 'ansible>=2.3.0.0' sudo gpasswd -a $USER docker cd ~ && git clone https://gerrit.hyperledger.org/r/cello
mkdir -p ~/.ssh && cd ~/.ssh && ssh-keygen -t rsa -f fd -P "" cat ~/.ssh/fd.pub >> ~/.ssh/authorized_keys
eval $(ssh-agent -s) && ssh-add ~/.ssh/fd
mkdir -p ~/cello/src/agent/ansible/run
~/cello/src/agent/ansible/run
目錄中。cd ~/cello/src/agent/ansible/run # the runhosts.tpl file should be here
cd ~/cello/src/agent/ansible ipaddr=$(ip -4 addr show | awk -F '/' '/inet / {print $1}' | grep -v '127.0.0.1' | awk -F ' ' '{print $2;exit}') sed "s/\$ip/$ipaddr/g" run/runhosts.tpl > run/runhosts
ansible-playbook -i run/runhosts -e "mode=apply env=vb" initcluster.yml --skip-tags="resetconn" ansible-playbook -i run/runhosts -e "mode=apply env=bc2nd" setupfabric.yml
$ docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}' The results: NAMES STATUS IMAGE dev-peer1st-mad-firstchaincode-1.0 Up 6 minutes dev-peer1st-mad-firstchaincode-1.0-xxxx peer2nd-mad Up 7 minutes hyperledger/fabric-peer:x86_64-1.0.2 peer1st-mad Up 7 minutes hyperledger/fabric-peer:x86_64-1.0.2 1storderer-sin Up 7 minutes hyperledger/fabric-orderer:x86_64-1.0.2 kafka1st Up 7 minutes hyperledger/fabric-kafka:x86_64-1.0.2 zookeeper1st Up 7 minutes hyperledger/fabric-zookeeper:x86_64-1.0.2 registrator.fabric001 Up 15 minutes email4tong/registrator:v10 skydns.fabric001 Up 15 minutes skynetservices/skydns:2.5.3a
$ docker logs dev-peer1st-mad-firstchaincode-1.0 The results: ex02 Init Aval = 100, Bval = 200
成功的鏈代碼查詢意味着鏈代碼在節點上部署併成功運行。要在前面的步驟中查詢已安裝和實例化的鏈代碼,你能夠按照如下步驟操做::web
$ docker exec -it peer1st-mad bash peer chaincode query -C firstchannel -n firstchaincode -c '{"Args":["query","a"]}' The results: Notice that the time stamp will be different on your machine Query Result: 100 2017-11-09 16:38:11.056 UTC [main] main -> INFO 007 Exiting.....
隨着你的環境的啓動和運行,你如今能夠建立本身的頻道,鏈代碼和區塊鏈應用程序。若是你須要有關鏈碼的更多信息以及如何開發鏈碼,你能夠閱讀Chaincode教程。
要關閉Fabric網絡,請發出如下命令:
ansible-playbook -i run/runhosts -e "mode=destroy env=bc2nd" setupfabric.yml ansible-playbook -i run/runhosts -e "mode=destroy env=vb" initcluster.yml
恭喜。你如今已經將一個包含全部必需組件的小型Hyperledger Fabric網絡部署到單個Ubuntu服務器,所以你能夠開始開發基於區塊鏈的應用程序。
區塊鏈代碼模式:提供包含詳細文檔和視頻的樣本。 Hyperledger Fabric:Hyperledger Fabric官方文檔。 Hyperledger Cello:Cello項目文檔。
但願儘快學習課程的請訪問Fabric區塊鏈開發詳解,本課程面向初學者,內容即包含Hyperledger Fabric的身份證書與MSP服務、權限策略、通道配置與啓動、鏈碼通訊接口等核心概念,也包含Fabric網絡設計、nodejs鏈碼與應用開發的操做實踐,是Nodejs工程師學習Fabric區塊鏈開發的最佳選擇。
======================================================================
分享一些以太坊、EOS、比特幣等區塊鏈相關的交互式在線編程實戰教程:
- EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、帳戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
- java以太坊開發教程,主要是針對java和android程序員進行區塊鏈以太坊開發的web3j詳解。
- python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
- php以太坊,主要是介紹使用php進行智能合約開發交互,進行帳號建立、交易、轉帳、代幣開發以及過濾器和交易等內容。
- 以太坊入門教程,主要介紹智能合約與dapp應用開發,適合入門。
- 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
- ERC721以太坊通證明戰,課程以一個數字藝術品創做與分享DApp的實戰開發爲主線,深刻講解以太坊非同質化通證的概念、標準與開發方案。內容包含ERC-721標準的自主實現,講解OpenZeppelin合約代碼庫二次開發,實戰項目採用Truffle,IPFS,實現了通證以及去中心化的通證交易所。
- C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括帳戶管理、狀態與交易、智能合約開發與交互、過濾器和交易等。
- java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Java代碼中集成比特幣支持功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
- php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Php代碼中集成比特幣支持功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
- tendermint區塊鏈開發詳解,本課程適合但願使用tendermint進行區塊鏈開發的工程師,課程內容即包括tendermint應用開發模型中的核心概念,例如ABCI接口、默克爾樹、多版本狀態庫等,也包括代幣發行等豐富的實操代碼,是go語言工程師快速入門區塊鏈開發的最佳選擇。
匯智網原創翻譯,轉載請標明出處。這裏是原文在一臺Ubuntu計算機上構建Hyperledger Fabric網絡