Hi Jim.. excelent video. A question I couldn't fi d the answer. When I install a chaincode as a service, I can change the code live. Is there a way to avoid this?. I mean, if I install it, even "as a service", I protect the node chaincode to be updated without all members kwnow it?
thanks for your comment! It is indeed the case that when a chaincode is deployed in the "chaincode-as-a-service" style, there is no guarantee that the logic executing in the external chaincode service will be immutable. But that's not an issue with the Fabric transaction model design. Unlike other protocols like Ethereum, which requires smart contracts to be immutable so as to guarantee determinism, Fabric's "execute-order-commit" design does not depend on smart contracts to be uniform across all nodes. As a result, chaincode administrators in each organization are free to deploy their own implementations. They are expected to produce the same result from the same starting state and the same input, but if they don't, it's not the end of the world like in other protocols. For the same reason, a chaincode administrator is free to update their chaincode service independent of the others in the channel. If you are interested in learning more about the differences in DLT protocol designs, here's a blog on our website: www.kaleido.io/blockchain-blog/enterprise-blockchain-protocols-a-technical-analysis-of-ethereum-vs-fabric-vs-corda
thanks for your comment! To develop a chaincode, you need the shim library that can communicate with the peer node. Unfortunately the shim is only available in golang, node.js and Java at this point.
Hey Rakesh, assuming you're asking about transientMap support in FabConnect what you'll want to do is: add a “transientMap” property in the transaction payload, peer to the other standard properties like “func”, and “args”. The “transientMap” is a *map[string]string* property. If you have any questions about that, feel free to reach out to support@kaleido.io or on the Kaleido discord at discord.gg/26B5rgWuxA
Hi Jim.. excelent video. A question I couldn't fi d the answer. When I install a chaincode as a service, I can change the code live. Is there a way to avoid this?. I mean, if I install it, even "as a service", I protect the node chaincode to be updated without all members kwnow it?
thanks for your comment! It is indeed the case that when a chaincode is deployed in the "chaincode-as-a-service" style, there is no guarantee that the logic executing in the external chaincode service will be immutable.
But that's not an issue with the Fabric transaction model design. Unlike other protocols like Ethereum, which requires smart contracts to be immutable so as to guarantee determinism, Fabric's "execute-order-commit" design does not depend on smart contracts to be uniform across all nodes. As a result, chaincode administrators in each organization are free to deploy their own implementations. They are expected to produce the same result from the same starting state and the same input, but if they don't, it's not the end of the world like in other protocols. For the same reason, a chaincode administrator is free to update their chaincode service independent of the others in the channel.
If you are interested in learning more about the differences in DLT protocol designs, here's a blog on our website: www.kaleido.io/blockchain-blog/enterprise-blockchain-protocols-a-technical-analysis-of-ethereum-vs-fabric-vs-corda
Is it possible to use PHP to design a chaincode? If yes... Can an example be provided please
thanks for your comment! To develop a chaincode, you need the shim library that can communicate with the peer node. Unfortunately the shim is only available in golang, node.js and Java at this point.
how to send using transientMap for private data collection . In swagger API also i cant find anything. can you pls help me.
Hey Rakesh, assuming you're asking about transientMap support in FabConnect what you'll want to do is: add a “transientMap” property in the transaction payload, peer to the other standard properties like “func”, and “args”. The “transientMap” is a *map[string]string* property.
If you have any questions about that, feel free to reach out to support@kaleido.io or on the Kaleido discord at discord.gg/26B5rgWuxA
Hey ! can you provide your email ? or linkedin ?
www.linkedin.com/company/kaleido-io/