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)
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)
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
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)
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