Date   

Re: #hyperledger-fabric Problems after peer channel update: PANI 044 Cannot commit block to the ledger due to config currently at sequence 0, cannot validate config at sequence 2 #hyperledger-fabric

Howin Ho
 

I believe you should peer channel join before peer channel update. The reason being that after you peer channel update, the genesis block [block 0] becomes outdated.


GO SDK support for fabric 2.0

Suhan Sumeet
 

Hello Team,

Do we have GO SDK for fabric 2.0, and if not any idea by when we are going to have it for fabric 2.0

Regards,
Sunil Suseelan


#hyperledger-fabric Problems after peer channel update: PANI 044 Cannot commit block to the ledger due to config currently at sequence 0, cannot validate config at sequence 2 #hyperledger-fabric

Magno Alves Cavalcante
 

Fabric 1.4.3 version, 1 Oderer, 1 Org
Impossible to continue after join peer in channel.

1) At CLI docker prompt, execute:
peer channel create -o $ORDERERNAME -c $CHANNELNAME -f $CONFIGTXFOLDER/devchannel.tx --tls --cafile=$ORDERER_TLSCACERT

Last output log >> UTC [cli.common] readBlock -> INFO 04e Received block: 0

2) At CLI docker prompt, execute:
peer channel update -o $ORDERERNAME -c $CHANNELNAME -f $CONFIGTXFOLDER/$CHANNELNAME-OrgAnchor.tx --tls --cafile=$ORDERER_TLSCACERT

Last output log >> UTC [channelCmd] update -> INFO 04a Successfully submitted channel update

3) At CLI docker prompt, execute:
peer channel join -o $ORDERERNAME -b $CONFIGTXFOLDER/devgenesis.block --tls --cafile=$ORDERER_TLSCACERT

Last output log >> UTC [channelCmd] executeJoin -> INFO 03e Successfully submitted proposal to join channel

And after small time, PEER0 enter in PANIC mode and shutdown

Inspecting logs at PEER0, display:
===
2020-03-12 01:05:23.586 UTC [gossip.state] NewGossipStateProvider -> INFO 035 Updating metadata information, current ledger sequence is at = 0, next expected block is = 1
2020-03-12 01:05:23.588 UTC [sccapi] deploySysCC -> INFO 036 system chaincode lscc/devchannel(github.com/hyperledger/fabric/core/scc/lscc) deployed
2020-03-12 01:05:23.588 UTC [cscc] Init -> INFO 037 Init CSCC
2020-03-12 01:05:23.588 UTC [sccapi] deploySysCC -> INFO 038 system chaincode cscc/devchannel(github.com/hyperledger/fabric/core/scc/cscc) deployed
2020-03-12 01:05:23.588 UTC [qscc] Init -> INFO 039 Init QSCC
2020-03-12 01:05:23.588 UTC [sccapi] deploySysCC -> INFO 03a system chaincode qscc/devchannel(github.com/hyperledger/fabric/core/scc/qscc) deployed
2020-03-12 01:05:23.588 UTC [sccapi] deploySysCC -> INFO 03b system chaincode (+lifecycle,github.com/hyperledger/fabric/core/chaincode/lifecycle) disabled
2020-03-12 01:05:23.588 UTC [endorser] callChaincode -> INFO 03c [][a2380c69] Exit chaincode: name:"cscc" (239ms)
2020-03-12 01:05:23.588 UTC [comm.grpc.server] 1 -> INFO 03d unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.28.0.5:53834 grpc.code=OK grpc.call_duration=241.332991ms
2020-03-12 01:05:29.589 UTC [gossip.election] beLeader -> INFO 03e f26b9868b8d67867e01dd06c4965e5db9ed6556350f62e688c3081a456c0d3af : Becoming a leader
2020-03-12 01:05:29.589 UTC [gossip.service] func1 -> INFO 03f Elected as a leader, starting delivery service for channel devchannel
2020-03-12 01:05:29.609 UTC [gossip.privdata] StoreBlock -> INFO 040 [devchannel] Received block [1] from buffer
2020-03-12 01:05:29.610 UTC [committer.txvalidator] validateTx -> ERRO 041 config currently at sequence 0, cannot validate config at sequence 2
github.com/hyperledger/fabric/common/configtx.(*ValidatorImpl).Validate
/opt/gopath/src/github.com/hyperledger/fabric/common/configtx/validator.go:170
github.com/hyperledger/fabric/core/peer.(*chainSupport).Apply
/opt/gopath/src/github.com/hyperledger/fabric/core/peer/peer.go:141
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:425
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).Validate.func1.1
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:158
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333
error validating config which passed initial validity checks
2020-03-12 01:05:29.610 UTC [gossip.privdata] StoreBlock -> ERRO 042 Validation failed: config currently at sequence 0, cannot validate config at sequence 2
github.com/hyperledger/fabric/common/configtx.(*ValidatorImpl).Validate
/opt/gopath/src/github.com/hyperledger/fabric/common/configtx/validator.go:170
github.com/hyperledger/fabric/core/peer.(*chainSupport).Apply
/opt/gopath/src/github.com/hyperledger/fabric/core/peer/peer.go:141
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:425
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).Validate.func1.1
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:158
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333
error validating config which passed initial validity checks
2020-03-12 01:05:29.610 UTC [gossip.state] commitBlock -> ERRO 043 Got error while committing(config currently at sequence 0, cannot validate config at sequence 2
github.com/hyperledger/fabric/common/configtx.(*ValidatorImpl).Validate
/opt/gopath/src/github.com/hyperledger/fabric/common/configtx/validator.go:170
github.com/hyperledger/fabric/core/peer.(*chainSupport).Apply
/opt/gopath/src/github.com/hyperledger/fabric/core/peer/peer.go:141
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:425
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).Validate.func1.1
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:158
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333
error validating config which passed initial validity checks
github.com/hyperledger/fabric/gossip/state.(*GossipStateProviderImpl).commitBlock
/opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:811
github.com/hyperledger/fabric/gossip/state.(*GossipStateProviderImpl).deliverPayloads
/opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:598
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333)
2020-03-12 01:05:29.610 UTC [gossip.state] deliverPayloads -> PANI 044 Cannot commit block to the ledger due to config currently at sequence 0, cannot validate config at sequence 2
github.com/hyperledger/fabric/common/configtx.(*ValidatorImpl).Validate
/opt/gopath/src/github.com/hyperledger/fabric/common/configtx/validator.go:170
github.com/hyperledger/fabric/core/peer.(*chainSupport).Apply
/opt/gopath/src/github.com/hyperledger/fabric/core/peer/peer.go:141
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:425
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).Validate.func1.1
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:158
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333
error validating config which passed initial validity checks
github.com/hyperledger/fabric/gossip/state.(*GossipStateProviderImpl).deliverPayloads
/opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:603
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333
panic: Cannot commit block to the ledger due to config currently at sequence 0, cannot validate config at sequence 2
github.com/hyperledger/fabric/common/configtx.(*ValidatorImpl).Validate
/opt/gopath/src/github.com/hyperledger/fabric/common/configtx/validator.go:170
github.com/hyperledger/fabric/core/peer.(*chainSupport).Apply
/opt/gopath/src/github.com/hyperledger/fabric/core/peer/peer.go:141
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:425
github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).Validate.func1.1
/opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:158
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333
error validating config which passed initial validity checks
github.com/hyperledger/fabric/gossip/state.(*GossipStateProviderImpl).deliverPayloads
/opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:603
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333

goroutine 361 [running]:
github.com/hyperledger/fabric/vendor/go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc00215a210, 0x0, 0x0, 0x0)
/opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/zapcore/entry.go:229 +0x515
github.com/hyperledger/fabric/vendor/go.uber.org/zap.(*SugaredLogger).log(0xc00000e520, 0x4, 0x128f3f7, 0x2c, 0xc002cfec90, 0x1, 0x1, 0x0, 0x0, 0x0)
/opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/sugar.go:234 +0xf6
github.com/hyperledger/fabric/vendor/go.uber.org/zap.(*SugaredLogger).Panicf(0xc00000e520, 0x128f3f7, 0x2c, 0xc002cfec90, 0x1, 0x1)
/opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/sugar.go:159 +0x79
github.com/hyperledger/fabric/common/flogging.(*FabricLogger).Panicf(0xc00000e528, 0x128f3f7, 0x2c, 0xc002cfec90, 0x1, 0x1)
/opt/gopath/src/github.com/hyperledger/fabric/common/flogging/zap.go:74 +0x60
github.com/hyperledger/fabric/gossip/state.(*GossipStateProviderImpl).deliverPayloads(0xc0025a99a0)
/opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:603 +0x4a5
created by github.com/hyperledger/fabric/gossip/state.NewGossipStateProvider
/opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:284 +0x714

====
May you help ?


Re: Endorsement Policy Failure

Yacov
 

why are you using "admin" roles in an endorsement policy? Peers cannot be admins.



From:        "Tomás Peixinho" <tom.peixinho@...>
To:        Yacov Manevich <YACOVM@...>, "hyperledger-fabric@..." <hyperledger-fabric@...>
Date:        03/12/2020 12:06 AM
Subject:        [EXTERNAL] [Hyperledger Fabric] Endorsement Policy Failure
Sent by:        fabric@...




Good evening,

a while back I asked about the endorsement policies, and after I tried to mess with them a bit, I've reached a dead end. My chaincode and application are now complete, so I finally decided to change the endorsement policy (if I don't define it, the default is "Any peer", and this would be very insecure). As a simple starting point, I was trying to have at least one peer from each org to endorse the transactions (my network has 3 orgs), so I defined the policy file as follows:

# A Shotgun policy xx
identities:  # list roles to be used in the policy
    user1: {"role": {"name": "peer", "mspId": "Org1MSP"}} # role member in org with mspid Org1MSP
    user2: {"role": {"name": "peer", "mspId": "Org2MSP"}}
    user3: {"role": {"name": "peer", "mspId": "Org3MSP"}}
    admin1: {"role": {"name": "admin", "mspId": "Org1MSP"}} # admin role.
    admin2: {"role": {"name": "admin", "mspId": "Org2MSP"}}
    admin3: {"role": {"name": "admin", "mspId": "Org3MSP"}}

policy: # the policy  .. could have been flat but show grouping.
    3-of: # signed by one of these groups  can be <n>-of  where <n> is any digit 2-of, 3-of etc..
      - 1-of:
        - signed-by: "user1" # a reference to one of the identities defined above.
        - signed-by: "admin1"
      - 1-of:
        - signed-by: "user2"
        - signed-by: "admin2"
      - 1-of:
        - signed-by: "user3"
        - signed-by: "admin3"

I used the example file that came with the java sdk (chaincodeendorsementpolicy.yaml) and updated it to do what I wanted. However, no matter what I define in this file, the policy check always fails with this message:

2020-03-11 19:22:29.527 UTC [vscc] Validate -> WARN 05a Endorsement policy failure for transaction txid=3d4051db0b3be08ae6205831f326d1e1d42e79ea97e6b89c57bcb163bd80ffaa, err: signature set did not satisfy policy
2020-03-11 19:22:29.527 UTC [committer.txvalidator] validateTx -> ERRO 05b VSCCValidateTx for transaction txId = 3d4051db0b3be08ae6205831f326d1e1d42e79ea97e6b89c57bcb163bd80ffaa returned error: VSCC error: endorsement policy failure, err: signature set did not satisfy policy
2020-03-11 19:22:29.527 UTC [committer.txvalidator] Validate -> INFO 05c [mychannel] Validated block [2] in 4ms
2020-03-11 19:22:29.527 UTC [valimpl] preprocessProtoBlock -> WARN 05d Channel [mychannel]: Block [2] Transaction index [0] TxId [3d4051db0b3be08ae6205831f326d1e1d42e79ea97e6b89c57bcb163bd80ffaa] marked as invalid by committer. Reason code [ENDORSEMENT_POLICY_FAILURE]

I thought I might have been doing something wrong with the syntax of the file, but if I change the "3-of" to "0-of", it works, so I guess that's not it. I also thought it could have been because the peers were unable to find each other, so I manually defined the anchor peers for each organization on the configtx.yaml (the port I defined for all of them was the 7051, which was the default port for the peer0-org1, not sure if this is correct or not), and I also defined the fields CORE_PEER_GOSSIP_BOOTSTRAP and CORE_PEER_GOSSIP_EXTERNALENDPOINT for each peer on the docker-compose.yml (the file which defines the network topology), but I'm also not sure of what I should define them with, so I put the "bootstrap" with the address of the anchor peer of the org, and the "external endpoint" with the same address as the peer on which I'm defining it. This final alteration was because I was getting a warning saying that since the external endpoint wasn't defined, peers were unable to see each other and I thought that might have something to do with it (if they couldn't find peers from different orgs, these weren't able to endorse the transactions and the verification would fail, just a theory).

Not sure if any of this makes sense, but since it's not working, I'm gonna go ahead and assume it doesn't. Or maybe my problem isn't even related to any of this, but in that case, I really don't know what I'm missing or doing wrong. Any help would be greatly appreciated. If I'm going about this all wrong, my purpose here was just to define my own endorsement policy, in order to make the blockchain more secure (as per Yacov's recommendation), so if someone can enlighten me on the subject, I thank you in avance.

Cheers

Tomás





Endorsement Policy Failure

Tomás Peixinho
 

Good evening,

a while back I asked about the endorsement policies, and after I tried to mess with them a bit, I've reached a dead end. My chaincode and application are now complete, so I finally decided to change the endorsement policy (if I don't define it, the default is "Any peer", and this would be very insecure). As a simple starting point, I was trying to have at least one peer from each org to endorse the transactions (my network has 3 orgs), so I defined the policy file as follows:

# A Shotgun policy xx
identities:  # list roles to be used in the policy
    user1: {"role": {"name": "peer", "mspId": "Org1MSP"}} # role member in org with mspid Org1MSP
    user2: {"role": {"name": "peer", "mspId": "Org2MSP"}}
    user3: {"role": {"name": "peer", "mspId": "Org3MSP"}}
    admin1: {"role": {"name": "admin", "mspId": "Org1MSP"}} # admin role.
    admin2: {"role": {"name": "admin", "mspId": "Org2MSP"}}
    admin3: {"role": {"name": "admin", "mspId": "Org3MSP"}}

policy: # the policy  .. could have been flat but show grouping.
    3-of: # signed by one of these groups  can be <n>-of  where <n> is any digit 2-of, 3-of etc..
      - 1-of:
        - signed-by: "user1" # a reference to one of the identities defined above.
        - signed-by: "admin1"
      - 1-of:
        - signed-by: "user2"
        - signed-by: "admin2"
      - 1-of:
        - signed-by: "user3"
        - signed-by: "admin3"

I used the example file that came with the java sdk (chaincodeendorsementpolicy.yaml) and updated it to do what I wanted. However, no matter what I define in this file, the policy check always fails with this message: 

2020-03-11 19:22:29.527 UTC [vscc] Validate -> WARN 05a Endorsement policy failure for transaction txid=3d4051db0b3be08ae6205831f326d1e1d42e79ea97e6b89c57bcb163bd80ffaa, err: signature set did not satisfy policy
2020-03-11 19:22:29.527 UTC [committer.txvalidator] validateTx -> ERRO 05b VSCCValidateTx for transaction txId = 3d4051db0b3be08ae6205831f326d1e1d42e79ea97e6b89c57bcb163bd80ffaa returned error: VSCC error: endorsement policy failure, err: signature set did not satisfy policy
2020-03-11 19:22:29.527 UTC [committer.txvalidator] Validate -> INFO 05c [mychannel] Validated block [2] in 4ms
2020-03-11 19:22:29.527 UTC [valimpl] preprocessProtoBlock -> WARN 05d Channel [mychannel]: Block [2] Transaction index [0] TxId [3d4051db0b3be08ae6205831f326d1e1d42e79ea97e6b89c57bcb163bd80ffaa] marked as invalid by committer. Reason code [ENDORSEMENT_POLICY_FAILURE]

I thought I might have been doing something wrong with the syntax of the file, but if I change the "3-of" to "0-of", it works, so I guess that's not it. I also thought it could have been because the peers were unable to find each other, so I manually defined the anchor peers for each organization on the configtx.yaml (the port I defined for all of them was the 7051, which was the default port for the peer0-org1, not sure if this is correct or not), and I also defined the fields CORE_PEER_GOSSIP_BOOTSTRAP and CORE_PEER_GOSSIP_EXTERNALENDPOINT for each peer on the docker-compose.yml (the file which defines the network topology), but I'm also not sure of what I should define them with, so I put the "bootstrap" with the address of the anchor peer of the org, and the "external endpoint" with the same address as the peer on which I'm defining it. This final alteration was because I was getting a warning saying that since the external endpoint wasn't defined, peers were unable to see each other and I thought that might have something to do with it (if they couldn't find peers from different orgs, these weren't able to endorse the transactions and the verification would fail, just a theory).

Not sure if any of this makes sense, but since it's not working, I'm gonna go ahead and assume it doesn't. Or maybe my problem isn't even related to any of this, but in that case, I really don't know what I'm missing or doing wrong. Any help would be greatly appreciated. If I'm going about this all wrong, my purpose here was just to define my own endorsement policy, in order to make the blockchain more secure (as per Yacov's recommendation), so if someone can enlighten me on the subject, I thank you in avance.

Cheers

Tomás


Re: How to increase capacity of peer node to handle many transactions simultaneously #hyperledger-fabric #fabric

Prasanth Sundaravelu
 

Hi Keerthi, 

You might want to check at the client. The reason transactions fail in your case is not because of peer's incapability. I'm assuming you have created your client based on samples provided in the tutorials.

In node.js client script samples (from tutorials), for every transaction, the following happens: 

 1. A new grpc channel gets created and opened between client and every peer, and the invocation request is sent.
2. Client receives the response of peers and creates a transaction proposal.
3. A new grpc channel gets created between client and orderer, and the proposal is sent.
4. Client recieved response(status) from orderer.
5. Grps channels get closed.

Notice here, a new grpc channel gets created for every transaction in this case, which is costly. 

Also, everytime when a communication channel is being created, client also requests for metadata of blockchain like channel, chaincodes etc. This meta data wont change on transaction basis, hence it is also unnecessarily costly.

If you reuse already created grpc channels for multiple transactions, you could achieve higher TPS.

An ideal approach would be to manage sessions for users and reuse open communication channels. After certain amount of inactivity, they can be closed.

On Thu, 12 Mar 2020, 12:28 am , <keerthycbe@...> wrote:
Hi,

Currently, our endosring peer node can't execute more than 30 transactions simultaneously. If I send a batch with 30 transactions, peer node is able to execute all transactions successfully. if the batch has more than 30 then the transaction fails. I would like to understand the design of peer node like how many transactions it can execute simultaneously and how can we improve it?

Thanks and Regards
Keerthi


How to increase capacity of peer node to handle many transactions simultaneously #hyperledger-fabric #fabric

keerthycbe@...
 

Hi,

Currently, our endosring peer node can't execute more than 30 transactions simultaneously. If I send a batch with 30 transactions, peer node is able to execute all transactions successfully. if the batch has more than 30 then the transaction fails. I would like to understand the design of peer node like how many transactions it can execute simultaneously and how can we improve it?

Thanks and Regards
Keerthi


Re: #fabric #fabric

Yacov
 

SHA256



From:        westerkamp@...
To:        fabric@...
Date:        03/11/2020 07:05 PM
Subject:        [EXTERNAL] [Hyperledger Fabric] #fabric
Sent by:        fabric@...




Hi everyone,

I have a question concerning the hashes that are stored when using private collections.

I would like to compare a preimage to the stored hash. However, I wonder how they are computed, as there is only very little information about the specifics in the documentation.

So far, it seems to me like MD5 hashes are used (I wonder why MD5 was chosen these days, but that's a different story). What seems odd to me is that I retrieve different hash sizes for different values. Storing a single string leads to a 64bit hashe while storing a marshalled json leads to a 128bit hash value. I retrieve the hashes using the GetPrivateDataHash() function in Go.

Could anyone please shed some light on how to compute the hash from a given preimage?

Thanks and best regards,
Martin




#fabric #fabric

@informartin
 

Hi everyone,

I have a question concerning the hashes that are stored when using private collections.

I would like to compare a preimage to the stored hash. However, I wonder how they are computed, as there is only very little information about the specifics in the documentation.

So far, it seems to me like MD5 hashes are used (I wonder why MD5 was chosen these days, but that's a different story). What seems odd to me is that I retrieve different hash sizes for different values. Storing a single string leads to a 64bit hashe while storing a marshalled json leads to a 128bit hash value. I retrieve the hashes using the GetPrivateDataHash() function in Go.

Could anyone please shed some light on how to compute the hash from a given preimage?

Thanks and best regards,
Martin


Re: Hyperledger 1.4 install & instantiate javascript chaincode #fabric-chaincode

antonimassomola@...
 

Hi,

I think it might be a problem with the different versions. I upgraded to 2.0 & everything works fine.

Thanks


Re: Hyperledger 1.4 install & instantiate javascript chaincode #fabric-chaincode

Howin Ho
 

Not sure if it is same as your case. I encountered something similar when I tried to start hlf v1.4 and had both 1.4 and 2.0 version of hyperledger/fabric-ccenv docker images in my laptop. Fixed it by rmi my 2.0 images.


Getting a grpc error on Fabric 2.0 , container is unable to see the grpc_node.node located in musl folder in a box that has no internet #grpc

maruti praturi
 

I am working on a box that has no internet. Successfully did ./byfn.sh and ./startFabric.sh in the fabcar after ftp into it all the required docker images, go files etc.
However I am running into a problem while doing ./startFabric.sh typescript with the initial error as below
""/chaincode/output/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-musl/grpc_node.node" (not found)"
The npm install and npm run build run successfully without errors in the /chanicode/fabcar/typescript and the file grpc_node.node is within the correct directory in the node_modules.
So it appears that the container is not finding it.
It is missing in the /var/lib/docker/overlay/xxxxxxxxxxxxxx/chaincode/ouptut/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-musl folder.
Please help.

 


Re: Fabric 2.0 cannot invoke chiancode due to API error (500): invalid cluster node while attaching to network #fabric #fabric-chaincode #fabric-questions

Gari Singh <garis@...>
 

My guess is that you have either not configured the correct Docker network in the config (vm.docker.hostConfig.NetworkMode / CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE) or that the Docker network you created / being created is not marked as "attachable".

-----------------------------------------
Gari Singh
Distinguished Engineer, CTO - IBM Blockchain
IBM Middleware
550 King St
Littleton, MA 01460
Cell: 978-846-7499
garis@...
-----------------------------------------

-----fabric@... wrote: -----
To: fabric@...
From: mattia.bolzonella@...
Sent by: fabric@...
Date: 03/10/2020 06:03AM
Subject: [EXTERNAL] Re: [Hyperledger Fabric] Fabric 2.0 cannot invoke chiancode due to API error (500): invalid cluster node while attaching to network #fabric #fabric-chaincode #fabric-questions

Thanks for the reply,
I'm currently using Docker Compose, the final goal is to replicate the network using Docker Swarm on multiple hosts (which I've done with Fabric 1.4)

Mattia


Re: Fabric 2.0 cannot invoke chiancode due to API error (500): invalid cluster node while attaching to network #fabric #fabric-chaincode #fabric-questions

Mattia Bolzonella
 

Thanks for the reply,
I'm currently using Docker Compose, the final goal is to replicate the network using Docker Swarm on  multiple hosts (which I've done with Fabric 1.4)

Mattia


Re: Fabric 2.0 cannot invoke chiancode due to API error (500): invalid cluster node while attaching to network #fabric #fabric-chaincode #fabric-questions

Gari Singh <garis@...>
 

How are you running your peer? Docker Compose? Docker Swarm?

-----------------------------------------
Gari Singh
Distinguished Engineer, CTO - IBM Blockchain
IBM Middleware
550 King St
Littleton, MA 01460
Cell: 978-846-7499
garis@...
-----------------------------------------

-----fabric@... wrote: -----
To: fabric@...
From: mattia.bolzonella@...
Sent by: fabric@...
Date: 03/10/2020 04:56AM
Subject: [EXTERNAL] [Hyperledger Fabric] Fabric 2.0 cannot invoke chiancode due to API error (500): invalid cluster node while attaching to network #fabric #fabric-chaincode #fabric-questions

Hi, I've recently moved to Fabric 2.0 and I'm struggling to invoke a chaincode successfully committed to a channel. Here's the log of a peer:
```
2020-03-10 08:05:54.994 UTC [dockercontroller] Start -> ERRO 0ca start-could not start container: API error (500): invalid cluster node while attaching to network
2020-03-10 08:05:54.995 UTC [lifecycle] Work -> WARN 0cb could not launch chaincode 'notarizationChaincode:66b67e20a8b0b1f3a758058fb3a4e745aa70b63a900fd03da3f1d6c8da820a46': error starting container: error starting container: API error (500): invalid cluster node while attaching to network
2020-03-10 08:06:01.878 UTC [dockercontroller] Start -> ERRO 0cc start-could not start container: API error (500): invalid cluster node while attaching to network
2020-03-10 08:06:01.879 UTC [endorser] callChaincode -> INFO 0cd finished chaincode: notarizationChaincode duration: 844ms channel=agrifood-channel txID=c9909b6d
2020-03-10 08:06:01.879 UTC [endorser] SimulateProposal -> ERRO 0ce failed to invoke chaincode notarizationChaincode, error: API error (500): invalid cluster node while attaching to network
error starting container
error starting container
could not launch chaincode notarizationChaincode:66b67e20a8b0b1f3a758058fb3a4e745aa70b63a900fd03da3f1d6c8da820a46
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Launch
/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:85
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Invoke
/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:197
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Execute
/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:155
github.com/hyperledger/fabric/core/endorser.(*SupportImpl).Execute
/go/src/github.com/hyperledger/fabric/core/endorser/support.go:126
github.com/hyperledger/fabric/core/endorser.(*Endorser).callChaincode
/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:114
github.com/hyperledger/fabric/core/endorser.(*Endorser).SimulateProposal
/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:173
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposalSuccessfullyOrError
/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:377
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposal
/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:320
github.com/hyperledger/fabric/core/handlers/auth/filter.(*expirationCheckFilter).ProcessProposal
/go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/expiration.go:61
github.com/hyperledger/fabric/core/handlers/auth/filter.(*filter).ProcessProposal
/go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/filter.go:32
github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer._Endorser_ProcessProposal_Handler.func1
/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:107
github.com/hyperledger/fabric/common/grpclogging.UnaryServerInterceptor.func1
/go/src/github.com/hyperledger/fabric/common/grpclogging/server.go:92
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
github.com/hyperledger/fabric/common/grpcmetrics.UnaryServerInterceptor.func1
/go/src/github.com/hyperledger/fabric/common/grpcmetrics/interceptor.go:31
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1
/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34
github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer._Endorser_ProcessProposal_Handler
/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:109
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).processUnaryRPC
/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:995
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).handleStream
/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1275
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1
/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:710
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1357
failed to execute transaction c9909b6d9b73ab9c1d3196cd41b0aedf973a677e76cce25b15440917f3eb37e8
github.com/hyperledger/fabric/core/chaincode.processChaincodeExecutionResult
/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:161
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Execute
/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:156
github.com/hyperledger/fabric/core/endorser.(*SupportImpl).Execute
/go/src/github.com/hyperledger/fabric/core/endorser/support.go:126
github.com/hyperledger/fabric/core/endorser.(*Endorser).callChaincode
/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:114
github.com/hyperledger/fabric/core/endorser.(*Endorser).SimulateProposal
/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:173
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposalSuccessfullyOrError
/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:377
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposal
/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:320
github.com/hyperledger/fabric/core/handlers/auth/filter.(*expirationCheckFilter).ProcessProposal
/go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/expiration.go:61
github.com/hyperledger/fabric/core/handlers/auth/filter.(*filter).ProcessProposal
/go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/filter.go:32
github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer._Endorser_ProcessProposal_Handler.func1
/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:107
github.com/hyperledger/fabric/common/grpclogging.UnaryServerInterceptor.func1
/go/src/github.com/hyperledger/fabric/common/grpclogging/server.go:92
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
github.com/hyperledger/fabric/common/grpcmetrics.UnaryServerInterceptor.func1
/go/src/github.com/hyperledger/fabric/common/grpcmetrics/interceptor.go:31
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1
/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34
github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer._Endorser_ProcessProposal_Handler
/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:109
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).processUnaryRPC
/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:995
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).handleStream
/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1275
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1
/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:710
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1357 channel=agrifood-channel txID=c9909b6d
```

I can't uderstand how to solve the problem.


Fabric 2.0 cannot invoke chiancode due to API error (500): invalid cluster node while attaching to network #fabric #fabric-chaincode #fabric-questions

Mattia Bolzonella
 

Hi, I've recently moved to Fabric 2.0 and I'm struggling to invoke a chaincode successfully committed to a channel. Here's the log of a peer:
```
2020-03-10 08:05:54.994 UTC [dockercontroller] Start -> ERRO 0ca start-could not start container: API error (500): invalid cluster node while attaching to network
2020-03-10 08:05:54.995 UTC [lifecycle] Work -> WARN 0cb could not launch chaincode 'notarizationChaincode:66b67e20a8b0b1f3a758058fb3a4e745aa70b63a900fd03da3f1d6c8da820a46': error starting container: error starting container: API error (500): invalid cluster node while attaching to network
2020-03-10 08:06:01.878 UTC [dockercontroller] Start -> ERRO 0cc start-could not start container: API error (500): invalid cluster node while attaching to network
2020-03-10 08:06:01.879 UTC [endorser] callChaincode -> INFO 0cd finished chaincode: notarizationChaincode duration: 844ms channel=agrifood-channel txID=c9909b6d
2020-03-10 08:06:01.879 UTC [endorser] SimulateProposal -> ERRO 0ce failed to invoke chaincode notarizationChaincode, error: API error (500): invalid cluster node while attaching to network
error starting container
error starting container
could not launch chaincode notarizationChaincode:66b67e20a8b0b1f3a758058fb3a4e745aa70b63a900fd03da3f1d6c8da820a46
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Launch
    /go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:85
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Invoke
    /go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:197
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Execute
    /go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:155
github.com/hyperledger/fabric/core/endorser.(*SupportImpl).Execute
    /go/src/github.com/hyperledger/fabric/core/endorser/support.go:126
github.com/hyperledger/fabric/core/endorser.(*Endorser).callChaincode
    /go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:114
github.com/hyperledger/fabric/core/endorser.(*Endorser).SimulateProposal
    /go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:173
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposalSuccessfullyOrError
    /go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:377
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposal
    /go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:320
github.com/hyperledger/fabric/core/handlers/auth/filter.(*expirationCheckFilter).ProcessProposal
    /go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/expiration.go:61
github.com/hyperledger/fabric/core/handlers/auth/filter.(*filter).ProcessProposal
    /go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/filter.go:32
github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer._Endorser_ProcessProposal_Handler.func1
    /go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:107
github.com/hyperledger/fabric/common/grpclogging.UnaryServerInterceptor.func1
    /go/src/github.com/hyperledger/fabric/common/grpclogging/server.go:92
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
    /go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
github.com/hyperledger/fabric/common/grpcmetrics.UnaryServerInterceptor.func1
    /go/src/github.com/hyperledger/fabric/common/grpcmetrics/interceptor.go:31
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
    /go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1
    /go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34
github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer._Endorser_ProcessProposal_Handler
    /go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:109
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).processUnaryRPC
    /go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:995
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).handleStream
    /go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1275
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1
    /go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:710
runtime.goexit
    /usr/local/go/src/runtime/asm_amd64.s:1357
failed to execute transaction c9909b6d9b73ab9c1d3196cd41b0aedf973a677e76cce25b15440917f3eb37e8
github.com/hyperledger/fabric/core/chaincode.processChaincodeExecutionResult
    /go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:161
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Execute
    /go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:156
github.com/hyperledger/fabric/core/endorser.(*SupportImpl).Execute
    /go/src/github.com/hyperledger/fabric/core/endorser/support.go:126
github.com/hyperledger/fabric/core/endorser.(*Endorser).callChaincode
    /go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:114
github.com/hyperledger/fabric/core/endorser.(*Endorser).SimulateProposal
    /go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:173
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposalSuccessfullyOrError
    /go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:377
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposal
    /go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:320
github.com/hyperledger/fabric/core/handlers/auth/filter.(*expirationCheckFilter).ProcessProposal
    /go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/expiration.go:61
github.com/hyperledger/fabric/core/handlers/auth/filter.(*filter).ProcessProposal
    /go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/filter.go:32
github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer._Endorser_ProcessProposal_Handler.func1
    /go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:107
github.com/hyperledger/fabric/common/grpclogging.UnaryServerInterceptor.func1
    /go/src/github.com/hyperledger/fabric/common/grpclogging/server.go:92
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
    /go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
github.com/hyperledger/fabric/common/grpcmetrics.UnaryServerInterceptor.func1
    /go/src/github.com/hyperledger/fabric/common/grpcmetrics/interceptor.go:31
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
    /go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1
    /go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34
github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer._Endorser_ProcessProposal_Handler
    /go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:109
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).processUnaryRPC
    /go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:995
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).handleStream
    /go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1275
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1
    /go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:710
runtime.goexit
    /usr/local/go/src/runtime/asm_amd64.s:1357 channel=agrifood-channel txID=c9909b6d
```

I can't uderstand how to solve the problem.


Hyperledger 1.4 install & instantiate javascript chaincode #fabric-chaincode

antonimassomola@...
 

Im trying to install & instantiate a javascript chaincode app. Im using the fabcar demo app.

Install works fine:

peer chaincode install -l node -n fabcar -v 1.1.1 -p hyperledger-config/chaincode/src/fabcar/ -o orderer0-service:7050 --tls --cafile=/etc/hyperledger/orderers/msp/tlscacerts/ca-root-7054.pem

2020-03-09 20:11:20.003 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2020-03-09 20:11:20.003 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2020-03-09 20:11:20.032 UTC [chaincodeCmd] install -> INFO 003 Installed remotely response:<status:200 payload:"OK" >


Chaincode instantiation is where it fails with an error Im not able to find information about

peer chaincode instantiate -C mainchannel -n fabcar -l node -v 1.1.1 -c '{"Args":[]}' -o orderer0-service:7050 --tls --cafile=/etc/hyperledger/orderers/msp/tlscacerts/ca-root-7054.pem -P "AND('org1.admin', 'org2.admin')"
2020-03-09 20:11:50.142 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2020-03-09 20:11:50.142 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Error: could not assemble transaction, err proposal response was not successful, error code 500, msg error starting container: error starting container: Failed to generate platform-specific docker build: Error returned from build: 127 "/bin/sh: npm: not found

Any help would be appreciated. Thanks.


Re: create a fabric supporting thin peers

ravinayag .
 

Hi,

If I rightly understand question, It make sense for thin peer within the org structure.
For example. If an org has normal 3 peers such as ledger storage, statedb, anchor/endorsement roles. 

The 4th can have a thin peer just to do endorsement role or a query role which no need to maintain ledger or Statedb. 

Hi MENG, excuse and correct if misunderstood. 

Thanks


On Mon, 9 Mar 2020, 15:33 Gari Singh, <garis@...> wrote:
What exactly is your use case here?
In order to validate transactions, a peer will need access to the state database (which is of course populated by processing validating and committing blocks/transactions).  Technically, the peer does not need access to the entire file ledger.

-----------------------------------------
Gari Singh
Distinguished Engineer, CTO - IBM Blockchain
IBM Middleware
550 King St
Littleton, MA 01460
Cell: 978-846-7499
garis@...
-----------------------------------------

-----fabric@... wrote: -----
To: "fabric@..." <fabric@...>
From: "qs meng"
Sent by: fabric@...
Date: 03/08/2020 09:55PM
Subject: [EXTERNAL] [Hyperledger Fabric] create a fabric supporting thin peers

Hi,
   I want to make some modification to the fabric  such that the peer only save blockheaders, not the transactions, not the meta data.  A peer with the code is called a thin peer which needs less storage.  But I still want a thin peer can check the correctness of transactions.
   Now I want you some help.
  1. is the idea feasible?
  2. what codes should be modified?  what I find is  " common/ledger/blkstorage/fsblkstorage/blockfile_mgr.go".  is there any other codes?
  Thank you.
  best regards,
qsmeng








Re: Privacy within a channel - multi members

Trevor Lee Oakley <trevor@...>
 

The use case is really about an org with a lot of suppliers (thousands) and there are concerns about the stability of the system by creating thousands of channels into an org. 
 
I guess we can artificially create sub-divisions in the org but then the org itself has a central bank of data and hence we then need a hierarchical setup which has each lower org with a channel to external supplier orgs but the lower org able to read the parent org. 
 
I was thinking OUs or multiple MSPs could handle this.
 
                
   
  Trevor 
 
 
 

From: "Brett T Logan" <Brett.T.Logan@...>
Sent: 09 March 2020 23:20
To: trevor@...
Cc: fabric@...
Subject: Re: [Hyperledger Fabric] Privacy within a channel - multi members
 
I'm not sure I understand the use case. If you have some transaction that the other members on your channel should in no way be party to or have knowledge of, you should have a separate channel on which the parties who have stake in that transaction belong to.
 
In what scenario would you want to completely exclude the knowledge of a transaction existing entirely when all members have agreed to participate in the consortium? By not including the transaction in a subset of ledgers, you've forked the chain as your ledgers don't hash to the same values as they don't include the same transactions.
 
Brett Logan
Software Engineer, IBM Blockchain
Phone: 1-984-242-6890
 
 
 

----- Original message -----
From: "Trevor Lee Oakley" <trevor@...>
Sent by: fabric@...
To: <fabric@...>
Cc:
Subject: [EXTERNAL] [Hyperledger Fabric] Privacy within a channel - multi members
Date: Mon, Mar 9, 2020 10:54 PM
 
If I have an Org with a lot of other Orgs on one channel, how may ensure privacy within the channel to seeing any evidence of transactions?
 
ie. if we use PDCs then the data is private but the actual txns with hashes are visible showing some evidence of trade between Orgs. This should also be private. 
 
Is there a way to achieve this, for example using OUs or multiple MSPs for an Org, or changing something in the channel config?
 
Trevor
 
 
 

 


Re: Privacy within a channel - multi members

Brett T Logan <brett.t.logan@...>
 

I'm not sure I understand the use case. If you have some transaction that the other members on your channel should in no way be party to or have knowledge of, you should have a separate channel on which the parties who have stake in that transaction belong to.
 
In what scenario would you want to completely exclude the knowledge of a transaction existing entirely when all members have agreed to participate in the consortium? By not including the transaction in a subset of ledgers, you've forked the chain as your ledgers don't hash to the same values as they don't include the same transactions.
 
Brett Logan
Software Engineer, IBM Blockchain
Phone: 1-984-242-6890
 
 
 

----- Original message -----
From: "Trevor Lee Oakley" <trevor@...>
Sent by: fabric@...
To: <fabric@...>
Cc:
Subject: [EXTERNAL] [Hyperledger Fabric] Privacy within a channel - multi members
Date: Mon, Mar 9, 2020 10:54 PM
 
If I have an Org with a lot of other Orgs on one channel, how may ensure privacy within the channel to seeing any evidence of transactions?
 
ie. if we use PDCs then the data is private but the actual txns with hashes are visible showing some evidence of trade between Orgs. This should also be private. 
 
Is there a way to achieve this, for example using OUs or multiple MSPs for an Org, or changing something in the channel config?
 
Trevor
 
 
 

3741 - 3760 of 11574