hyperledger-fabric - super 账本的 fabcar.go 链码不接受更改和修改,始终运行以前的链码

标签 hyperledger-fabric

我是 super 账本结构的新手,安装了所有的前置要求, super 账本结构的 fabcar 链代码运行正确,但是当我在 super 账本结构链代码中更改 fabcar.go 并运行它时,将显示旧车并且不接受任何更改。

我读了类似的问题但答案不清楚请详细告诉我如何删除以前的链码并安装我在 sample-fabric/chaincode/fabcar/go/fabric.go 中编写的新链码

请帮助我,我将非常感谢我自 3 天以来就陷入了这个问题。

以下是 startFabric.sh 文件中的代码

#!/bin/bash
#
# Copyright IBM Corp All Rights Reserved
#
# SPDX-License-Identifier: Apache-2.0
#
# Exit on first error
set -e

# don't rewrite paths for Windows Git Bash users
export MSYS_NO_PATHCONV=1
starttime=$(date +%s)
LANGUAGE=${1:-"golang"}
CC_SRC_PATH=github.com/mychain/go
if [ "$LANGUAGE" = "node" -o "$LANGUAGE" = "NODE" ]; then
    CC_SRC_PATH=/opt/gopath/src/github.com/fabcar/node
fi

# clean the keystore
rm -rf ./hfc-key-store

# launch network; create channel and join peer to channel
cd ../basic-network
./start.sh

# Now launch the CLI container in order to install, instantiate chaincode
# and prime the ledger with our 10 cars
docker-compose -f ./docker-compose.yml up -d cli

docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" cli peer chaincode install -n fabcar -v 1.0 -p "$CC_SRC_PATH" -l "$LANGUAGE"
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" cli peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n fabcar -l "$LANGUAGE" -v 1.0 -c '{"Args":[""]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
sleep 10
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" cli peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n fabcar -c '{"function":"initLedger","Args":[""]}'

printf "\nTotal setup execution time : $(($(date +%s) - starttime)) secs ...\n\n\n"
printf "Start by installing required packages run 'npm install'\n"
printf "Then run 'node enrollAdmin.js', then 'node registerUser'\n\n"
printf "The 'node invoke.js' will fail until it has been updated with valid arguments\n"
printf "The 'node query.js' may be run at anytime once the user has been registered\n\n"

最佳答案

如果您想通过更改 fabcar.go 链码上的参数与“fabcar”链码进行交互,首先您必须停止网络然后删除所有以前的网络模块,然后进入 fabcar.go 文件,更改汽车列表,然后再次启动网络,它应该将旧车列表更改为最新的。为此,您有 2 个选项:

1)创建 teardown.sh 脚本文件:

$teardown.sh (script file source code)
set -e
#Shut down the Docker containers for the system tests.
docker-compose -f docker-compose.yml kill && docker-compose -f docker-compose.yml 
down
# remove chaincode docker images
docker rmi $(docker images dev-* -q)

2) 删除节点模块,并修剪 docker 卷:
$cd...fabric-samples/fabcar/javascript
$rmdir node_modules
$docker stop $(docker ps -a -q)
$docker rm $(docker ps -a -q)
$ docker volume prune
$cd...fabric-samples/fabcar
$startFabric.sh
$cd...fabric-samples/fabcar/javascript
$npm install -g
$node query.js

关于hyperledger-fabric - super 账本的 fabcar.go 链码不接受更改和修改,始终运行以前的链码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55331334/

相关文章:

node.js - Hyperledger fabric : Error: chaincode argument error: json: cannot unmarshal array into Go struct field strArgs. 字符串类型的参数

hyperledger - super 账本中的第一个网络

hyperledger-fabric - 清除 super 账本上的私有(private)数据时违反不变性

docker - 创建了Docker镜像,但是使用Java-SDK实例化Hyperledger Fabric中的链码后容器无法启动

hyperledger-fabric - Kotlin 中的 Fabric 智能合约

node.js - 无法找到新的 EventHub 函数

kubernetes - 在将Hyperledger Fabric对等方部署到Kubernetes时获取 “cannot init crypto”

kubernetes - 在Kubernetes中正确配置Fabric Peers

node.js - 如何使用 Fabric Contract-API 检索在 Hyperledger Fabric 中发起交易的用户身份?

go - 如何从自身调用链码函数来记录子交易