4

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?

3cheesewheel
  • 9,133
  • 9
  • 39
  • 59
Seetharaman GR
  • 272
  • 1
  • 13

2 Answers2

10

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.

christo4ferris
  • 4,039
  • 1
  • 17
  • 30
1

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.

yacovm
  • 5,120
  • 1
  • 11
  • 21