Fabric1.4.1 - Fabcar 案例部署


Fabcar 案例部署

本教程基於 Fabric-1.4.1 進行部署,部署環境是Centos7

官方文檔:點擊這里

准備好一個環境初始化好的虛擬機(教程地址

原理

利用fabric-node-sdk程序來與Fabric網絡進行交互

准備工作

移除以往運行過的鏈碼鏡像和所有的容器:

# 查看鏡像
docker images

# 查看容器
docker ps -a

# 停止並移除所有容器
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)

# 移除指定的鏡像
docker rmi 鏡像ID

安裝node和npm

# 創建目錄並進入目錄
mkdir -p /home/scripts && cd /home/scripts

# 下載node
wget https://nodejs.org/download/release/v8.9.4/node-v8.9.4-linux-x64.tar.gz

# 解壓node
tar -zxvf node-v8.9.4-linux-x64.tar.gz

# 復制到/opt目錄
mv node-v8.9.4-linux-x64 /opt

# 建立軟連接
ln -s /opt/node-v8.9.4-linux-x64/bin/node /usr/local/bin/node
ln -s /opt/node-v8.9.4-linux-x64/bin/npm /usr/local/bin/npm

# 查看版本
node -v
npm -v

設置淘寶鏡像

npm config set registry http://registry.npm.taobao.org/

npm install -g cnpm --registry=https://registry.npm.taobao.org

升級node和npm

Note: 可選操作

# npm升級到最新版本,-g全局安裝
cnpm install npm -g

# 已經升級了
npm -v

# 安裝nodejs的版本管理模塊n
cnpm install -g n

# 查看版本
n -V

# nodejs版本升級到最新,參數可換:latest/stable/lts/vx.x.x
n latest

# 安裝穩定版
n stable

# 安裝指定版本
n v7.10.0

#  查看已安裝版本
n

# 刪除指定版本
n rm 6.4.0  

克隆Fabric-sample庫

工具下載

# 創建工作目錄並進入該目錄
mkdir -p /home/scripts && cd /home/scripts

# 下載腳本
curl -sS https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o ./bootstrap.sh

# 賦予腳本執行權限
chmod +x ./bootstrap.sh

# 執行腳本來克隆fabric-samples庫
# 鏡像我們在前面的課程拉取過,這里跳過特定平台二進制文件的下載(很慢,自行通過瀏覽器下載,再上傳到虛擬機)
./bootstrap.sh 1.4.1 1.4.1 0.4.15 -d -b

# 如果沒有拉取fabric鏡像的執行下面這條命令
./bootstrap.sh 1.4.1 1.4.1 0.4.15 -b

# 將工具解壓到fabric-tools目錄(自行上傳,使用rz命令或者Filezilla工具均可以上傳)
tar -zxvf hyperledger-fabric-linux-amd64-1.4.1.tar.gz -C ./fabric-tools

# 將fabric-tools目錄下的bin文件夾復制到fabric-samples目錄下
cp -r ./fabric-tools/bin ./fabric-samples/bin

啟動網絡

# 進入fabcar目錄
cd /home/scripts/fabric-samples/fabcar

# 啟動網絡、創建通道、部署合約
./startFabric.sh javascript

安裝依賴

# 進入javascript目錄
cd /home/scripts/fabric-samples/fabcar/javascript

# 安裝依賴
npm install

注意:如果出現以下錯誤

npm WARN deprecated mkdirp@0.5.3: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)

> pkcs11js@1.0.20 install /home/scripts/fabric-samples/fabcar/javascript/node_modules/pkcs11js
> node-gyp rebuild

make: 進入目錄“/home/scripts/fabric-samples/fabcar/javascript/node_modules/pkcs11js/build”
  CXX(target) Release/obj.target/pkcs11/src/main.o
make: g++:命令未找到
make: *** [Release/obj.target/pkcs11/src/main.o] 錯誤 127
make: 離開目錄“/home/scripts/fabric-samples/fabcar/javascript/node_modules/pkcs11js/build”
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:311:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Linux 3.10.0-862.el7.x86_64
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/scripts/fabric-samples/fabcar/javascript/node_modules/pkcs11js
gyp ERR! node -v v12.16.1
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok

> grpc@1.24.2 install /home/scripts/fabric-samples/fabcar/javascript/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

node-pre-gyp WARN Using request for node-pre-gyp https download
[grpc] Success: "/home/scripts/fabric-samples/fabcar/javascript/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node" is installed via remote
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN fabcar@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: pkcs11js@1.0.20 (node_modules/pkcs11js):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: pkcs11js@1.0.20 install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

added 507 packages from 1082 contributors in 25.868s

1 package is looking for funding
  run `npm fund` for details


安裝gcc

# 說明沒有安裝gcc的環境
yum install -y gcc-c++

操作fabcar

# 登記管理員
node enrollAdmin.js

# 注冊用戶
node registerUser.js

# 執行查詢
node query.js

# 執行交易
node invoke.js

# 再次執行查詢
node query.js


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM