如果后续补充更新不及时,请移步看简书或知乎专栏:洞链,或下面文章
https://www.jianshu.com/p/b097e489dd99
#先看这个搭建Hyperledger Fabric基础环境
https://zhuanlan.zhihu.com/p/54759061
#(看到安装docker-compose完成即可,接下来看此篇)
安装Node.js
wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz
tar -xvf node-v6.9.5-linux-x64.tar.xz
sudo mv node-v6.9.5-linux-x64 /usr/local/node
sudo ln -s /usr/local/node/bin/node /usr/local/bin/node
sudo ln -s /usr/local/node/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
测试nodejs
并设置镜像加速
node -v
npm -v
npm config set registry https://registry.npm.taobao.org
创建fabric-samples
mkdir -p github.com/hyperledger/fabric-samples
进入fabric-samples
下
git clone https://github.com/hyperledger/fabric-samples.git
查看版本分支
git tag
查看版本分支
切换项目版本
git checkout release1.0
查看当前项目的版本
git branch
#删除已命名的分支
git branch -d release1.0
进入下方目录
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric
下载hyperledger-fabric-linux-amd64-1.0.5.tar.gz
压缩包
下载Linux对应压缩包
wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.0.5/hyperledger-fabric-linux-amd64-1.0.5.tar.gz
解压到fabric-samples
目录下
tar -zxvf hyperledger-fabric-linux-amd64-1.0.5.tar.gz -C /home/go/src/github.com/hyperledger/fabric-samples
下载dockerimages
执行文件复制并在fabric-samples
中创建init.sh
image.png
https://raw.githubusercontent.com/hyperledger/fabric/v1.0.5/scripts/bootstrap.sh
vim init.sh
赋予权限
chmod -R 777 init.sh
运行文件
./bootstrap.sh
进入first-network
目录中
cd first-network
是否已经构建,如果构建关闭重新构建
关闭应用
./byfn.sh -m down
执行以下命令构建网络
./byfn.sh -m generate
../bin/cryptogen generate --config=./crypto-config.yaml
在first-network
目录下设置变量:
export FABRIC_CFG_PATH=$PWD
设置变量并创建初始区块
执行
../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
生成应用通道的配置信息
export CHANNEL_NAME=mychannel
../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channelID $CHANNEL_NAME
../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP
../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
编辑docker-compose-cli.yaml
,注释command
命令
vim docker-compose-cli.yaml
注释`command`命令
运行docker-compose-cli.yaml
image.png
CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=600 docker-compose -f docker-compose-cli.yaml up -d
docker exec -it cli bash
image.png
export CHANNEL_NAME=mychannel
peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peer channel join -b mychannel.block
peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
peer chaincode instantiate \
-o orderer.example.com:7050 \
--tls $CORE_PEER_TLS_ENABLED \
--cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem \
-C $CHANNEL_NAME \
-n mycc \
-v 1.0 \
-c '{"Args":["init","a","100","b","200"]}' \
-P "OR ('Org1MSP.member','Org2MSP.member')"
peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
查询结果
peer chaincode invoke \
-o orderer.example.com:7050 \
--tls $CORE_PEER_TLS_ENABLED \
--cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem \
-C $CHANNEL_NAME \
-n mycc \
-c '{"Args":["invoke","a","b","10"]}'
点击exit
退出docker
容器
./byfn.sh -m down
进入fabric-samples
目录下的fabcar
目录中
cd fabric-samples/fabcar
查看package.json
文件
查看`package.json`文件
cat package.json
关闭活跃容器
docker rm -f $(docker ps -a)
清理缓存的网络
docker network prune
docker rmi dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba
fabcar
目录中安装客户端npm install
npm install 中1
npm install 中2
./startFabric.sh node
./startFabric.sh node
node encrollAdmin.js
node encrollAdmin.js运行成功
node registerUser.js
node registerUser.js运行成功
node query.js
node query.js运行成功
queryAllCars
更改为queryCar
并将特定的“Key” 传递给args参数。在这里,我们使用CAR4
。 所以我们编辑后的query.js程序现在应该包含以下内容:编辑query.js
node query.js
image.png
./byfn.sh -m down
出现错误的解决方法:https://segmentfault.com/a/1190000014221967
node registerUser.js
出现错误:Failed to register: Error: fabric-ca request register failed with errors [[{"code":0,"message":"No identity type provided. Please provide identity type"}]]
执行`node registerUser.js `出现错误
node registerUser.js
文件vim node registerUser.js
returnfabric_ca_client.register({enrollmentID: 'user1', affiliation:'org1.department1'}, admin_user);
替换为下方代码returnfabric_ca_client.register({enrollmentID: 'user1', affiliation:'org1.department1',role: 'client'}, admin_user);
node registerUser.js替换
node registerUser.js
https://blog.csdn.net/weixin_34960892/article/details/81094375
https://blog.csdn.net/smallone233/article/details/86569536
https://www.cnblogs.com/EasonJim/p/8324834.html
https://hyperledger-fabric.readthedocs.io/en/release-1.0/chaincode4noah.html
https://hyperledger-fabric.readthedocs.io/en/release-1.0/write_first_app.html
https://blog.csdn.net/qq_36956154/article/details/82317514
https://blog.csdn.net/weixin_34960892/article/details/81116646
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。