Ejemplo n.º 1
0
def getChaincodeSpec(ccType, path, args):
    # make chaincode spec for chaincode to be deployed
    ccSpec = chaincode_pb2.ChaincodeSpec(
        type=ccType,
        chaincodeID=chaincode_pb2.ChaincodeID(path=path),
        ctorMsg=chaincode_pb2.ChaincodeInput(args=args))
    return ccSpec
Ejemplo n.º 2
0
def deployChaincode(context, enrollId, chaincodePath, ccAlias, ctor):
    '''Deploy a chaincode with the specified alias for the specfied enrollId'''
    (channel, userRegistration) = getGRPCChannelAndUser(context, enrollId)
    stub = devops_pb2.beta_create_Devops_stub(channel)

    # Make sure deployment alias does NOT already exist
    assert getDeployment(
        context,
        ccAlias) == None, "Deployment alias already exists: '{0}'.".format(
            ccAlias)

    args = getArgsFromContextForUser(context, enrollId)
    ccSpec = chaincode_pb2.ChaincodeSpec(
        type=chaincode_pb2.ChaincodeSpec.GOLANG,
        chaincodeID=chaincode_pb2.ChaincodeID(name="", path=chaincodePath),
        ctorMsg=chaincode_pb2.ChaincodeInput(function=ctor, args=args))
    ccSpec.secureContext = userRegistration.getUserName()
    if 'metadata' in context:
        ccSpec.metadata = context.metadata
    try:
        ccDeploymentSpec = stub.Deploy(ccSpec, 60)
        ccSpec.chaincodeID.name = ccDeploymentSpec.chaincodeSpec.chaincodeID.name
        context.grpcChaincodeSpec = ccSpec
        context.deployments[ccAlias] = ccSpec
    except:
        del stub
        raise
Ejemplo n.º 3
0
def createDeploymentProposalForBDD(ccDeploymentSpec):
    "Returns a deployment proposal of chaincode type"
    lc_chaincode_spec = chaincode_pb2.ChaincodeSpec(
        type=chaincode_pb2.ChaincodeSpec.GOLANG,
        chaincodeID=chaincode_pb2.ChaincodeID(name="lccc"),
        ctorMsg=chaincode_pb2.ChaincodeInput(
            args=['deploy', 'default',
                  ccDeploymentSpec.SerializeToString()]))
    lc_chaincode_invocation_spec = chaincode_pb2.ChaincodeInvocationSpec(
        chaincodeSpec=lc_chaincode_spec)
    # make proposal
    proposal = fabric_next_pb2.Proposal(
        type=fabric_next_pb2.Proposal.CHAINCODE, id=createPropsalId())
    proposal.payload = lc_chaincode_invocation_spec.SerializeToString()
    return proposal