当前位置: 首页 > 面试题库 >

HyperLedger结构链代码未更新

施洛城
2023-03-14
问题内容

我正在尝试遵循此示例Hyperledger
Fabric代码:https : //github.com/hyperledger/education/tree/master/LFS171x/fabric-
material

最初,我用go文件chaincode / tuna-app / test.go替换了chaincode / tuna-app / tuna-
chaincode.go。test.go的更改仅在于我们通过其initLedger函数调用在分类帐中初始化的内容。它运行良好,不需要在tuna-app /
.startFabric.sh中进行任何更改。

现在,当我再次尝试通过其initLedger函数调用更改分类帐时,它没有发生。即使我评论函数本身,它仍然显示分类帐的旧内容。

如何使用可见的更改更新链码?

startFabric.sh包含以下代码:

set -e

# don't rewrite paths for Windows Git Bash users
export MSYS_NO_PATHCONV=1

starttime=$(date +%s)

if [ ! -d ~/.hfc-key-store/ ]; then
    mkdir ~/.hfc-key-store/
fi

# 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 tuna catches
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 tuna-app -v 1.0 -p github.com/test-app
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 tuna-app -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 tuna-app -c '{"function":"initLedger","Args":[""]}'

printf "\nTotal execution time : $(($(date +%s) - starttime)) secs ...\n\n"
printf "\nStart with the registerAdmin.js, then registerUser.js, then server.js\n\n"

我尝试通过对等链代码实例化后添加以下行:

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 upgrade -o orderer.example.com:7050 -C mychannel -n tuna-app -c '{"function":"initLedger","Args":[""]}'

但是它给出了以下错误:

Error: Chaincode version is not provided for upgrade

当我将升级声明更改为:

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 upgrade -o orderer.example.com:7050 -C mychannel -n tuna-app -v 1.0 -c '{"function":"initLedger","Args":[""]}'

错误更改为:

Error: Error endorsing chaincode: rpc error: code = Unknown desc = chaincode error (status: 500, message: version already exists for chaincode with name 'tuna-app')

问题答案:

为了反映链式代码中的更改,采取了以下步骤:1.停止所有容器

docker stop $(docker ps -aq)
  1. 删除所有容器

docker rm -f $(docker ps -aq)

  1. 运行时查找以下图像docker images 。输出之一是其他超级账本二进制图像。

REPOSITORY TAG, IMAGE ID, CREATED, SIZE: dev-peer0.org1.example.com-tuna- app-1.0-b58eb592ed6ced10f52cc063bda0c303a4272089a3f9a99000d921f94b9bae9b, latest, 0919d7c15f0a, 3 minutes ago, 172MB

使用以下命令将其删除:

docker rmi 0919d7c15f0a

使用./startFabric.sh、npm install,node registerAdmin.js,node registerUser.js和node
server.js再次运行结构。它应该工作



 类似资料:
  • 我已经在Hyperledger Fabric 1.4.7中完成了基本设置,并让所有同行加入该频道。在golang中探索了chaincode之后,我开始尝试chaincode安装命令,在这一步中我遇到了问题。 错误 错误:错误获取链码代码mycc:路径链码不存在: /home/user899/go/src/chaincode 当我刚刚运行 错误 chaincode.go: 7:2:在以下任何一个中找

  • 目录 文件结构应该是什么样?项目中该如何对 action 创建函数和 reducer 分组? selector 又该放在哪里? 如何将逻辑在 reducer 和 action 创建函数之间划分? “业务逻辑” 应该放在哪里? 代码结构 文件结构应该是什么样?项目中该如何对 action 创建函数和 reducer 分组? selector 又该放在哪里? 因为 Redux 只是数据存储的库,它没有

  • 这里我们所说的「结构」就是关于如何让项目达到预期的目标。我们需要考虑的是如何更好的利用 Python 的特性创造出干净、有效的代码。实际上,「结构」意味着代码的结构、依赖非常的清晰,像文件系统中的文件和文件夹一样。 哪些函数应该放在哪个模块中?项目中的数据流是怎样的?哪些函数应该组织在一起或者分离开?从广义上讲,通过回答这些问题,你就可以开始规划你的项目长什么样子。 在本节中,我们将深入研究 Py

  • Angel的代码框架 Angel的代码结构,从整体上可以划分为几大模块: 1. Angle-Core(核心层) Angel的核心层,包括了如下核心组件: PSServer PSAgent Worker AngelClient 网络:RPC & RDMA 存储:Memory & Disk …… 2. Angel-ML(机器学习层) Angel是面向机器学习的,所以关于机器学习的相关元素,也是加入到C

  • 基本原理 megalo 在执行编译命令后会将工程文件编译成小程序的代码结构,此处以微信小程序为例,输出 JSON 配置、WXML 模板、WXSS 样式文件和 JS 逻辑交互文件。在 JS 执行时创建 vue runtime,通过 VNode 管理工程结构,调用微信小程序的 setData 将数据交由 WXML 模板 展示。 megalo 代码结构 我们在 cli 构建的项目中看到,Megalo 的

  • 我们将要学习的第一个内容就是构建代码块。 语句 语句是执行行为(action)的语法结构和命令。 我们已经见过了 alert('Hello, world!') 这样可以用来显示消息的语句。 我们可以在代码中编写任意数量的语句。语句之间可以使用分号进行分割。 例如,我们将 “Hello World” 这条信息一分为二: alert('Hello'); alert('World'); 通常,每条语句独