chaincode

package
v1.0.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2017 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DevModeUserRunsChaincode property allows user to run chaincode in development environment
	DevModeUserRunsChaincode string = "dev"

	//TXSimulatorKey is used to attach ledger simulation context
	TXSimulatorKey key = "txsimulatorkey"

	//HistoryQueryExecutorKey is used to attach ledger history query executor context
	HistoryQueryExecutorKey key = "historyqueryexecutorkey"
)

Variables

This section is empty.

Functions

func Execute added in v1.0.0

func Execute(ctxt context.Context, cccid *ccprovider.CCContext, spec interface{}) (*pb.Response, *pb.ChaincodeEvent, error)

Execute - execute proposal, return original response of chaincode

func ExecuteChaincode added in v1.0.0

func ExecuteChaincode(ctxt context.Context, cccid *ccprovider.CCContext, args [][]byte) (*pb.Response, *pb.ChaincodeEvent, error)

ExecuteChaincode executes a given chaincode given chaincode name and arguments

func ExecuteWithErrorFilter added in v1.0.0

func ExecuteWithErrorFilter(ctxt context.Context, cccid *ccprovider.CCContext, spec interface{}) ([]byte, *pb.ChaincodeEvent, error)

ExecuteWithErrorFilter is similar to Execute, but filters error contained in chaincode response and returns Payload of response only. Mostly used by unit-test.

func GetCDSFromLSCC added in v1.0.0

func GetCDSFromLSCC(ctxt context.Context, txid string, signedProp *pb.SignedProposal, prop *pb.Proposal, chainID string, chaincodeID string) ([]byte, error)

GetCDSFromLSCC gets chaincode deployment spec from LSCC

func GetChaincodeDataFromLSCC added in v1.0.0

func GetChaincodeDataFromLSCC(ctxt context.Context, txid string, signedProp *pb.SignedProposal, prop *pb.Proposal, chainID string, chaincodeID string) (*ccprovider.ChaincodeData, error)

GetChaincodeDataFromLSCC gets chaincode data from LSCC given name

func HandleChaincodeStream added in v1.0.0

func HandleChaincodeStream(chaincodeSupport *ChaincodeSupport, ctxt context.Context, stream ccintf.ChaincodeStream) error

HandleChaincodeStream Main loop for handling the associated Chaincode stream

func IsDevMode

func IsDevMode() bool

IsDevMode returns true if the peer was configured with development-mode enabled

Types

type ChaincodeSupport

type ChaincodeSupport struct {
	// contains filtered or unexported fields
}

ChaincodeSupport responsible for providing interfacing with chaincodes from the Peer.

func GetChain added in v1.0.0

func GetChain() *ChaincodeSupport

GetChain returns the chaincode framework support object

func NewChaincodeSupport added in v1.0.0

func NewChaincodeSupport(getCCEndpoint func() (*pb.PeerEndpoint, error), userrunsCC bool, ccstartuptimeout time.Duration) *ChaincodeSupport

NewChaincodeSupport creates a new ChaincodeSupport instance

func (*ChaincodeSupport) Execute

func (chaincodeSupport *ChaincodeSupport) Execute(ctxt context.Context, cccid *ccprovider.CCContext, msg *pb.ChaincodeMessage, timeout time.Duration) (*pb.ChaincodeMessage, error)

Execute executes a transaction and waits for it to complete until a timeout value.

func (*ChaincodeSupport) HandleChaincodeStream

func (chaincodeSupport *ChaincodeSupport) HandleChaincodeStream(ctxt context.Context, stream ccintf.ChaincodeStream) error

HandleChaincodeStream implements ccintf.HandleChaincodeStream for all vms to call with appropriate stream

func (*ChaincodeSupport) Launch

func (chaincodeSupport *ChaincodeSupport) Launch(context context.Context, cccid *ccprovider.CCContext, spec interface{}) (*pb.ChaincodeID, *pb.ChaincodeInput, error)

Launch will launch the chaincode if not running (if running return nil) and will wait for handler of the chaincode to get into FSM ready state.

func (*ChaincodeSupport) Register

func (chaincodeSupport *ChaincodeSupport) Register(stream pb.ChaincodeSupport_RegisterServer) error

Register the bidi stream entry point called by chaincode to register with the Peer.

func (*ChaincodeSupport) Stop added in v1.0.0

func (chaincodeSupport *ChaincodeSupport) Stop(context context.Context, cccid *ccprovider.CCContext, cds *pb.ChaincodeDeploymentSpec) error

Stop stops a chaincode if running

type DuplicateChaincodeHandlerError added in v1.0.0

type DuplicateChaincodeHandlerError struct {
	ChaincodeID *pb.ChaincodeID
}

DuplicateChaincodeHandlerError returned if attempt to register same chaincodeID while a stream already exists.

func (*DuplicateChaincodeHandlerError) Error added in v1.0.0

type Handler

type Handler struct {
	sync.RWMutex

	ChatStream  ccintf.ChaincodeStream
	FSM         *fsm.FSM
	ChaincodeID *pb.ChaincodeID
	// contains filtered or unexported fields
}

Handler responsible for management of Peer's side of chaincode stream

func (*Handler) HandleMessage added in v1.0.0

func (handler *Handler) HandleMessage(msg *pb.ChaincodeMessage) error

HandleMessage implementation of MessageHandler interface. Peer's handling of Chaincode messages.

type MessageHandler

type MessageHandler interface {
	HandleMessage(msg *pb.ChaincodeMessage) error
	SendMessage(msg *pb.ChaincodeMessage) error
}

MessageHandler interface for handling chaincode messages (common between Peer chaincode support and chaincode)

Directories

Path Synopsis
car
Package shim provides APIs for the chaincode to access its state variables, transaction context and call other chaincodes.
Package shim provides APIs for the chaincode to access its state variables, transaction context and call other chaincodes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL