...

Package ccprovider

import "github.com/hyperledger/fabric/core/common/ccprovider"
Overview
Index

Overview ▾

Index ▾

func ChaincodePackageExists(ccname string, ccversion string) (bool, error)
func CheckInstantiationPolicy(name, version string, cdLedger *ChaincodeData) error
func ExtractFileEntries(tarBytes []byte, databaseType string) (map[string][]*TarFileEntry, error)
func ExtractStatedbArtifactsForChaincode(ccname, ccversion string, pr *platforms.Registry) (installed bool, statedbArtifactsTar []byte, err error)
func ExtractStatedbArtifactsFromCCPackage(ccpackage CCPackage, pr *platforms.Registry) (statedbArtifactsTar []byte, err error)
func GetChaincodeInstallPathFromViper() string
func GetChaincodePackage(ccname string, ccversion string) ([]byte, error)
func GetChaincodePackageFromPath(ccname string, ccversion string, ccInstallPath string) ([]byte, error)
func GetInstalledChaincodes() (*pb.ChaincodeQueryResponse, error)
func IsChaincodeDeployed(chainid, ccName, ccVersion string, ccHash []byte, sccp sysccprovider.SystemChaincodeProvider) (bool, error)
func NewCCInfoCache(cs CCCacheSupport) *ccInfoCacheImpl
func PutChaincodeIntoFS(depSpec *pb.ChaincodeDeploymentSpec) error
func SetChaincodesPath(path string)
type CCCacheSupport
type CCContext
    func (cccid *CCContext) GetCanonicalName() string
type CCInfoFSImpl
    func (cifs *CCInfoFSImpl) GetChaincode(ccname string, ccversion string) (CCPackage, error)
    func (cifs *CCInfoFSImpl) GetChaincodeCodePackage(ccname, ccversion string) ([]byte, error)
    func (*CCInfoFSImpl) GetChaincodeFromPath(ccname string, ccversion string, path string) (CCPackage, error)
    func (cifs *CCInfoFSImpl) ListInstalledChaincodes(dir string, ls DirEnumerator, ccFromPath ChaincodeExtractor) ([]chaincode.InstalledChaincode, error)
    func (*CCInfoFSImpl) PutChaincode(depSpec *pb.ChaincodeDeploymentSpec) (CCPackage, error)
type CCPackage
    func GetCCPackage(buf []byte) (CCPackage, error)
    func GetChaincodeFromFS(ccname string, ccversion string) (CCPackage, error)
    func LoadPackage(ccname string, ccversion string, path string) (CCPackage, error)
type CDSData
    func (data *CDSData) Equals(other *CDSData) bool
    func (*CDSData) ProtoMessage()
    func (data *CDSData) Reset()
    func (data *CDSData) String() string
type CDSPackage
    func (ccpack *CDSPackage) GetChaincodeData() *ChaincodeData
    func (ccpack *CDSPackage) GetDepSpec() *pb.ChaincodeDeploymentSpec
    func (ccpack *CDSPackage) GetDepSpecBytes() []byte
    func (ccpack *CDSPackage) GetId() []byte
    func (ccpack *CDSPackage) GetPackageObject() proto.Message
    func (ccpack *CDSPackage) InitFromBuffer(buf []byte) (*ChaincodeData, error)
    func (ccpack *CDSPackage) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
    func (ccpack *CDSPackage) InitFromPath(ccname string, ccversion string, path string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
    func (ccpack *CDSPackage) PutChaincodeToFS() error
    func (ccpack *CDSPackage) ValidateCC(ccdata *ChaincodeData) error
type ChaincodeContainerInfo
    func DeploymentSpecToChaincodeContainerInfo(cds *pb.ChaincodeDeploymentSpec) *ChaincodeContainerInfo
type ChaincodeData
    func GetChaincodeData(ccname string, ccversion string) (*ChaincodeData, error)
    func (cd *ChaincodeData) CCName() string
    func (cd *ChaincodeData) CCVersion() string
    func (cd *ChaincodeData) Endorsement() string
    func (cd *ChaincodeData) Hash() []byte
    func (*ChaincodeData) ProtoMessage()
    func (cd *ChaincodeData) Reset()
    func (cd *ChaincodeData) String() string
    func (cd *ChaincodeData) Validation() (string, []byte)
type ChaincodeDefinition
type ChaincodeExtractor
type ChaincodeProvider
type DirEnumerator
type SignedCDSData
    func (data *SignedCDSData) Equals(other *SignedCDSData) bool
    func (*SignedCDSData) ProtoMessage()
    func (data *SignedCDSData) Reset()
    func (data *SignedCDSData) String() string
type SignedCDSPackage
    func (ccpack *SignedCDSPackage) GetChaincodeData() *ChaincodeData
    func (ccpack *SignedCDSPackage) GetDepSpec() *pb.ChaincodeDeploymentSpec
    func (ccpack *SignedCDSPackage) GetDepSpecBytes() []byte
    func (ccpack *SignedCDSPackage) GetId() []byte
    func (ccpack *SignedCDSPackage) GetInstantiationPolicy() []byte
    func (ccpack *SignedCDSPackage) GetPackageObject() proto.Message
    func (ccpack *SignedCDSPackage) InitFromBuffer(buf []byte) (*ChaincodeData, error)
    func (ccpack *SignedCDSPackage) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
    func (ccpack *SignedCDSPackage) InitFromPath(ccname string, ccversion string, path string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
    func (ccpack *SignedCDSPackage) PutChaincodeToFS() error
    func (ccpack *SignedCDSPackage) ValidateCC(ccdata *ChaincodeData) error
type TarFileEntry
type TransactionParams

Package files

cc_info_provider.go cc_statedb_artifacts_provider.go ccinfocache.go ccprovider.go cdspackage.go common.go sigcdspackage.go

func ChaincodePackageExists

func ChaincodePackageExists(ccname string, ccversion string) (bool, error)

ChaincodePackageExists returns whether the chaincode package exists in the file system

func CheckInstantiationPolicy

func CheckInstantiationPolicy(name, version string, cdLedger *ChaincodeData) error

func ExtractFileEntries

func ExtractFileEntries(tarBytes []byte, databaseType string) (map[string][]*TarFileEntry, error)

ExtractFileEntries extract file entries from the given `tarBytes`. A file entry is included in the returned results only if it is located in a directory under the indicated databaseType directory Example for chaincode indexes: "META-INF/statedb/couchdb/indexes/indexColorSortName.json" Example for collection scoped indexes: "META-INF/statedb/couchdb/collections/collectionMarbles/indexes/indexCollMarbles.json" An empty string will have the effect of returning all statedb metadata. This is useful in validating an archive in the future with multiple database types

func ExtractStatedbArtifactsForChaincode

func ExtractStatedbArtifactsForChaincode(ccname, ccversion string, pr *platforms.Registry) (installed bool, statedbArtifactsTar []byte, err error)

ExtractStatedbArtifactsAsTarbytes extracts the statedb artifacts from the code package tar and create a statedb artifact tar. The state db artifacts are expected to contain state db specific artifacts such as index specification in the case of couchdb. This function is intended to be used during chaincode instantiate/upgrade so that statedb artifacts can be created.

func ExtractStatedbArtifactsFromCCPackage

func ExtractStatedbArtifactsFromCCPackage(ccpackage CCPackage, pr *platforms.Registry) (statedbArtifactsTar []byte, err error)

ExtractStatedbArtifactsFromCCPackage extracts the statedb artifacts from the code package tar and create a statedb artifact tar. The state db artifacts are expected to contain state db specific artifacts such as index specification in the case of couchdb. This function is called during chaincode instantiate/upgrade (from above), and from install, so that statedb artifacts can be created.

func GetChaincodeInstallPathFromViper

func GetChaincodeInstallPathFromViper() string

GetChaincodeInstallPathFromViper returns the path where chaincodes are installed

func GetChaincodePackage

func GetChaincodePackage(ccname string, ccversion string) ([]byte, error)

func GetChaincodePackageFromPath

func GetChaincodePackageFromPath(ccname string, ccversion string, ccInstallPath string) ([]byte, error)

GetChaincodePackage returns the chaincode package from the file system

func GetInstalledChaincodes

func GetInstalledChaincodes() (*pb.ChaincodeQueryResponse, error)

GetInstalledChaincodes returns a map whose key is the chaincode id and value is the ChaincodeDeploymentSpec struct for that chaincodes that have been installed (but not necessarily instantiated) on the peer by searching the chaincode install path

func IsChaincodeDeployed

func IsChaincodeDeployed(chainid, ccName, ccVersion string, ccHash []byte, sccp sysccprovider.SystemChaincodeProvider) (bool, error)

IsChaincodeDeployed returns true if the chaincode with given name and version is deployed

func NewCCInfoCache

func NewCCInfoCache(cs CCCacheSupport) *ccInfoCacheImpl

NewCCInfoCache returns a new cache on top of the supplied CCInfoProvider instance

func PutChaincodeIntoFS

func PutChaincodeIntoFS(depSpec *pb.ChaincodeDeploymentSpec) error

PutChaincodeIntoFS puts chaincode information in the file system (and also in the cache to prime it) if the cache is enabled, or directly from the file system otherwise

func SetChaincodesPath

func SetChaincodesPath(path string)

SetChaincodesPath sets the chaincode path for this peer

type CCCacheSupport

type CCCacheSupport interface {
    // GetChaincode is needed by the cache to get chaincode data
    GetChaincode(ccname string, ccversion string) (CCPackage, error)
}

type CCContext

CCContext pass this around instead of string of args

type CCContext struct {
    // Name chaincode name
    Name string

    // Version used to construct the chaincode image and register
    Version string
}

func (*CCContext) GetCanonicalName

func (cccid *CCContext) GetCanonicalName() string

GetCanonicalName returns the canonical name associated with the proposal context

type CCInfoFSImpl

CCInfoFSImpl provides the implementation for CC on the FS and the access to it It implements CCCacheSupport

type CCInfoFSImpl struct{}

func (*CCInfoFSImpl) GetChaincode

func (cifs *CCInfoFSImpl) GetChaincode(ccname string, ccversion string) (CCPackage, error)

GetChaincodeFromFS this is a wrapper for hiding package implementation. It calls GetChaincodeFromPath with the chaincodeInstallPath

func (*CCInfoFSImpl) GetChaincodeCodePackage

func (cifs *CCInfoFSImpl) GetChaincodeCodePackage(ccname, ccversion string) ([]byte, error)

func (*CCInfoFSImpl) GetChaincodeFromPath

func (*CCInfoFSImpl) GetChaincodeFromPath(ccname string, ccversion string, path string) (CCPackage, error)

GetChaincodeFromPath this is a wrapper for hiding package implementation.

func (*CCInfoFSImpl) ListInstalledChaincodes

func (cifs *CCInfoFSImpl) ListInstalledChaincodes(dir string, ls DirEnumerator, ccFromPath ChaincodeExtractor) ([]chaincode.InstalledChaincode, error)

ListInstalledChaincodes retrieves the installed chaincodes

func (*CCInfoFSImpl) PutChaincode

func (*CCInfoFSImpl) PutChaincode(depSpec *pb.ChaincodeDeploymentSpec) (CCPackage, error)

PutChaincodeIntoFS is a wrapper for putting raw ChaincodeDeploymentSpec using CDSPackage. This is only used in UTs

type CCPackage

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

func GetCCPackage

func GetCCPackage(buf []byte) (CCPackage, error)

GetCCPackage tries each known package implementation one by one till the right package is found

func GetChaincodeFromFS

func GetChaincodeFromFS(ccname string, ccversion string) (CCPackage, error)

GetChaincodeFromFS retrieves chaincode information from the file system

func LoadPackage

func LoadPackage(ccname string, ccversion string, path string) (CCPackage, error)

LoadPackage loads a chaincode package from the file system

type CDSData

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

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"`
}

func (*CDSData) Equals

func (data *CDSData) Equals(other *CDSData) bool

Equals data equals other

func (*CDSData) ProtoMessage

func (*CDSData) ProtoMessage()

ProtoMessage just exists to make proto happy

func (*CDSData) Reset

func (data *CDSData) Reset()

Reset resets

func (*CDSData) String

func (data *CDSData) String() string

String converts to string

type CDSPackage

CDSPackage encapsulates ChaincodeDeploymentSpec.

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

func (*CDSPackage) GetChaincodeData

func (ccpack *CDSPackage) GetChaincodeData() *ChaincodeData

GetChaincodeData gets the ChaincodeData

func (*CDSPackage) GetDepSpec

func (ccpack *CDSPackage) GetDepSpec() *pb.ChaincodeDeploymentSpec

GetDepSpec gets the ChaincodeDeploymentSpec from the package

func (*CDSPackage) GetDepSpecBytes

func (ccpack *CDSPackage) GetDepSpecBytes() []byte

GetDepSpecBytes gets the serialized ChaincodeDeploymentSpec from the package

func (*CDSPackage) GetId

func (ccpack *CDSPackage) GetId() []byte

GetId gets the fingerprint of the chaincode based on package computation

func (*CDSPackage) GetPackageObject

func (ccpack *CDSPackage) GetPackageObject() proto.Message

GetPackageObject gets the ChaincodeDeploymentSpec as proto.Message

func (*CDSPackage) InitFromBuffer

func (ccpack *CDSPackage) InitFromBuffer(buf []byte) (*ChaincodeData, error)

InitFromBuffer sets the buffer if valid and returns ChaincodeData

func (*CDSPackage) InitFromFS

func (ccpack *CDSPackage) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error)

InitFromFS returns the chaincode and its package from the file system

func (*CDSPackage) InitFromPath

func (ccpack *CDSPackage) InitFromPath(ccname string, ccversion string, path string) ([]byte, *pb.ChaincodeDeploymentSpec, error)

InitFromFS returns the chaincode and its package from the file system

func (*CDSPackage) PutChaincodeToFS

func (ccpack *CDSPackage) PutChaincodeToFS() error

PutChaincodeToFS - serializes chaincode to a package on the file system

func (*CDSPackage) ValidateCC

func (ccpack *CDSPackage) ValidateCC(ccdata *ChaincodeData) error

ValidateCC returns error if the chaincode is not found or if its not a ChaincodeDeploymentSpec

type ChaincodeContainerInfo

ChaincodeContainerInfo is yet another synonym for the data required to start/stop a chaincode.

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
}

func DeploymentSpecToChaincodeContainerInfo

func DeploymentSpecToChaincodeContainerInfo(cds *pb.ChaincodeDeploymentSpec) *ChaincodeContainerInfo

type ChaincodeData

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 specific (see CDSPackage and SignedCDSPackage)

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"`
}

func GetChaincodeData

func GetChaincodeData(ccname string, ccversion string) (*ChaincodeData, error)

GetChaincodeData gets chaincode data from cache if there's one

func (*ChaincodeData) CCName

func (cd *ChaincodeData) CCName() string

CCName returns the name of this chaincode (the name it was put in the ChaincodeRegistry with).

func (*ChaincodeData) CCVersion

func (cd *ChaincodeData) CCVersion() string

CCVersion returns the version of the chaincode.

func (*ChaincodeData) Endorsement

func (cd *ChaincodeData) Endorsement() string

Endorsement returns how to endorse proposals for this chaincode. The string returns is the name of the endorsement method (usually 'escc').

func (*ChaincodeData) Hash

func (cd *ChaincodeData) Hash() []byte

Hash returns the hash of the chaincode.

func (*ChaincodeData) ProtoMessage

func (*ChaincodeData) ProtoMessage()

ProtoMessage just exists to make proto happy

func (*ChaincodeData) Reset

func (cd *ChaincodeData) Reset()

Reset resets

func (*ChaincodeData) String

func (cd *ChaincodeData) String() string

String converts to string

func (*ChaincodeData) Validation

func (cd *ChaincodeData) Validation() (string, []byte)

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

type ChaincodeDefinition

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

type ChaincodeExtractor

ChaincodeExtractor extracts chaincode from a given path

type ChaincodeExtractor func(ccname string, ccversion string, path string) (CCPackage, error)

type ChaincodeProvider

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

type DirEnumerator

DirEnumerator enumerates directories

type DirEnumerator func(string) ([]os.FileInfo, error)

type SignedCDSData

SignedCDSData is data stored in the LSCC on instantiation of a CC for SignedCDSPackage. This needs to be serialized for ChaincodeData hence the protobuf format

type SignedCDSData struct {
    CodeHash      []byte `protobuf:"bytes,1,opt,name=hash"`
    MetaDataHash  []byte `protobuf:"bytes,2,opt,name=metadatahash"`
    SignatureHash []byte `protobuf:"bytes,3,opt,name=signaturehash"`
}

func (*SignedCDSData) Equals

func (data *SignedCDSData) Equals(other *SignedCDSData) bool

Equals data equals other

func (*SignedCDSData) ProtoMessage

func (*SignedCDSData) ProtoMessage()

ProtoMessage just exists to make proto happy

func (*SignedCDSData) Reset

func (data *SignedCDSData) Reset()

Reset resets

func (*SignedCDSData) String

func (data *SignedCDSData) String() string

String converts to string

type SignedCDSPackage

SignedCDSPackage encapsulates SignedChaincodeDeploymentSpec.

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

func (*SignedCDSPackage) GetChaincodeData

func (ccpack *SignedCDSPackage) GetChaincodeData() *ChaincodeData

GetChaincodeData gets the ChaincodeData

func (*SignedCDSPackage) GetDepSpec

func (ccpack *SignedCDSPackage) GetDepSpec() *pb.ChaincodeDeploymentSpec

GetDepSpec gets the ChaincodeDeploymentSpec from the package

func (*SignedCDSPackage) GetDepSpecBytes

func (ccpack *SignedCDSPackage) GetDepSpecBytes() []byte

GetDepSpecBytes gets the serialized ChaincodeDeploymentSpec from the package

func (*SignedCDSPackage) GetId

func (ccpack *SignedCDSPackage) GetId() []byte

GetId gets the fingerprint of the chaincode based on package computation

func (*SignedCDSPackage) GetInstantiationPolicy

func (ccpack *SignedCDSPackage) GetInstantiationPolicy() []byte

GetInstantiationPolicy gets the instantiation policy from the package

func (*SignedCDSPackage) GetPackageObject

func (ccpack *SignedCDSPackage) GetPackageObject() proto.Message

GetPackageObject gets the ChaincodeDeploymentSpec as proto.Message

func (*SignedCDSPackage) InitFromBuffer

func (ccpack *SignedCDSPackage) InitFromBuffer(buf []byte) (*ChaincodeData, error)

InitFromBuffer sets the buffer if valid and returns ChaincodeData

func (*SignedCDSPackage) InitFromFS

func (ccpack *SignedCDSPackage) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error)

InitFromFS returns the chaincode and its package from the file system

func (*SignedCDSPackage) InitFromPath

func (ccpack *SignedCDSPackage) InitFromPath(ccname string, ccversion string, path string) ([]byte, *pb.ChaincodeDeploymentSpec, error)

InitFromPath returns the chaincode and its package from the file system

func (*SignedCDSPackage) PutChaincodeToFS

func (ccpack *SignedCDSPackage) PutChaincodeToFS() error

PutChaincodeToFS - serializes chaincode to a package on the file system

func (*SignedCDSPackage) ValidateCC

func (ccpack *SignedCDSPackage) ValidateCC(ccdata *ChaincodeData) error

ValidateCC returns error if the chaincode is not found or if its not a ChaincodeDeploymentSpec

type TarFileEntry

tarFileEntry encapsulates a file entry and it's contents inside a tar

type TarFileEntry struct {
    FileHeader  *tar.Header
    FileContent []byte
}

type TransactionParams

TransactionParams are parameters which are tied to a particular transaction and which are required for invoking chaincode.

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
}