Hyperledger Fabric的容災備份及恢復方法簡介
Hyperledger Fabric日益增強的潛力使得許多企業正在嘗試使用fabric。當使用涉及更多peers和orderers的大型網路時,維護超級賬本資料的備份非常重要。如果網路出現故障,這將有所幫助。它還有助於開發階段,因為可以使用備份資料來執行將來的測試。
在本文中,我將介紹如何進行備份以及如何在Hyperledger Fabric中使用備份。
超級賬本分類帳資料在容器中的位置
通常,peer中的分類帳資料儲存在/var/hyperledger/production/location
中。在orderer中,它位於/var/hyperledger/production/orderer
中。我們需要備份這些資料夾。
採取備份的步驟
第1步:
要進行備份,必須建立空間來儲存資料。當網路在Docker容器內執行時,我們將使用捲來實現這一點。我將使用一個基本網路與一個peer,一個orderer,一個ca和一個CouchDB。由於我們有一個peer和一個orderer,我們需要建立兩個卷,比如backup_orderer
和backup_peer
。我們需要在docker-compose.yml
檔案中將這些指定為卷,如下所示。
networks: basic: volumes: backup_peer: backup_orderer:
這將在啟動網路時建立兩個卷。
第2步:
下一步是將這些卷安裝到容器中。對於peer,我們可以定義卷,如下所示。
volumes: - backup_peer:/var/hyperledger/production
對於orderer,我們可以定義如下所示的數量。
volumes: - backup_orderer:/var/hyperledger/production/orderer
現在我們準備通過執行docker-compose
來啟動網路。我們作為交易的一部分生成的所有資料現在將被複制到卷。可以使用雲將資料儲存在卷中。
Peer備份Underhood
在同行中,超級賬本資料儲存在/var/hyperledger/production
中。production
資料夾有三個子資料夾,即chaincodes,ledgersData,transientStore
,在ledgersData
中我們有六個資料夾,分別是bookkeeper,chains,configHistory,historyLeveldb,ledgerProvider,pvtdataStore
。在chains
中,我們有另外兩個資料夾,即chains, index
。chains
資料夾包含所有通道資料,一個帶有通道名稱的資料夾和該通道的完整區塊鏈(檔案blockfile_000000
)。
Orderer備份Underhood
在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,因為所有必需的資料都被複制到容器中的相應資料夾中。通過執行查詢來檢查資料是否完美。
如果你有任何疑問或卡在某處,你可以聯絡我們。
======================================================================
分享一些以太坊、EOS、比特幣等區塊鏈相關的互動式線上程式設計實戰教程:
- EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智慧合約開發與部署、使用程式碼與智慧合約互動等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
- java以太坊開發教程,主要是針對java和android程式設計師進行區塊鏈以太坊開發的web3j詳解。
- python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
- php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和交易等內容。
- 以太坊入門教程,主要介紹智慧合約與dapp應用開發,適合入門。
- 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
- C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智慧合約開發與互動、過濾器和交易等。
- java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Java程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
- php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Php程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
- tendermint區塊鏈開發詳解 ,本課程適合希望使用tendermint進行區塊鏈開發的工程師,課程內容即包括tendermint應用開發模型中的核心概念,例如ABCI介面、默克爾樹、多版本狀態庫等,也包括代幣發行等豐富的實操程式碼,是go語言工程師快速入門區塊鏈開發的最佳選擇。
匯智網原創翻譯,轉載請標明出處。這裡是原文Hyperledger Fabric的容災備份及恢復方法