Ejemplo n.º 1
0
def step_impl(context, userName, certAlias, proposalAlias, channelName,
              ccSpecAlias):
    directory = bootstrap_util.getDirectory(context=context)
    user = directory.getUser(userName=userName)
    assert ccSpecAlias in user.tags, "ChaincodeSpec alias '{0}' not found for user '{1}'".format(
        ccSpecAlias, userName)
    ccSpec = user.tags[ccSpecAlias]

    ccDeploymentSpec = endorser_util.createDeploymentSpec(context=context,
                                                          ccSpec=ccSpec)
    ccDeploymentSpec.code_package = ""
    lcChaincodeSpec = endorser_util.createDeploymentChaincodeSpecForBDD(
        ccDeploymentSpec=ccDeploymentSpec, chainID=str(channelName))
    # Find the cert using the cert tuple information saved for the user under certAlias
    nodeAdminTuple = user.tags[certAlias]
    signersCert = directory.findCertForNodeAdminTuple(nodeAdminTuple)
    mspID = nodeAdminTuple.organization

    proposal = endorser_util.createInvokeProposalForBDD(
        context,
        ccSpec=lcChaincodeSpec,
        chainID=channelName,
        signersCert=signersCert,
        Mspid=mspID,
        type="ENDORSER_TRANSACTION")

    signedProposal = endorser_util.signProposal(proposal=proposal,
                                                entity=user,
                                                signersCert=signersCert)

    # proposal = endorser_util.createDeploymentProposalForBDD(ccDeploymentSpec)
    assert not proposalAlias in user.tags, "Proposal alias '{0}' already exists for '{1}'".format(
        proposalAlias, userName)
    user.setTagValue(proposalAlias, signedProposal)
Ejemplo n.º 2
0
def step_impl(context, userName, certAlias, genisisBlockName,
              joinChannelResult):
    timeout = 10
    directory = bootstrap_util.getDirectory(context)
    user = directory.getUser(userName)
    # Find the cert using the cert tuple information saved for the user under certAlias
    signersCert = directory.findCertForNodeAdminTuple(user.tags[certAlias])

    # Retrieve the genesis block from the returned value of deliver (Will be list with first block as genesis block)
    genesisBlock = user.tags[genisisBlockName][0]
    ccSpec = endorser_util.getChaincodeSpec(
        "GOLANG", "", "cscc",
        ["JoinChain", genesisBlock.SerializeToString()])
    proposal = endorser_util.createInvokeProposalForBDD(
        context,
        ccSpec=ccSpec,
        chainID="",
        signersCert=signersCert,
        Mspid=user.tags[certAlias].organization,
        type="CONFIG")
    signedProposal = endorser_util.signProposal(proposal=proposal,
                                                entity=user,
                                                signersCert=signersCert)

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = [row['Peer'] for row in context.table.rows]
    proposalResponseFutures = [
        endorserStub.ProcessProposal.future(signedProposal, int(timeout))
        for endorserStub in endorser_util.getEndorserStubs(context, endorsers)
    ]
    resultsDict = dict(
        zip(endorsers,
            [respFuture.result() for respFuture in proposalResponseFutures]))
    user.setTagValue(joinChannelResult, resultsDict)
Ejemplo n.º 3
0
def step_impl(context, userName, genisisBlockName, composeService,
              joinChannelResult):
    timeout = 10
    directory = bootstrap_util.getDirectory(context)
    user = directory.getUser(userName)
    # Collect the cert tuple information
    row = context.table.rows[0]
    signersCert = directory.findCertByTuple(row['Developer'],
                                            row['ChainCreationPolicyName'],
                                            row['Organization'])

    # Retrieve the genesis block from the returned value of deliver (Will be list with first block as genesis block)
    genesisBlock = user.tags[genisisBlockName][0]
    ccSpec = endorser_util.getChaincodeSpec(
        "GOLANG", "", "cscc",
        ["JoinChain", genesisBlock.SerializeToString()])
    proposal = endorser_util.createInvokeProposalForBDD(
        ccSpec=ccSpec, chainID="", signersCert=signersCert, Mspid="DEFAULT")
    signedProposal = endorser_util.signProposal(proposal=proposal,
                                                entity=user,
                                                signersCert=signersCert)

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = [composeService]
    proposalResponseFutures = [
        endorserStub.ProcessProposal.future(signedProposal, int(timeout))
        for endorserStub in endorser_util.getEndorserStubs(context, endorsers)
    ]
    resultsDict = dict(
        zip(endorsers,
            [respFuture.result() for respFuture in proposalResponseFutures]))
    user.tags[joinChannelResult] = resultsDict
Ejemplo n.º 4
0
def step_impl(context, userName, certAlias, proposalAlias, channelName, ccSpecAlias):
    directory = bootstrap_util.getDirectory(context=context)
    user = directory.getUser(userName=userName)
    assert ccSpecAlias in user.tags, "ChaincodeSpec alias '{0}' not found for user '{1}'".format(ccSpecAlias, userName)
    lcChaincodeSpec = user.tags[ccSpecAlias]
    # Find the cert using the cert tuple information saved for the user under certAlias
    nodeAdminTuple = user.tags[certAlias]
    signersCert = directory.findCertForNodeAdminTuple(nodeAdminTuple)
    mspID = nodeAdminTuple.organization

    proposal = endorser_util.createInvokeProposalForBDD(context, ccSpec=lcChaincodeSpec, chainID=channelName,signersCert=signersCert, Mspid=mspID, type="ENDORSER_TRANSACTION")

    signedProposal = endorser_util.signProposal(proposal=proposal, entity=user, signersCert=signersCert)

    # proposal = endorser_util.createDeploymentProposalForBDD(ccDeploymentSpec)
    assert not proposalAlias in user.tags, "Proposal alias '{0}' already exists for '{1}'".format(proposalAlias, userName)
    user.setTagValue(proposalAlias, signedProposal)
Ejemplo n.º 5
0
def step_impl(context, userName, certAlias, genisisBlockName, joinChannelResult):
    timeout = 10
    directory = bootstrap_util.getDirectory(context)
    user = directory.getUser(userName)
    # Find the cert using the cert tuple information saved for the user under certAlias
    signersCert = directory.findCertForNodeAdminTuple(user.tags[certAlias])

    # Retrieve the genesis block from the returned value of deliver (Will be list with first block as genesis block)
    genesisBlock = user.tags[genisisBlockName][0]
    ccSpec = endorser_util.getChaincodeSpec("GOLANG", "", "cscc", ["JoinChain", genesisBlock.SerializeToString()])
    proposal = endorser_util.createInvokeProposalForBDD(ccSpec=ccSpec, chainID="",signersCert=signersCert, Mspid="DEFAULT", type="CONFIGURATION_TRANSACTION")
    signedProposal = endorser_util.signProposal(proposal=proposal, entity=user, signersCert=signersCert)

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = [row['Peer'] for row in context.table.rows]
    proposalResponseFutures = [endorserStub.ProcessProposal.future(signedProposal, int(timeout)) for endorserStub in endorser_util.getEndorserStubs(context, endorsers)]
    resultsDict =  dict(zip(endorsers, [respFuture.result() for respFuture in proposalResponseFutures]))
    user.tags[joinChannelResult] = resultsDict