【发布时间】:2020-07-08 11:31:56
【问题描述】:
Fabric 1.4.3 版本。具有 1 个 Oderer (solo) + 1 个 Org 的区块链网络,在 Docker 上运行。
由于 PEER0 上的 PANIC 错误和对等崩溃,尝试实例化链代码。
无法实例化链码,因为 PEER0 在执行该过程时会崩溃。
在 CLI docker 提示符下,我执行了以下命令序列:
1) $> peer channel create -o $ORDERERNAME -c $CHANNELNAME -f $CONFIGTXFOLDER/devchannel.tx --tls --cafile=$ORDERER_TLSCACERT
Cli 中的结果:UTC [cli.common] readBlock -> INFO 04e Received block: 0
2) $> peer channel join -o $ORDERERNAME -b $CONFIGTXFOLDER/devgenesis.block --tls --cafile=$ORDERER_TLSCACERT
Cli 中的结果:UTC [channelCmd] executeJoin -> INFO 03e Successfully submitted proposal to join channel
3)$> peer chaincode install -n $CHCODENAME -p $CHCODEPATH -v $CHCODEVERSION -l node --tls --cafile $ADMIN_PEER_TLSCACERT
Cli 中的结果:UTC [chaincodeCmd] install -> INFO 04a Installed remotely response:<status:200 payload:"OK" >
4) $> peer chaincode instantiate -C $CHANNELNAME -n $CHCODENAME -v $CHCODEVERSION -o $ORDERERNAME -c '{"Args":["init","a","100","b","200"]}' -P "AND ('GuaraniMSP.admin')" --tls --cafile $ORDERER_TLSCACERT --tlsRootCertFiles $CORE_PEER_TLS_ROOTCERT_FILE
PEER0 崩溃前的结果:
UTC [gossip.state] commitBlock -> ERRO 87e Got error while committing(unexpected Previous block hash. Expected PreviousHash = [c87a4b77e4c790f78b0c2e3c97d97de9907a09daf5dc2f039c7e3b3e1440f5d1], PreviousHash referred in the latest block= [953e31164a84d6d1b9b446130d1e7d5af8ede818284e8fa7c315b2125b519e38]
github.com/hyperledger/fabric/common/ledger/blkstorage/fsblkstorage.(*blockfileMgr).addBlock
[...]
UTC [gossip.state] deliverPayloads -> PANI 87f Cannot commit block to the ledger due to unexpected Previous block hash. Expected PreviousHash = [c87a4b77e4c790f78b0c2e3c97d97de9907a09daf5dc2f039c7e3b3e1440f5d1], PreviousHash referred in the latest block= [953e31164a84d6d1b9b446130d1e7d5af8ede818284e8fa7c315b2125b519e38]
github.com/hyperledger/fabric/common/ledger/blkstorage/fsblkstorage.(*blockfileMgr).addBlock
[...]
/opt/go/src/runtime/asm_amd64.s:1333
panic: Cannot commit block to the ledger due to unexpected Previous block hash. Expected PreviousHash = [c87a4b77e4c790f78b0c2e3c97d97de9907a09daf5dc2f039c7e3b3e1440f5d1], PreviousHash referred in the latest block= [953e31164a84d6d1b9b446130d1e7d5af8ede818284e8fa7c315b2125b519e38]
github.com/hyperledger/fabric/common/ledger/blkstorage/fsblkstorage.(*blockfileMgr).addBlock
[...]
我在 Hyperledger Fabric JIRA 上就这种情况提出了一个问题,我收到了我需要清除环境以确保没有先前试验的工件的信息。 Issue FABB-147 at Hyperledger Fabric(我的日志在那里)。
我在peers get crash after anchor peer update 看到了一个与我很接近但存在差异的问题
现在我必须证明我的 Hyperledger Fabric 环境是清晰的。但是怎么做呢?
是否有任何记录在案的程序或清单来验证 Hyperledger Fabric 中是否没有来自先前试验的工件?
如果我抑制 orderer.yaml 和 docker-compose.yaml 的 ORDERER_GENERAL_GENESISFILE 和 ORDERER_GENERAL_GENESISPROFILE 设置,orderer 元素是否会正常启动,然后网络会理解它应该在创建新通道时使用 genesis.block 通知?
提前感谢您的帮助。
【问题讨论】:
-
你是如何运行所有节点的?码头工人?二进制文件?
-
Hyperledger Fabric 1.4.3 在我的私人计算机上的 Ubuntu 操作系统上运行在 Docker 上。区块链网络有 1 个 Orderer 和 1 个 Anchor Peer (+ CouchDB),具有特定配置。我没有使用织物样品中的 BYFN。
标签: crash hyperledger-fabric channel peer hyperledger-chaincode