您好,登錄后才能下訂單哦!
小編給大家分享一下HyperLedger中如何為Fabric的Peer節點配置CouchDB,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
當前(1.1~1.2)版本的Fabric的Peer的數據存儲支持LevelDB和CouchDB兩種方式,默認為LevelDB。
LevelDB是Google實現的高效kv數據庫,可以應用于很多平臺,是很多大數據系統的底層存儲方案。
CouchDB是Apache旗下的文檔型數據庫,提供了更多樣的數據操作,支持數據同步,技術細節見:CouchDB Technical Overview。
文檔型數據庫是相對于關系型數據而言的,文檔數據庫中可以直接存、取包含多種信息的文本,相比預先設計表結構的關系型數據庫,文檔數據庫能應對變化、多樣的數據。
Fabric的Peer在CouchDB中存儲的是json數據,所有寫入Fabric的數據都需要轉換成json格式。
Fabric部署之后,不支持在CouchDB和LevelDB之間切換!
Installation on Unix-like systems中出了在多種系統上安裝方式,這里使用的CentOS系統。
創建文件/etc/yum.repos.d/bintray-apache-couchdb-rpm.repo,內容如下:
[bintray--apache-couchdb-rpm] name=bintray--apache-couchdb-rpm baseurl=http://apache.bintray.com/couchdb-rpm/el7/$basearch/ gpgcheck=0 repo_gpgcheck=0 enabled=1
安裝:
yum -y install epel-release && yum install couchdb
默認安裝在/opt/couchdb/
目錄中:
$ ls /opt/couchdb/ LICENSE bin data erts-8.3.5 etc lib releases share var
啟動:
systemctl start couchdb
默認監聽127.0.0.1:5984:
$ curl 127.0.0.1:5984 {"couchdb":"Welcome","version":"2.1.2","features":["scheduler"],"vendor":{"name":"The Apache Software Foundation"}}
配置文件位于/opt/couchdb/etc/
目錄中:
$ ls etc/ default.d/ default.ini local.d/ local.ini vm.args
default.d和default.ini在版本更新的時候會被覆蓋,因此自行配置的參數在local.ini和local.d中修改。
在local.d中創建一個以.ini結尾的文件,couchdb.ini
:
[chttpd] port = 5984 bind_address = 0.0.0.0 [admins] admin = password
然后重啟couchdb:
systemctl restart couchdb
5984端口提供了一個web控制臺,使用下面的url訪問:
http://192.168.88.10:5984/_utils
如果沒有創建couchdb.ini,都使用默認配置,剛啟動時候默認所有人都可以訪問,且都是管理員
可以在web控制臺中設置管理員名稱和密碼。
可以直接在web控制臺中創建數據庫和文檔,也可以使用CouchDB API
登錄認證:CouchDB Authentication
修改每個Peer的core.yaml文件,設置
ledger: blockchain: state: stateDatabase: CouchDB #將goleveldb修改為CouchDB couchDBConfig: couchDBAddress: 127.0.0.1:5984 username: admin password: password
然后重啟啟動Peer。
注意:如果以前使用的是goleveldb,切換未CouchDB后,之前的數據不會被轉移到CouchDB中!!
可以看一下HyperLedgerFabric提供的All-in-One部署方式中的couchdb,這里直接使用Fabric1.2.0。
創建一個目錄存放1.2.0的文件:
mkdir fabric-1.2.0-example cd fabric-1.2.0-example/
下載fabric1.2.0的程序文件,這里使用的mac版:
wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/darwin-amd64-1.2.0/hyperledger-fabric-darwin-amd64-1.2.0.tar.gz wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/darwin-amd64-1.2.0/hyperledger-fabric-darwin-amd64-1.2.0.tar.gz.md5 tar -xvf hyperledger-fabric-darwin-amd64-1.2.0.tar.gz
下載Fabric1.2.0匹配的鏡像:
./bin/get-docker-images.sh
如果下載失敗,例如:
$ ./bin/get-docker-images.sh Pulling hyperledger/fabric-peer:amd64-1.2.0-stable
這是因為docker hub上沒有1.2.0-stable這個標簽。
修改./bin/get-docker-images.sh:
ARCH=amd64 #VERSION=1.2.0-stable VERSION=1.2.0 <-- 沒有-stable
然后重新執行:
$ ./bin/get-docker-images.sh
并將latest標簽加到最新到鏡像上:
docker tags hyperledger/fabric-tools:amd64-1.2.0 hyperledger/fabric-tools:latest
將bin目錄添加到PATH環境變量中:
export PATH="/Users/lijiao/Work/Fabric/fabric-1.2.0-example/bin/:$PATH"
下載fabric-samples,這是HyperLedger提供Fabric部署示例:
git clone https://github.com/hyperledger/fabric-samples.git
啟動,注意要用-s couchdb
指定使用couddb:
cd fabric-samples/first-network ./byfn.sh up -s couchdb
cli容器啟動時執行scripts/script.sh
,完成channel設置。
我運行的時候cli容器出錯,說是連接不上節點,基本上已經不依賴官方的例子了,所以沒有深入分析@2018-07-19 21:27:23
以上是“HyperLedger中如何為Fabric的Peer節點配置CouchDB”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。