In a Fabric environment, how should a user troubleshoot having their chaincode rejected by one or many members in the network?
If a user is struggling to successfully deploy and invoke chaincode in their Fabric environment, it is likely that they either haven't compiled the chaincode correctly or haven't correctly scoped their endorsement policy. Troubleshooting chaincode logic should be done by first running local unit tests, which can use samples found in the fabric-samples repo maintained by the Hyperledger community, and then promoting to the Kaleido environment and using the logs available in the console to troubleshoot from there. For errors due to endorsement scope, it is worth noting that channels in Kaleido default to requiring a 'majority' endorsement, which means that promotions will fail if >50% of peers do not approve the transaction. In order to get around this, users can programmatically update their channel to require approval from ANY of the peers to ensure successful chaincode promotions and transactions.
If a user is deploying chaincode written in go lang, it is extremely common that the error is resulting from not having included 'GOOS=linux' and 'GOARCH=amd64' in the compilation step. Make sure to include this as a first line of defense if coding in go lang and encountering a 'build' related error code.