Transaction Validation Failure
Eryargi, Hakan
Hi,
Are all transaction validation failures handled the same way and propagated back to client (Node.js SDK)? In particular I’m asking about EXPIRED_CHAINCODE failure.
I’m investigating a weird issue where some transactions somehow disappear from the chain. Developers claim it is committed to chain and visible in the CouchDB but somehow later on disappear somehow. It’s not also visible in the key history.
While checking the peer logs I’ve came across below failure. My understanding is, chaincode is upgraded to a new version in the time window between transaction proposal is endorsed and sent to peers for commitment. So peers rejected the transaction because it’s endorsed by an old version of chaincode.
Weird thing is, there are no logs on the application side related to this validation failure.
So may it be the case, this error is not propagated to the client application? Or is it an improper setting on our side for listening for such events?
Thanks, Hakan
[34m2020-02-07 09:34:55.628 UTC [gossip.privdata] StoreBlock -> INFO 3f2[0m [public] Received block [386] from buffer [31m2020-02-07 09:34:55.628 UTC [committer.txvalidator] VSCCValidateTx -> ERRO 3f3[0m chaincode info:17260/public didn't match info:17280/public in lscc github.com/hyperledger/fabric/core/committer/txvalidator.(*VsccValidatorImpl).VSCCValidateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/vscc_validator.go:200 github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:345 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:1337 [31m2020-02-07 09:34:55.628 UTC [committer.txvalidator] validateTx -> ERRO 3f4[0m VSCCValidateTx for transaction txId = ecb40373f63e23e46b95a9181b82bd667d88ffd3ec2ce3298f6584f6320babed returned error: chaincode info:17260/public didn't match info:17280/public in lscc [34m2020-02-07 09:34:55.629 UTC [committer.txvalidator] Validate -> INFO 3f5[0m [public] Validated block [386] in 0ms [33m2020-02-07 09:34:55.629 UTC [valimpl] preprocessProtoBlock -> WARN 3f6[0m Channel [public]: Block [386] Transaction index [1] TxId [ecb40373f63e23e46b95a9181b82bd667d88ffd3ec2ce3298f6584f6320babed] marked as invalid by committer. Reason code [EXPIRED_CHAINCODE] [34m2020-02-07 09:34:55.719 UTC [kvledger] CommitWithPvtData -> INFO 3f7[0m [public] Committed block [386] with 2 transaction(s) in 90ms (state_validation=6ms block_and_pvtdata_commit=63ms state_commit=7ms) commitHash=[04da119737eb4edc05196bf00299754f07df0b5f1601474c227140486f547b07] [34m2020-02-07 09:34:56.964 UTC [gossip.privdata] StoreBlock -> INFO 3f8[0m [public] Received block [387] from buffer [31m2020-02-07 09:34:56.964 UTC [committer.txvalidator] VSCCValidateTx -> ERRO 3f9[0m chaincode info:17260/public didn't match info:17280/public in lscc github.com/hyperledger/fabric/core/committer/txvalidator.(*VsccValidatorImpl).VSCCValidateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/vscc_validator.go:200 github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:345 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:1337 [31m2020-02-07 09:34:56.964 UTC [committer.txvalidator] validateTx -> ERRO 3fa[0m VSCCValidateTx for transaction txId = 2a686e6948e892c853e48972863bdd6c40c79189ec89099d80dfd69db9fe68ea returned error: chaincode info:17260/public didn't match info:17280/public in lscc [34m2020-02-07 09:34:56.964 UTC [committer.txvalidator] Validate -> INFO 3fb[0m [public] Validated block [387] in 0ms [33m2020-02-07 09:34:56.964 UTC [valimpl] preprocessProtoBlock -> WARN 3fc[0m Channel [public]: Block [387] Transaction index [0] TxId [2a686e6948e892c853e48972863bdd6c40c79189ec89099d80dfd69db9fe68ea] marked as invalid by committer. Reason code [EXPIRED_CHAINCODE] [34m2020-02-07 09:34:57.043 UTC [kvledger] CommitWithPvtData -> INFO 3fd[0m [public] Committed block [387] with 1 transaction(s) in 78ms (state_validation=0ms block_and_pvtdata_commit=46ms state_commit=16ms) commitHash=[e229a1c1b938ac6f9ee707f3ab7a6899f5dccb5cbc30443a18da54121fa56194] [34m2020-02-07 09:34:58.533 UTC [gossip.privdata] StoreBlock -> INFO 3fe[0m [public] Received block [388] from buffer [31m2020-02-07 09:34:58.534 UTC [committer.txvalidator] VSCCValidateTx -> ERRO 3ff[0m chaincode info:17260/public didn't match info:17280/public in lscc github.com/hyperledger/fabric/core/committer/txvalidator.(*VsccValidatorImpl).VSCCValidateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/vscc_validator.go:200 github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:345 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:1337 [31m2020-02-07 09:34:58.534 UTC [committer.txvalidator] validateTx -> ERRO 400[0m VSCCValidateTx for transaction txId = df6187ff4f6b822cd60f17a4cd5f04e27ac8ab1c86bbbf550409feff47912b43 returned error: chaincode info:17260/public didn't match info:17280/public in lscc [34m2020-02-07 09:34:58.534 UTC [committer.txvalidator] Validate -> INFO 401[0m [public] Validated block [388] in 0ms [33m2020-02-07 09:34:58.534 UTC [valimpl] preprocessProtoBlock -> WARN 402[0m Channel [public]: Block [388] Transaction index [1] TxId [df6187ff4f6b822cd60f17a4cd5f04e27ac8ab1c86bbbf550409feff47912b43] marked as invalid by committer. Reason code [EXPIRED_CHAINCODE]
This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy. Your privacy is important to us. Accenture uses your personal data only in compliance with data protection laws. For further information on how Accenture processes your personal data, please see our privacy statement at https://www.accenture.com/us-en/privacy-policy. ______________________________________________________________________________________ www.accenture.com |
|
Yacov
Is this a system chaincode or a regular
one?
From: "Eryargi, Hakan via Lists.Hyperledger.Org" <hakan.eryargi=accenture.com@...> To: "fabric@..." <fabric@...> Cc: fabric@... Date: 02/10/2020 02:16 PM Subject: [EXTERNAL] [Hyperledger Fabric] Transaction Validation Failure Sent by: fabric@... Hi, Are all transaction validation failures handled the same way and propagated back to client (Node.js SDK)? In particular I’m asking about EXPIRED_CHAINCODE failure. I’m investigating a weird issue where some transactions somehow disappear from the chain. Developers claim it is committed to chain and visible in the CouchDB but somehow later on disappear somehow. It’s not also visible in the key history. While checking the peer logs I’ve came across below failure. My understanding is, chaincode is upgraded to a new version in the time window between transaction proposal is endorsed and sent to peers for commitment. So peers rejected the transaction because it’s endorsed by an old version of chaincode. Weird thing is, there are no logs on the application side related to this validation failure. So may it be the case, this error is not propagated to the client application? Or is it an improper setting on our side for listening for such events? Thanks, Hakan [34m2020-02-0709:34:55.628UTC [gossip.privdata] StoreBlock -> INFO3f2[0m [public] Received block [386] from buffer [31m2020-02-0709:34:55.628UTC [committer.txvalidator] VSCCValidateTx -> ERRO 3f3[0m chaincode info:17260/publicdidn't match info:17280/publicin lscc github.com/hyperledger/fabric/core/committer/txvalidator.(*VsccValidatorImpl).VSCCValidateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/vscc_validator.go:200 github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:345 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:1337 [31m2020-02-0709:34:55.628UTC [committer.txvalidator] validateTx -> ERRO 3f4[0m VSCCValidateTx for transaction txId = ecb40373f63e23e46b95a9181b82bd667d88ffd3ec2ce3298f6584f6320babedreturned error:chaincode info:17260/publicdidn't match info:17280/publicin lscc [34m2020-02-0709:34:55.629UTC [committer.txvalidator] Validate -> INFO3f5[0m [public] Validated block [386] in 0ms [33m2020-02-0709:34:55.629UTC [valimpl] preprocessProtoBlock -> WARN3f6[0m Channel [public]: Block [386] Transaction index [1] TxId [ecb40373f63e23e46b95a9181b82bd667d88ffd3ec2ce3298f6584f6320babed] marked as invalid by committer. Reason code [EXPIRED_CHAINCODE] [34m2020-02-0709:34:55.719UTC [kvledger] CommitWithPvtData -> INFO3f7[0m [public] Committed block [386] with 2transaction(s) in 90ms (state_validation=6ms block_and_pvtdata_commit=63ms state_commit=7ms) commitHash=[04da119737eb4edc05196bf00299754f07df0b5f1601474c227140486f547b07] [34m2020-02-0709:34:56.964UTC [gossip.privdata] StoreBlock -> INFO3f8[0m [public] Received block [387] from buffer [31m2020-02-0709:34:56.964UTC [committer.txvalidator] VSCCValidateTx -> ERRO 3f9[0m chaincode info:17260/publicdidn't match info:17280/publicin lscc github.com/hyperledger/fabric/core/committer/txvalidator.(*VsccValidatorImpl).VSCCValidateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/vscc_validator.go:200 github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:345 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:1337 [31m2020-02-0709:34:56.964UTC [committer.txvalidator] validateTx -> ERRO 3fa[0m VSCCValidateTx for transaction txId = 2a686e6948e892c853e48972863bdd6c40c79189ec89099d80dfd69db9fe68eareturned error:chaincode info:17260/publicdidn't match info:17280/publicin lscc [34m2020-02-0709:34:56.964UTC [committer.txvalidator] Validate -> INFO3fb[0m [public] Validated block [387] in 0ms [33m2020-02-0709:34:56.964UTC [valimpl] preprocessProtoBlock -> WARN3fc[0m Channel [public]: Block [387] Transaction index [0] TxId [2a686e6948e892c853e48972863bdd6c40c79189ec89099d80dfd69db9fe68ea] marked as invalid by committer. Reason code [EXPIRED_CHAINCODE] [34m2020-02-0709:34:57.043UTC [kvledger] CommitWithPvtData -> INFO3fd[0m [public] Committed block [387] with 1transaction(s) in 78ms (state_validation=0ms block_and_pvtdata_commit=46ms state_commit=16ms) commitHash=[e229a1c1b938ac6f9ee707f3ab7a6899f5dccb5cbc30443a18da54121fa56194] [34m2020-02-0709:34:58.533UTC [gossip.privdata] StoreBlock -> INFO3fe[0m [public] Received block [388] from buffer [31m2020-02-0709:34:58.534UTC [committer.txvalidator] VSCCValidateTx -> ERRO 3ff[0m chaincode info:17260/publicdidn't match info:17280/publicin lscc github.com/hyperledger/fabric/core/committer/txvalidator.(*VsccValidatorImpl).VSCCValidateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/vscc_validator.go:200 github.com/hyperledger/fabric/core/committer/txvalidator.(*TxValidator).validateTx /opt/gopath/src/github.com/hyperledger/fabric/core/committer/txvalidator/validator.go:345 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:1337 [31m2020-02-0709:34:58.534UTC [committer.txvalidator] validateTx -> ERRO 400[0m VSCCValidateTx for transaction txId = df6187ff4f6b822cd60f17a4cd5f04e27ac8ab1c86bbbf550409feff47912b43returned error:chaincode info:17260/publicdidn't match info:17280/publicin lscc [34m2020-02-0709:34:58.534UTC [committer.txvalidator] Validate -> INFO401[0m [public] Validated block [388] in 0ms [33m2020-02-0709:34:58.534UTC [valimpl] preprocessProtoBlock -> WARN402[0m Channel [public]: Block [388] Transaction index [1] TxId [df6187ff4f6b822cd60f17a4cd5f04e27ac8ab1c86bbbf550409feff47912b43] marked as invalid by committer. Reason code [EXPIRED_CHAINCODE] This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy. Your privacy is important to us. Accenture uses your personal data only in compliance with data protection laws. For further information on how Accenture processes your personal data, please see our privacy statement at https://www.accenture.com/us-en/privacy-policy. ______________________________________________________________________________________ www.accenture.com |
|