Hyperledger Fabric日益加強的潛力使得許多企業正在嘗試使用fabric。當使用涉及更多peers和orderers的大型網絡時,維護超級帳本數據的備份很是重要。若是網絡出現故障,這將有所幫助。它還有助於開發階段,由於可使用備份數據來執行未來的測試。php
在本文中,我將介紹如何進行備份以及如何在Hyperledger Fabric中使用備份。java
一般,peer中的分類賬數據存儲在/var/hyperledger/production/location
中。在orderer中,它位於/var/hyperledger/production/orderer
中。咱們須要備份這些文件夾。node
要進行備份,必須建立空間來存儲數據。當網絡在Docker容器內運行時,咱們將使用捲來實現這一點。我將使用一個基本網絡與一個peer,一個orderer,一個ca和一個CouchDB。因爲咱們有一個peer和一個orderer,咱們須要建立兩個卷,好比backup_orderer
和backup_peer
。咱們須要在docker-compose.yml
文件中將這些指定爲卷,以下所示。python
networks: basic: volumes: backup_peer: backup_orderer:
這將在啓動網絡時建立兩個卷。android
下一步是將這些卷安裝到容器中。對於peer,咱們能夠定義卷,以下所示。程序員
volumes: - backup_peer:/var/hyperledger/production
對於orderer,咱們能夠定義以下所示的數量。web
volumes: - backup_orderer:/var/hyperledger/production/orderer
如今咱們準備經過執行docker-compose
來啓動網絡。咱們做爲交易的一部分生成的全部數據如今將被複制到卷。可使用雲將數據存儲在卷中。mongodb
在同行中,超級帳本數據存儲在/var/hyperledger/production
中。production
文件夾有三個子文件夾,即chaincodes,ledgersData,transientStore
,在ledgersData
中咱們有六個文件夾,分別是bookkeeper,chains,configHistory,historyLeveldb,ledgerProvider,pvtdataStore
。在chains
中,咱們有另外兩個文件夾,即chains, index
。chains
文件夾包含全部通道數據,一個帶有通道名稱的文件夾和該通道的完整區塊鏈(文件blockfile_000000
)。docker
在orderer中,超級帳本數據存儲在/var/hyperledger/production
中。production
有orderer
文件夾。orderer
有兩個文件夾,即chain,index
。chains
具備名稱爲channel
和testchainid
的文件夾。全部文件夾都有blockfile_000000
。編程
testchainid
中的blockfile_000000
包含通道的全部詳細信息。其餘文件夾中的其他blockfile_000000
處理通道的超級帳本數據。
如今咱們有了備份數據。你能夠在機器中的/var/lib/docker/volumes
中找到卷,若是存儲在那裏,則能夠在雲中找到卷。將卷的結束點掛載到docker-compose.yml
中的peers和orderers的/var/hyperledger/production
。
經過執行docker-compose
文件啓動網絡。在裝入卷時,超級帳本數據將自動複製到新網絡。無需建立通道並加入peers,由於全部必需的數據都被複制到容器中的相應文件夾中。經過執行查詢來檢查數據是否完美。
但願儘快學習課程的請訪問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語言工程師快速入門區塊鏈開發的最佳選擇。
匯智網原創翻譯,轉載請標明出處。這裏是原文Hyperledger Fabric的容災備份及恢復方法