Hyperledger Fabric failure trying to do a peer channel update - hyperledger-fabric

I'm trying to do a channel update with the command:
peer channel update -c mychannel -f ./anchor_peer_tx_org1.pb -o orderer.example.com:7050
and I'm getting the following error:
Endorser and orderer connections initialized
Error: got unexpected status: BAD_REQUEST -- error authorizing
update: error validating ReadSet: readset expected key
[Group] /Channel/Application at version 1, but got version 2
I created the anchor_peer_tx_org1.pb using the following command:
configtxgen -outputAnchorPeersUpdate anchor_peer_tx_org1.pb -profile OneOrgChannel -asOrg Org1MSP -channelID mychannel
Anyone have any ideas what I am missing?
UPDATE:
Adding orderer logs. Nothing is logged on the peer when I attempt the channel update.
Orderer Logs:
2019-01-16 16:53:24.556 UTC [orderer.common.broadcast] ProcessMessage -> WARN 04e [channel: mychannel] Rejecting broadcast of config message from 172.26.0.6:54810 because of error: error authorizing update: error validating ReadSet: readset expected key [Group] /Channel/Applicatio
n at version 1, but got version 2
2019-01-16 16:53:24.558 UTC [comm.grpc.server] 1 -> INFO 04f streaming call completed {"grpc.start_time": "2019-01-16T16:53:24.552Z", "grpc.service": "orderer.AtomicBroadcast", "grpc.method": "Broadcast", "grpc.peer_address": "172.26.0.6:54810", "grpc.code": "OK", "grpc.call_durati
on": "6.1927ms"}
2019-01-16 16:53:24.571 UTC [common.deliver] Handle -> WARN 050 Error reading from 172.26.0.6:54808: rpc error: code = Canceled desc = context canceled
2019-01-16 16:53:24.571 UTC [comm.grpc.server] 1 -> INFO 051 streaming call completed {"grpc.start_time": "2019-01-16T16:53:24.534Z", "grpc.service": "orderer.AtomicBroadcast", "grpc.method": "Deliver", "grpc.peer_address": "172.26.0.6:54808", "error": "rpc error: code = Canceled desc = context canceled", "grpc.code": "Canceled", "grpc.call_duration": "37.3877ms"}

have you signed the pb? Also can you attach the logs for the orderer and peers?
With that message error I think that it might be 2 things, the pb is not correctly formatted or that the pb is not signed by all parties, In my case I needed the orderer to sign the request.
I followed this tutorial and it worked for me: https://hyperledger-fabric.readthedocs.io/en/release-1.4/channel_update_tutorial.html#prepare-the-cli-environment

Related

Hyperledger Fabric ProcessProposal -> Failed to invoke chaincode channel= chaincode=_lifecycle

I am running Hyperledger Fabric and while trying to install the chaincode on peer0.org1, "peer lifecycle chaincode install basic.tar.gz", I run into some errors and can not install it -- Error: chaincode install failed with status: 500 - error in simulation: failed to execute transaction ee4a6ae0672861fa153e7fd5cd797e59b3eeebf1d2950ccd9e13e8231de484a9: error sending: timeout expired while executing transaction.
Below I will share the logs. Can anyone tell me what should I do? I have tried to reinstall it but with no success.
----logs---
2022-08-28 16:10:46.246 UTC 004a INFO [chaincode.externalbuilder.ccaas_builder] waitForExit -> ::Error: chaincode type not supported: node command=detect
2022-08-28 16:14:33.640 UTC 004b WARN [peer.blocksprovider] func1 -> Encountered an error reading from deliver stream: rpc error: code = Unavailable desc = transport is closing channel=mychannel orderer-address=orderer.example.com:7050
2022-08-28 16:14:33.640 UTC 004c WARN [peer.blocksprovider] DeliverBlocks -> Orderer hung up without sending status channel=mychannel orderer-address=orderer.example.com:7050
2022-08-28 16:15:46.750 UTC 004d INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 300000ms channel= txID=ee4a6ae0
2022-08-28 16:15:46.778 UTC 004e ERRO [endorser] simulateProposal -> failed to invoke chaincode _lifecycle, error: timeout expired while executing transaction
github.com/hyperledger/fabric/core/chaincode.(*Handler).Execute
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1571 channel= txID=ee4a6ae0
2022-08-28 16:15:46.778 UTC 004f WARN [endorser] ProcessProposal -> Failed to invoke chaincode channel= chaincode=_lifecycle error="error in simulation: failed to execute transaction ee4a6ae0672861fa153e7fd5cd797e59b3eeebf1d2950ccd9e13e8231de484a9: error sending: timeout expired while executing transaction"
2022-08-28 16:15:46.778 UTC 0050 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.21.0.1:51150 grpc.code=OK grpc.call_duration=5m0.029919322s
2022-08-28 16:16:03.168 UTC 0051 INFO [lifecycle] InstallChaincode -> Successfully installed chaincode with package ID 'basic_1.0:9821071a953f452bda87fe89637d1e377dac825da4649ba998464a3c85d60c50'
2022-08-28 16:20:33.471 UTC 0052 WARN [peer.blocksprovider] func1 -> Encountered an error reading from deliver stream: rpc error: code = Unavailable desc = transport is closing channel=mychannel orderer-address=orderer.example.com:7050
2022-08-28 16:20:33.471 UTC 0053 WARN [peer.blocksprovider] DeliverBlocks -> Orderer hung up without sending status channel=mychannel orderer-address=orderer.example.com:7050

Unable to update channel config using Fabric SDK Java: field "common.ConfigUpdate.channel_id" contains invalid UTF-8

Network setup:
The network is setup with 1 orderer + 2 organizations with 2 peers each (2 * 2 = 4 peers).
I don't think there's a problem with the network, nor with the crypto materials, the channel config transactions, since I've done similar things using Fabric SDK Go without going into this kind of problem.
What I have done:
The error occurs after I created the channel "mychannel", added two peers of the client org to the channel, initialized the channel using Fabric SDK Java and then tried to update the channel.
Before I tried to invoke channel.updateChannelConfiguration() to apply the config tx file Org1MSPanchors.tx, I managed to get the signatures from the admins of both the orgs.
The key lines (the project is written in Kotlin, the following is the Java equivalent):
var updateConfig = new UpdateChannelConfiguration(new File("path/to/file.tx"));
// The signatures have been created from the admins of the 2 orgs.
channel.updateChannelConfiguration(updateConfig, signatures);
Logs:
After the invocation, the program crashed with the following info.
Caused by: org.hyperledger.fabric.sdk.exception.TransactionException: Channel mychannel, send transaction failed on orderer OrdererClient{id: 4, channel: mychannel, name: orderer.***.com, url: grpcs://localhost:7050}. Reason: Channel mychannel orderer orderer.***.com status returned failure code 400 (BAD_REQUEST) during orderer next
at org.hyperledger.fabric.sdk.OrdererClient.sendTransaction(OrdererClient.java:240) ~[fabric-sdk-java-1.4.13.jar:na]
at org.hyperledger.fabric.sdk.Orderer.sendTransaction(Orderer.java:164) ~[fabric-sdk-java-1.4.13.jar:na]
at org.hyperledger.fabric.sdk.Channel.sendUpdateChannel(Channel.java:549) ~[fabric-sdk-java-1.4.13.jar:na]
at org.hyperledger.fabric.sdk.Channel.updateChannelConfiguration(Channel.java:455) ~[fabric-sdk-java-1.4.13.jar:na]
at org.hyperledger.fabric.sdk.Channel.updateChannelConfiguration(Channel.java:412) ~[fabric-sdk-java-1.4.13.jar:na]
at com.***.util.SDKUtil$Companion.updateChannel(SDKUtil.kt:68) ~[main/:na]
at com.***.***Application.configureChannel(FjstApplication.kt:76) ~[main/:na]
at com.***.***Application.access$configureChannel(FjstApplication.kt:19) ~[main/:na]
at com.***.***Application$commandLineRunner$2.run(FjstApplication.kt:54) ~[main/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:804) [spring-boot-2.4.0.jar:2.4.0]
... 5 common frames omitted
Caused by: org.hyperledger.fabric.sdk.exception.TransactionException: Channel mychannel orderer orderer.***.com status returned failure code 400 (BAD_REQUEST) during orderer next
at org.hyperledger.fabric.sdk.OrdererClient$1.onNext(OrdererClient.java:186) ~[fabric-sdk-java-1.4.13.jar:na]
And the docker logs of orderer.***.com:
2020-12-14 09:14:48.443 UTC [orderer.commmon.multichannel] newChain -> INFO 00b Created and starting new chain mychannel
2020-12-14 09:14:48.451 UTC [comm.grpc.server] 1 -> INFO 00c streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=192.168.128.1:35988 grpc.code=OK grpc.call_duration=60.307408ms
2020-12-14 09:15:01.201 UTC [comm.grpc.server] 1 -> INFO 00d streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=192.168.128.1:35988 grpc.code=OK grpc.call_duration=1.770753ms
2020-12-14 09:15:01.208 UTC [orderer.common.broadcast] ProcessMessage -> WARN 00e [channel: mychannel] Rejecting broadcast of config message from 192.168.128.1:35988 because of error: error applying config update to existing channel 'mychannel': error authorizing update: proto: field "common.ConfigUpdate.channel_id" contains invalid UTF-8
2020-12-14 09:15:01.208 UTC [comm.grpc.server] 1 -> INFO 00f streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=192.168.128.1:35988 grpc.code=OK grpc.call_duration=349.969µs
The config and network files:
https://1drv.ms/u/s!Aj_rPvkyS8y8gtsXEaKBXD1riM12CQ?e=jkMeYn
Please help:
If a solution is not obvious, could you please tell me what the possible causes are?
Thanks!

Failed to order the transaction. Error code: SERVICE_UNAVAILABLE using raft consensus protocol

I am facing this error while using Raft consensus protocol in which I have setup 5 orderers(1 in 1st server, 2 each in other 2 servers) namely orderer1 to orderer5.
Everything works fine with the setup and all the orderers are participating in the orderer election process but while I'm trying to invoke a transaction then I'm facing an error like this:
[ERROR] invoke-chaincode - Failed to order the transaction. Error code: SERVICE_UNAVAILABLE
This error comes only when i try to invoke using orderer2 but works well with any other orderer. Please help to resolve the issue.
Here are the logs of orderer2 and its running:
2019-08-13 07:05:59.374 UTC [orderer.consensus.etcdraft] run -> INFO 318 raft.node: 2 elected leader 4 at term 2 channel=invoice node=2
2019-08-13 07:05:59.375 UTC [orderer.consensus.etcdraft] serveRequest -> INFO 319 Raft leader changed: 0 -> 4 channel=invoice node=2
2019-08-13 07:05:59.580 UTC [common.deliver] Handle -> WARN 31a Error reading from xx.xx.xx.xx:56890: rpc error: code = Canceled desc = context canceled
2019-08-13 07:05:59.580 UTC [comm.grpc.server] 1 -> INFO 31b streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=xx.xx.xx.xx:56890 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=207.535623ms
2019-08-13 07:13:20.952 UTC [orderer.common.broadcast] ProcessMessage -> WARN 320 [channel: invoice] Rejecting broadcast of normal message from xx.xx.xx.xx:56916 with SERVICE_UNAVAILABLE: rejected by Order: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial tcp 192.168.224.4:8050: connect: connection refused"
2019-08-13 07:13:20.952 UTC [comm.grpc.server] 1 -> INFO 321 streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=xx.xx.xx.xx:56916 grpc.code=OK grpc.call_duration=35.477429971s
I just ran into this very issue, orderer2 as well. It turns out for me, I had made a typo in the orderer config. In the General.Cluster section, I accidentally renamed the ClientCertificate and ClientPrivateKey fields to ServerCertificate and ServerPrivateKey. I switched them, left the Server* values blank and pointed to my client certs with the others and everything worked.

How fix "rpc error: code = Unknown desc = access denied: channel [mychannel] creator org [Org1MSP]" error in Hyperledger Fabric

Currently I am using Hyperledger Fabric 1.4, and I am trying to modify the basic-network. I am trying to add an org2 with one peer. Whenever I try to invoke the chaincode from the peer on the second organization (Org2) I get the following error:
Error: Error endorsing chaincode: rpc error: code = Unknown desc = access denied: channel [] creator org [Org2MSP]
My current network components are:
org1, with two peers
org2, with one peer
CA1
CA2
Ordere
CLI
and a channel called "mychannel"
I am able to create the channel "mychannel" and join the 3 peers from the two organizations. Also, I am able to install the chaincode on three of the peers from both organizations. And I am instantiating the chaincode on peer0 in Org1
Part of the Ordere logs:
2019-05-13 13:17:42.384 UTC [fsblkstorage] newBlockfileMgr -> INFO 003 Getting block information from block storage
2019-05-13 13:17:42.970 UTC [orderer.commmon.multichannel] Initialize -> INFO 004 Starting system channel 'testchainid' with genesis block hash f1bcfe55588bd24faaa699bc740045455283b63950436a36d5cf473f4b3d8f81 and orderer type solo
2019-05-13 13:17:42.970 UTC [orderer.common.server] Start -> INFO 005 Starting orderer:
Version: 1.4.1
Commit SHA: 87074a7
Go version: go1.11.5
OS/Arch: linux/amd64
2019-05-13 13:17:42.970 UTC [orderer.common.server] Start -> INFO 006 Beginning to serve requests
2019-05-13 13:21:30.921 UTC [comm.grpc.server] 1 -> INFO 007 streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.20.0.6:36544 grpc.code=OK grpc.call_duration=27.428231ms
2019-05-13 13:21:30.927 UTC [fsblkstorage] newBlockfileMgr -> INFO 008 Getting block information from block storage
2019-05-13 13:21:31.038 UTC [orderer.commmon.multichannel] newChain -> INFO 009 Created and starting new chain mychannel
2019-05-13 13:21:31.044 UTC [comm.grpc.server] 1 -> INFO 00a streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=172.20.0.6:36542 grpc.code=OK grpc.call_duration=152.538972ms
2019-05-13 13:22:11.867 UTC [common.deliver] Handle -> WARN 00b Error reading from 172.20.0.6:36578: rpc error: code = Canceled desc = context canceled
2019-05-13 13:22:11.867 UTC [comm.grpc.server] 1 -> INFO 00c streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=172.20.0.6:36578 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=5.757971ms
2019-05-13 13:22:22.295 UTC [orderer.common.broadcast] Handle -> WARN 00d Error reading from 172.20.0.8:34272: rpc error: code = Canceled desc = context canceled
2019-05-13 13:22:22.295 UTC [comm.grpc.server] 1 -> INFO 00e streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.20.0.8:34272 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=7.238573847s
2019-05-13 13:23:46.748 UTC [orderer.common.broadcast] Handle -> WARN 00f Error reading from 172.20.0.8:34362: rpc error: code = Canceled desc = context canceled
2019-05-13 13:23:46.748 UTC [comm.grpc.server] 1 -> INFO 010 streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.20.0.8:34362 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=49.20235ms
In summery, I can not invoke the chaincode from the second organization (Org2) because of channel access error.
Note:
I am generating the CA and I have checked the files and it seems to be correct
If anyone can help I would appreciate it.
Thanks in advance
This can be caused by wrong MSPID name for example "orgMSP" is wrong as it starts with lowercase "o"
to solve the problem use correct MSPID
export CORE_PEER_LOCALMSPID="Org1MSP"
It would be easy to answer if you have shared the peer logs.
The error could be because of the Certificates to sign the transaction.Double check your certificate received from CA and also checked the certificates and path used inside the docker container of peer1.

How to fix "context finished before block retrieved: context canceled" occurred while instantiating chaincode?

The instantiation command completes successfully, but when analyzing peer logs, you may notice this:
2019-04-17 17:25:52.581 UTC [gossip.state] commitBlock -> DEBU 48c [canal-contrato] Committed block [1] with 1 transaction(s)
2019-04-17 17:25:52.581 UTC [common.deliver] deliverBlocks -> DEBU 48d [channel: canal-contrato] Delivering block for (0xc00023f9c0) for 192.168.16.1:48230
2019-04-17 17:25:52.581 UTC [fsblkstorage] waitForBlock -> DEBU 48e Going to wait for newer blocks. maxAvailaBlockNumber=[1], waitForBlockNum=[2]
2019-04-17 17:25:52.586 UTC [common.deliver] deliverBlocks -> DEBU 48f Context canceled, aborting wait for next block
2019-04-17 17:25:52.586 UTC [common.deliverevents] func1 -> DEBU 490 Closing Deliver stream
2019-04-17 17:25:52.586 UTC [comm.grpc.server] 1 -> INFO 491 streaming call completed {"grpc.start_time": "2019-04-17T17:25:50.441Z", "grpc.service": "protos.Deliver", "grpc.method": "DeliverFiltered", "grpc.peer_address": "192.168.16.1:48230", "error": "context finished before block retrieved: context canceled", "grpc.code": "Unknown", "grpc.call_duration": "2.144399922s"}
Can anyone orient me what I'm possibly doing wrong and what are the consequences of this error?
Notes:
The orderer logs don't present any type of error
All containers are running correctly
I'm using node version 8.9.0 (with npm 5.5.1)
I have 1 organization with 1 peer, 1 CA and 1 ordered (just to test)
I'm using hyperlegder fabric version 1.4
This is not an error. You are using an SDK that connects to the peer and waits for the instantiate to finish. The block is received by the peer, and when it does - the SDK closes the gRPC stream because it doesn't need it anymore, and the peer logs this to notify you why it closed the stream from the server side.

Resources