Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ListShadowCCs ¶
func ListShadowCCs()
ListShadowCCs lists all registered shadow ccs in the library
func RegisterCCClients ¶
RegisterCCClients registers and maps chaincode clients to their shadows
Types ¶
type CCClient ¶
type CCClient struct {
//-------------config properties ------------
//Name of the chaincode
Name string
//InitArgs used for deploying the chaincode
InitArgs []string
//Path to the chaincode
Path string
//NumFinalQueryAttempts number of times to try final query before giving up
NumFinalQueryAttempts int
//NumberOfInvokes number of iterations to do invoke on
NumberOfInvokes int
//DelayBetweenInvokeMs delay between each invoke
DelayBetweenInvokeMs int
//DelayBetweenQueryMs delay between each query
DelayBetweenQueryMs int
//TimeoutToAbortSecs timeout for aborting this chaincode processing
TimeoutToAbortSecs int
//Lang of chaincode
Lang string
//WaitAfterInvokeMs wait time before validating invokes for this chaincode
WaitAfterInvokeMs int
//Concurrency number of goroutines to spin
Concurrency int
//-------------runtime properties ------------
//Unique number assigned to this CC by CCChecker
ID int
// contains filtered or unexported fields
}
CCClient chaincode properties, config and runtime
func (*CCClient) Run ¶
func (cc *CCClient) Run(ctxt context.Context, chainID string, bc common.BroadcastClient, ec pb.EndorserClient, signer msp.SigningIdentity, wg *sync.WaitGroup) error
Run test over given number of iterations
i will be unique across chaincodes and can be used as a key this is useful if chaincode occurs multiple times in the array of chaincodes
func (*CCClient) Validate ¶
func (cc *CCClient) Validate(ctxt context.Context, chainID string, bc common.BroadcastClient, ec pb.EndorserClient, signer msp.SigningIdentity, wg *sync.WaitGroup) error
Validate test that was Run. Each successful iteration in the run is validated against
type ShadowCCIntf ¶
type ShadowCCIntf interface {
//InitShadowCC initializes the shadow chaincode (will be called once for each chaincode)
InitShadowCC(initArgs []string)
//GetInvokeArgs gets invoke arguments from shadow
GetInvokeArgs(ccnum int, iter int) [][]byte
//PostInvoke passes the retvalue from the invoke to the shadow for post-processing
PostInvoke(args [][]byte, retval []byte) error
//GetQueryArgs mimics the Invoke and gets the query for an invoke
GetQueryArgs(ccnum int, iter int) [][]byte
//Validate the results against the query arguments
Validate(args [][]byte, value []byte) error
//GetNumQueries returns number of queries to perform
GetNumQueries(numSuccessfulInvokes int) int
//OverrideNumInvokes overrides the users number of invoke request
OverrideNumInvokes(numInvokesPlanned int) int
}
ShadowCCIntf interfaces to be implemented by shadow chaincodes
Click to show internal directories.
Click to hide internal directories.