简体   繁体   中英

hyperledger fabric - How to remove a chaincode on peer?

I installed two chaincode on a peer:

☁  basic-network [master] ⚡  ../../bin/peer chaincode list --installed
2018-06-25 10:37:44.825 CST [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-06-25 10:37:44.825 CST [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-06-25 10:37:44.825 CST [msp/identity] Sign -> DEBU 003 Sign: plaintext: 0A9C070A5C08031A0C08F8AAC1D90510...74616C6C6564636861696E636F646573
2018-06-25 10:37:44.825 CST [msp/identity] Sign -> DEBU 004 Sign: digest: 3F5F76846525A16930FC348CB24BC6D7C989EAF9D23E090D339C5D0B65E09D0E
Get installed chaincodes on peer:
Name: r_test_cc6, Version: 1.0, Path: chaincode_example02/go, Id: c7d2878644787e34a25b1e4e46703c7da301a830b68eba8e71ba7cadd2fbd480
Name: r_test_cc6, Version: 1.1, Path: github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02/go, Id: 42583a192be4d33bc2ddc85b3e061971667533019d431729bbac80f8844a00fe
2018-06-25 10:37:44.828 CST [main] main -> INFO 005 Exiting.....

I want to remove or delete the chaincode on a peer. How can I do this?

To remove a chaincode on a peer you need to:

  • Kill the container that corresponds to the chaincode shim since a chaincode runs inside a docker container .

  • Delete the chaincode from the file system of the peer under /var/hyperledger/production/chaincodes

1) You can upgrade your chaincode and hit request to new chaincode.

adding to @yacovm 's answer -

2) You also need to delete docker image of the chaincode created :

docker images

docker rmi $(docker images chaincode_name -q)

If you want to remove multiple images as once ( assuming your chaincode image name starts with "cc_") try :

docker rmi $(docker images cc_* -q)

The other way of deleting the docker images in Linux

  1. To delete all images

docker rmi -f $(docker images -a -q)

  1. To delete all containers including its volumes use,

docker rm -vf $(docker ps -a -q)

Note -f: This command force-removes a running container.

Remember, you should remove all the containers before removing all the images from which those containers were created.

You can remove the image.

docker image list (find the image ID eg Image ID 3baa6abf8ac8)

docker image rm -f 3baa6abf8ac8

For Fabric 2.x

  1. Kill the chaincode container
  2. Delete the chaincode from the file system of the peer under /var/hyperledger/production/lifecycle/chaincodes
  3. Restart your peer container.

PS. After restarting the peer container all your chaincode containers will be restarted wait till all the containers are up.

Fabric 2.x - CCAAS

The following is applicable to CC deployed as external service (CCAAS) .

  1. Spawn a shell on the peer(s) pod(or container). eg kubectl exec -it peer0-org1-some-alphanumerics sh -n the-namespace
  2. check your installed chaincodes: ls /var/hyperledger/production/lifecycle/chaincodes/ .
  3. delete the cc you don't want: rm /var/hyperledger/production/lifecycle/chaincodes/someunwantedcc-with-alphanumerics.tat.gz
  4. restart the pod(container).

Note: There is also a copy of the cc tgz under the /var/hyperledger/production/externalbuilder/builds/ folder which doesn't seem to block the process.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM