Chaincode is already installed in the peer file system. Why does instantiating chaincode start the chaincode container? What is the purpose of the chaincode container?
2 Answers
The purpose of the chaincode container is to ensure isolation of the smart contract's execution from the peer itself, so that a smart contract (chaincode) cannot crash or even access the peer because of an error or malicious code. When you instantiate a chaincode, the peer populates a container image with the chaincode and invokes the Docker management API to deploy that image. If the container isn't running, it will start a new one. Once running, all transactions and proposals received by the peer will be transmitted to that container for execution.

- 4,039
- 1
- 17
- 30
The chaincode container runs the smart contract logic. When you instantiate a chaincode, the Init method is simulated and returned to the client for sending to the orderer for creation of a new transaction (init transaction, that binds the chaincode to the channel). That's why the container starts up, if it hasn't been running before.

- 5,120
- 1
- 11
- 21