Chaincode v2 API Spec

1. Upload

POST api/v1/chaincodeRepo

The front end will allow uploading a chaincode package, which is a .tar.gz format file.

Body Parameters

Type

Note

chaincode_packagestring

The base64-encoded contexts of the chaincode package, including the json metadata file:

{
    "Path":"<chaincode package path>",
    "Type":"golang",
    "Label":"testcc_v1.0"
}

description string (optional)

2. Perform chaincode operations → Install

POST api/v1/chaincode/installation 

Body Parameters

Type

Note

peer_uuidstring

Peer UUID

chaincode_package_uuidstringchaincode package file id in the backend uploaded data store.


3. Perform chaincode operations → Approve (may by several orgs), Commit

POST api/v1/chaincodeDefinitions/?operations=<approve/commit>

Query Parameters

Type

Note

operationsstringHLF lifecycle command that deploys, approves, and commits a chaincode with several organizations


Body Parameters

Type

Note

name

chaincode_labelstring(optional)The label that will be used to identify the installed chaincode package
package_id string(optional)The package id of the chaincode package that will be installed.
channel_idstring(optional)The channel on which this command should be executed.
versionstring (optional)the version of the chaincode definition to be approved
signature_policystring (optional)Use a policy inside the channel configuration as the chaincode endorsement policy.
peersstring array (optional)The array of the uuid of the peer nodes. For commit only
init_requiredbool flaga boolean flag to request the execution of the Init function to initialize the chaincode.


4. List chaincodes (Yuanmao Zhu will revise)

GET api/v1/chaincodes

Get a list of uploaded chaincodes

Response Body  

Type

Note

pathstringfrom metadata.json
typestringfrom metadata.json
labelstringThe label that will be used to identify the installed chaincode package.from metadata.json
package_idstring the package id of installed package. Calculated by label:SHA256(package), e.g., "testcc_1.0:1f060a1d05b057d98ed98ca8fd57e3a6542d8dfe383aeff64e289718ab851e2b"
descriptionstringa description of chaincode

5. Get a chaincode's information (Yuanmao Zhu will revise)

GET api/v1/chaincodes/<chaincode_name>

Get the full information of the chaincode

Response Body 

Type

Note

namestringThe name of the chaincode.
chaincode_labelstringThe label that will be used to identify the installed chaincode package
versionstring the version of the chaincode definition to be approved
package_idstring the package id of installed package
approve_statusstringthe approval status 
organizationsstring array A list of orgs that installed the chaincode.
channelsstring arrayThe committed channel names for the chaincode

6. Query an organization's approved chaincode definition on a channel

GET api/v1/approvedChaincodeDefinitions/<channel_name>/<org_name>

Response Body 

Type

Note

org_namestringThe name of the orgs
chaincode_namesstring arraryThe name of the approved chaincode by the org

Note: for FE to get the org approval status for a given chaincode, may have performance issues with lots of orgs.