測試區塊鏈應用程式可能很麻煩,主要是因為它們非常複雜的,需要資源要求高。在雲上測試區塊鏈應用程式可以提高測試過程的效率,以及實現更真實的測試環境。
本文提供了有關如何在谷歌雲上使用Hyperledger Caliper(提交302665)的指南,介紹了測試Hyperledger Composer應用程式的場景,Hyperledger Composer應用程式是一個便於Hyperledger Fabric應用程式開發的區塊鏈框架。儘管如此,此測試過程適用於Hyperledger Caliper支援的所有區塊鏈(Hyperledger Burrow,Hyperledger Fabric,Hyperledger Iroha,Hyperledger Sawtooth等等)。
配置測試環境
1、建立一個私有儲存庫(例如,在Github上)。
2、將Hyperledger Caliper專案分叉到您的私人倉庫:
git clone--bare https://github.com/hyperledger/caliper.git
cd caliper.git
git push --mirror https://github.com/USERNAME/CALIPER-PRIVATE-REPO.git
cd ..
rm -rf caliper.git
3、複製你個人的repo
git clone https://github.com/USERNAME/CALIPER-PRIVATE-REPO.git
4、在CALIPER-PRIVATE-REPO / packages / caliper-samples / benchmark / composer上,建立一個包含應用程式名稱的資料夾,例如:我的網路。
5、在my-network資料夾中,貼上此儲存庫中的配置和測試檔案的內容。在以後的文章中,我將解釋如何編寫測試(my-network.js)和基準測試配置(config.yaml)。
6、您應該使用Composer(BNA存檔)建立一個開發的業務網路。如果您尚未開發業務網路,仍可以將Caliper配置為測試預設業務網路。
在CALIPER-PRIVATE-REPO-justicechain / packages / caliper-samples / src / contract / composer上,建立一個名為my-network的資料夾。將您的業務網路存檔檔案(解壓縮的BNA檔案)貼上到該資料夾中。
您應該有一個lib資料夾,一個models資料夾,以及檔案package.json,permission.acl和可選的README.md檔案。
請注意,在package.json上,網路的名稱和版本必須與composer.json上的名稱和版本一致。示例package.json:
{
"engines":{
"composer":"^0.20.0"
},
"name":"my-network",
"version":"0.2.6-deploy.1",
...ETC
7、您必要要有檔案來測試您的應用程式。將它們推送到您的儲存庫:
git add *
git commit -m"add benchmark files"
git push origin master
谷歌雲配置
1、在谷歌雲上建立一個帳戶。新帳戶可以申請免費試用補助金。建立專案,然後啟用Compute Instance API。
2、在Compute Engine - > VM Instances中,單擊Create a new instance。
3、啟動你的例項
4、單擊Connect - SSH。
5、安裝Hyperledger Caliper的先決條件(感謝Daz Wilkin):
docker-CE
sudo apt-get update
sudo apt-getinstall \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
sudo apt-getupdate
sudo apt-getinstall \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-keyadd -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-getupdate
sudo apt-getinstall docker-ce
sudo usermod -aG docker $USER
sudo systemctl enable docker
docker --version
docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1
/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Golang (optional)
VERSION=1.9.1
OS=linux
ARCH=amd64
sudo curl \
--location https://golang.org/dl/go$VERSION.$OS-$ARCH.tar.gz \
--output go$VERSION.$OS-$ARCH.tar.gz
sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
6、使用Caliper和您的區塊鏈應用程式將您的私人儲存庫克隆到您的Google Compute例項。
測試您的應用程式
要執行基準測試,請導航到caliper / packages / caliper-samples。
要使用CouchDB執行來測試您的應用程式:
caliper基準測試執行-w ./ -c benchmark / composer / justice / config.yaml -n benchmark / composer / justice / composer.json
要使用LevelDB執行來測試您的應用程式:
測徑器基準執行-w./-c benchmark/composer/justice/config.yaml-n benchmark/composer/justice/composer-level.json
基準測試的結果將在終端上報告。