Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CCCacheSupport ¶
type CCContext ¶
type CCContext struct { // Name chaincode name Name string // Version used to construct the chaincode image and register Version string }
CCContext pass this around instead of string of args
type CCInfoFSImpl ¶
type CCInfoFSImpl struct{}
CCInfoFSImpl provides the implementation for CC on the FS and the access to it It implements CCCacheSupport
type CCPackage ¶
type CCPackage interface { //InitFromBuffer initialize the package from bytes InitFromBuffer(buf []byte) (*ChaincodeData, error) // InitFromFS gets the chaincode from the filesystem (includes the raw bytes too) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error) // PutChaincodeToFS writes the chaincode to the filesystem PutChaincodeToFS() error // GetDepSpec gets the ChaincodeDeploymentSpec from the package GetDepSpec() *pb.ChaincodeDeploymentSpec // GetDepSpecBytes gets the serialized ChaincodeDeploymentSpec from the package GetDepSpecBytes() []byte // ValidateCC validates and returns the chaincode deployment spec corresponding to // ChaincodeData. The validation is based on the metadata from ChaincodeData // One use of this method is to validate the chaincode before launching ValidateCC(ccdata *ChaincodeData) error // GetPackageObject gets the object as a proto.Message GetPackageObject() proto.Message // GetChaincodeData gets the ChaincodeData GetChaincodeData() *ChaincodeData // GetId gets the fingerprint of the chaincode based on package computation GetId() []byte }
CCPackage encapsulates a chaincode package which can be
raw ChaincodeDeploymentSpec SignedChaincodeDeploymentSpec
Attempt to keep the interface at a level with minimal interface for possible generalization.
type CDSData ¶
type CDSData struct { //CodeHash hash of CodePackage from ChaincodeDeploymentSpec CodeHash []byte `protobuf:"bytes,1,opt,name=codehash,proto3"` //MetaDataHash hash of Name and Version from ChaincodeDeploymentSpec MetaDataHash []byte `protobuf:"bytes,2,opt,name=metadatahash,proto3"` }
CDSData is data stored in the LSCC on instantiation of a CC for CDSPackage. This needs to be serialized for ChaincodeData hence the protobuf format
func (*CDSData) ProtoMessage ¶
func (*CDSData) ProtoMessage()
ProtoMessage just exists to make proto happy
type CDSPackage ¶
type CDSPackage struct {
// contains filtered or unexported fields
}
CDSPackage encapsulates ChaincodeDeploymentSpec.
type ChaincodeContainerInfo ¶
type ChaincodeContainerInfo struct { Name string Version string Path string Type string CodePackage []byte // ContainerType is not a great name, but 'DOCKER' and 'SYSTEM' are the valid types ContainerType string }
ChaincodeContainerInfo is yet another synonym for the data required to start/stop a chaincode.
type ChaincodeData ¶
type ChaincodeData struct { // Name of the chaincode Name string `protobuf:"bytes,1,opt,name=name"` // Version of the chaincode Version string `protobuf:"bytes,2,opt,name=version"` // Escc for the chaincode instance Escc string `protobuf:"bytes,3,opt,name=escc"` // Vscc for the chaincode instance Vscc string `protobuf:"bytes,4,opt,name=vscc"` // Policy endorsement policy for the chaincode instance Policy []byte `protobuf:"bytes,5,opt,name=policy,proto3"` // Data data specific to the package Data []byte `protobuf:"bytes,6,opt,name=data,proto3"` // Id of the chaincode that's the unique fingerprint for the CC This is not // currently used anywhere but serves as a good eyecatcher Id []byte `protobuf:"bytes,7,opt,name=id,proto3"` // InstantiationPolicy for the chaincode InstantiationPolicy []byte `protobuf:"bytes,8,opt,name=instantiation_policy,proto3"` }
ChaincodeData defines the datastructure for chaincodes to be serialized by proto Type provides an additional check by directing to use a specific package after instantiation Data is Type specifc (see CDSPackage and SignedCDSPackage)
func (*ChaincodeData) ProtoMessage ¶
func (*ChaincodeData) ProtoMessage()
ProtoMessage just exists to make proto happy
type ChaincodeDefinition ¶
type ChaincodeDefinition interface { // CCName returns the name of this chaincode (the name it was put in the ChaincodeRegistry with). CCName() string // Hash returns the hash of the chaincode. Hash() []byte // CCVersion returns the version of the chaincode. CCVersion() string // Validation returns how to validate transactions for this chaincode. // The string returned is the name of the validation method (usually 'vscc') // and the bytes returned are the argument to the validation (in the case of // 'vscc', this is a marshaled pb.VSCCArgs message). Validation() (string, []byte) // Endorsement returns how to endorse proposals for this chaincode. // The string returns is the name of the endorsement method (usually 'escc'). Endorsement() string }
-------- ChaincodeDefinition - interface for ChaincodeData ------ ChaincodeDefinition describes all of the necessary information for a peer to decide whether to endorse a proposal and whether to validate a transaction, for a particular chaincode.
type ChaincodeExtractor ¶
ChaincodeExtractor extracts chaincode from a given path
type ChaincodeProvider ¶
type ChaincodeProvider interface { // Execute executes a standard chaincode invocation for a chaincode and an input Execute(txParams *TransactionParams, cccid *CCContext, input *pb.ChaincodeInput) (*pb.Response, *pb.ChaincodeEvent, error) // ExecuteLegacyInit is a special case for executing chaincode deployment specs, // which are not already in the LSCC, needed for old lifecycle ExecuteLegacyInit(txParams *TransactionParams, cccid *CCContext, spec *pb.ChaincodeDeploymentSpec) (*pb.Response, *pb.ChaincodeEvent, error) // Stop stops the chaincode give Stop(ccci *ChaincodeContainerInfo) error }
ChaincodeProvider provides an abstraction layer that is used for different packages to interact with code in the chaincode package without importing it; more methods should be added below if necessary
type DirEnumerator ¶
DirEnumerator enumerates directories
type TransactionParams ¶
type TransactionParams struct { TxID string ChannelID string SignedProp *pb.SignedProposal Proposal *pb.Proposal TXSimulator ledger.TxSimulator HistoryQueryExecutor ledger.HistoryQueryExecutor CollectionStore privdata.CollectionStore IsInitTransaction bool // this is additional data passed to the chaincode ProposalDecorations map[string][]byte }
TransactionParams are parameters which are tied to a particular transaction and which are required for invoking chaincode.