fabric: github.com/hyperledger/fabric/core/scc/lscc Index | Files | Directories

package lscc

import "github.com/hyperledger/fabric/core/scc/lscc"

Index

Package Files

deployedcc_infoprovider.go errors.go lscc.go support.go

Constants

const (

    // INSTALL install command
    INSTALL = "install"

    // DEPLOY deploy command
    DEPLOY = "deploy"

    // UPGRADE upgrade chaincode
    UPGRADE = "upgrade"

    // CCEXISTS get chaincode
    CCEXISTS = "getid"

    // CHAINCODEEXISTS get chaincode alias
    CHAINCODEEXISTS = "ChaincodeExists"

    // GETDEPSPEC get ChaincodeDeploymentSpec
    GETDEPSPEC = "getdepspec"

    // GETDEPLOYMENTSPEC get ChaincodeDeploymentSpec alias
    GETDEPLOYMENTSPEC = "GetDeploymentSpec"

    // GETCCDATA get ChaincodeData
    GETCCDATA = "getccdata"

    // GETCHAINCODEDATA get ChaincodeData alias
    GETCHAINCODEDATA = "GetChaincodeData"

    // GETCHAINCODES gets the instantiated chaincodes on a channel
    GETCHAINCODES = "getchaincodes"

    // GETCHAINCODESALIAS gets the instantiated chaincodes on a channel
    GETCHAINCODESALIAS = "GetChaincodes"

    // GETINSTALLEDCHAINCODES gets the installed chaincodes on a peer
    GETINSTALLEDCHAINCODES = "getinstalledchaincodes"

    // GETINSTALLEDCHAINCODESALIAS gets the installed chaincodes on a peer
    GETINSTALLEDCHAINCODESALIAS = "GetInstalledChaincodes"

    // GETCOLLECTIONSCONFIG gets the collections config for a chaincode
    GETCOLLECTIONSCONFIG = "GetCollectionsConfig"

    // GETCOLLECTIONSCONFIGALIAS gets the collections config for a chaincode
    GETCOLLECTIONSCONFIGALIAS = "getcollectionsconfig"
)

Variables

var (

    // NOTE these regular expressions should stay in sync with those defined in
    // core/chaincode/lifecycle/scc.go until LSCC has been removed.
    ChaincodeNameRegExp    = regexp.MustCompile("^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$")
    ChaincodeVersionRegExp = regexp.MustCompile("^[A-Za-z0-9_.+-]+$")
)

type ChaincodeBuilder Uses

type ChaincodeBuilder interface {
    Build(ccid string) error
}

type ChaincodeMismatchErr Uses

type ChaincodeMismatchErr string

ChaincodeMismatchErr chaincode name from two places don't match

func (ChaincodeMismatchErr) Error Uses

func (f ChaincodeMismatchErr) Error() string

type CollectionsConfigUpgradesNotAllowed Uses

type CollectionsConfigUpgradesNotAllowed string

CollectionsConfigUpgradesNotAllowed when V1_2 capability is not enabled

func (CollectionsConfigUpgradesNotAllowed) Error Uses

func (f CollectionsConfigUpgradesNotAllowed) Error() string

type DeployedCCInfoProvider Uses

type DeployedCCInfoProvider struct {
}

DeployedCCInfoProvider implements interface ledger.DeployedChaincodeInfoProvider

func (*DeployedCCInfoProvider) AllCollectionsConfigPkg Uses

func (p *DeployedCCInfoProvider) AllCollectionsConfigPkg(channelName, chaincodeName string, qe ledger.SimpleQueryExecutor) (*common.CollectionConfigPackage, error)

AllCollectionsConfigPkg implements function in interface ledger.DeployedChaincodeInfoProvider this implementation returns just the explicit collection config package as the implicit collections are not used with legacy lifecycle

func (*DeployedCCInfoProvider) ChaincodeInfo Uses

func (p *DeployedCCInfoProvider) ChaincodeInfo(channelName, chaincodeName string, qe ledger.SimpleQueryExecutor) (*ledger.DeployedChaincodeInfo, error)

ChaincodeInfo implements function in interface ledger.DeployedChaincodeInfoProvider

func (*DeployedCCInfoProvider) CollectionInfo Uses

func (p *DeployedCCInfoProvider) CollectionInfo(channelName, chaincodeName, collectionName string, qe ledger.SimpleQueryExecutor) (*common.StaticCollectionConfig, error)

CollectionInfo implements function in interface ledger.DeployedChaincodeInfoProvider

func (*DeployedCCInfoProvider) ImplicitCollections Uses

func (p *DeployedCCInfoProvider) ImplicitCollections(channelName, chaincodeName string, qe ledger.SimpleQueryExecutor) ([]*common.StaticCollectionConfig, error)

func (*DeployedCCInfoProvider) Namespaces Uses

func (p *DeployedCCInfoProvider) Namespaces() []string

Namespaces implements function in interface ledger.DeployedChaincodeInfoProvider

func (*DeployedCCInfoProvider) UpdatedChaincodes Uses

func (p *DeployedCCInfoProvider) UpdatedChaincodes(stateUpdates map[string][]*kvrwset.KVWrite) ([]*ledger.ChaincodeLifecycleInfo, error)

UpdatedChaincodes implements function in interface ledger.DeployedChaincodeInfoProvider

type ExistsErr Uses

type ExistsErr string

ExistsErr chaincode exists error

func (ExistsErr) Error Uses

func (t ExistsErr) Error() string

type FilesystemSupport Uses

type FilesystemSupport interface {
    // PutChaincodeToLocalStorage stores the supplied chaincode
    // package to local storage (i.e. the file system)
    PutChaincodeToLocalStorage(ccprovider.CCPackage) error

    // GetChaincodeFromLocalStorage retrieves the chaincode package
    // for the requested chaincode, specified by name and version
    GetChaincodeFromLocalStorage(ccNameVersion string) (ccprovider.CCPackage, error)

    // GetChaincodesFromLocalStorage returns an array of all chaincode
    // data that have previously been persisted to local storage
    GetChaincodesFromLocalStorage() (*pb.ChaincodeQueryResponse, error)

    // GetInstantiationPolicy returns the instantiation policy for the
    // supplied chaincode (or the channel's default if none was specified)
    GetInstantiationPolicy(channel string, ccpack ccprovider.CCPackage) ([]byte, error)

    // CheckInstantiationPolicy checks whether the supplied signed proposal
    // complies with the supplied instantiation policy
    CheckInstantiationPolicy(signedProposal *pb.SignedProposal, chainName string, instantiationPolicy []byte) error
}

FilesystemSupport contains functions that LSCC requires to execute its tasks

type IdenticalVersionErr Uses

type IdenticalVersionErr string

IdenticalVersionErr trying to upgrade to same version of Chaincode

func (IdenticalVersionErr) Error Uses

func (f IdenticalVersionErr) Error() string

type InstantiationPolicyMissing Uses

type InstantiationPolicyMissing string

InstantiationPolicyMissing when no existing instantiation policy is found when upgrading CC

func (InstantiationPolicyMissing) Error Uses

func (f InstantiationPolicyMissing) Error() string

type InvalidArgsLenErr Uses

type InvalidArgsLenErr int

InvalidArgsLenErr invalid arguments length error

func (InvalidArgsLenErr) Error Uses

func (i InvalidArgsLenErr) Error() string

type InvalidCCOnFSError Uses

type InvalidCCOnFSError string

InvalidCCOnFSError error due to mismatch between fingerprint on lscc and installed CC

func (InvalidCCOnFSError) Error Uses

func (f InvalidCCOnFSError) Error() string

type InvalidChaincodeNameErr Uses

type InvalidChaincodeNameErr string

InvalidChaincodeNameErr invalid chaincode name error

func (InvalidChaincodeNameErr) Error Uses

func (f InvalidChaincodeNameErr) Error() string

type InvalidChannelNameErr Uses

type InvalidChannelNameErr string

InvalidChannelNameErr invalid channel name error

func (InvalidChannelNameErr) Error Uses

func (f InvalidChannelNameErr) Error() string

type InvalidDeploymentSpecErr Uses

type InvalidDeploymentSpecErr string

InvalidDeploymentSpecErr invalid chaincode deployment spec error

func (InvalidDeploymentSpecErr) Error Uses

func (f InvalidDeploymentSpecErr) Error() string

type InvalidFunctionErr Uses

type InvalidFunctionErr string

InvalidFunctionErr invalid function error

func (InvalidFunctionErr) Error Uses

func (f InvalidFunctionErr) Error() string

type InvalidStatedbArtifactsErr Uses

type InvalidStatedbArtifactsErr string

InvalidStatedbArtifactsErr invalid state database artifacts error

func (InvalidStatedbArtifactsErr) Error Uses

func (f InvalidStatedbArtifactsErr) Error() string

type InvalidVersionErr Uses

type InvalidVersionErr string

InvalidVersionErr invalid version error

func (InvalidVersionErr) Error Uses

func (f InvalidVersionErr) Error() string

type LegacySecurity Uses

type LegacySecurity struct {
    Support FilesystemSupport
}

func (*LegacySecurity) SecurityCheckLegacyChaincode Uses

func (ls *LegacySecurity) SecurityCheckLegacyChaincode(cd *ccprovider.ChaincodeData) error

type MSPIDsGetter Uses

type MSPIDsGetter func(string) []string

MSPsIDGetter is used to get the MSP IDs for a channel.

type MarshallErr Uses

type MarshallErr string

MarshallErr error marshaling/unmarshalling

func (MarshallErr) Error Uses

func (m MarshallErr) Error() string

type NotFoundErr Uses

type NotFoundErr string

NotFoundErr chaincode not registered with LSCC error

func (NotFoundErr) Error Uses

func (t NotFoundErr) Error() string

type PeerShim Uses

type PeerShim struct {
    Peer *peer.Peer
}

PeerShim adapts the peer instance for use with LSCC by providing methods previously provided by the scc provider. If the lscc code weren't all getting deleted soon, it would probably be worth rewriting it to use these APIs directly rather that go through this shim, but it will be gone soon.

func (*PeerShim) GetApplicationConfig Uses

func (p *PeerShim) GetApplicationConfig(cid string) (channelconfig.Application, bool)

GetApplicationConfig returns the configtxapplication.SharedConfig for the channel and whether the Application config exists

func (*PeerShim) GetQueryExecutorForLedger Uses

func (p *PeerShim) GetQueryExecutorForLedger(cid string) (ledger.QueryExecutor, error)

GetQueryExecutorForLedger returns a query executor for the specified channel

func (*PeerShim) PolicyManager Uses

func (p *PeerShim) PolicyManager(channelID string) (policies.Manager, bool)

Returns the policy manager associated to the passed channel and whether the policy manager exists

type PrivateChannelDataNotAvailable Uses

type PrivateChannelDataNotAvailable string

PrivateChannelDataNotAvailable when V1_2 or later capability is not enabled

func (PrivateChannelDataNotAvailable) Error Uses

func (f PrivateChannelDataNotAvailable) Error() string

type SCC Uses

type SCC struct {
    // aclProvider is responsible for access control evaluation
    ACLProvider aclmgmt.ACLProvider

    BuiltinSCCs scc.BuiltinSCCs

    // SCCProvider is the interface which is passed into system chaincodes
    // to access other parts of the system
    SCCProvider sysccprovider.SystemChaincodeProvider

    // PolicyChecker is the interface used to perform
    // access control
    PolicyChecker policy.PolicyChecker

    // Support provides the implementation of several
    // static functions
    Support FilesystemSupport

    GetMSPIDs MSPIDsGetter

    BuildRegistry *container.BuildRegistry

    ChaincodeBuilder ChaincodeBuilder

    EbMetadataProvider *externalbuilders.MetadataProvider

    // BCCSP instance
    BCCSP bccsp.BCCSP
}

SCC implements chaincode lifecycle and policies around it

func (*SCC) Chaincode Uses

func (lscc *SCC) Chaincode() shim.Chaincode

func (*SCC) ChaincodeEndorsementInfo Uses

func (lscc *SCC) ChaincodeEndorsementInfo(channelID, chaincodeName string, qe ledger.SimpleQueryExecutor) (*lifecycle.ChaincodeEndorsementInfo, error)

func (*SCC) Init Uses

func (lscc *SCC) Init(stub shim.ChaincodeStubInterface) pb.Response

Init is mostly useless for SCC

func (*SCC) Invoke Uses

func (lscc *SCC) Invoke(stub shim.ChaincodeStubInterface) pb.Response

Invoke implements lifecycle functions "deploy", "start", "stop", "upgrade". Deploy's arguments - {[]byte("deploy"), []byte(<chainname>), <unmarshalled pb.ChaincodeDeploymentSpec>}

Invoke also implements some query-like functions Get chaincode arguments - {[]byte("getid"), []byte(<chainname>), []byte(<chaincodename>)}

func (*SCC) Name Uses

func (lscc *SCC) Name() string

func (*SCC) ValidationInfo Uses

func (lscc *SCC) ValidationInfo(channelID, chaincodeName string, qe ledger.SimpleQueryExecutor) (plugin string, args []byte, unexpectedErr error, validationErr error)

ValidationInfo returns name&arguments of the validation plugin for the supplied chaincode. The function returns two types of errors, unexpected errors and validation errors. The reason for this is that this function is to be called from the validation code, which needs to tell apart the two types of error to halt processing on the channel if the unexpected error is not nil and mark the transaction as invalid if the validation error is not nil.

type SupportImpl Uses

type SupportImpl struct {
    GetMSPIDs MSPIDsGetter
}

func (*SupportImpl) CheckInstantiationPolicy Uses

func (s *SupportImpl) CheckInstantiationPolicy(signedProp *pb.SignedProposal, chainName string, instantiationPolicy []byte) error

CheckInstantiationPolicy checks whether the supplied signed proposal complies with the supplied instantiation policy

func (*SupportImpl) GetChaincodeFromLocalStorage Uses

func (s *SupportImpl) GetChaincodeFromLocalStorage(ccNameVersion string) (ccprovider.CCPackage, error)

GetChaincodeFromLocalStorage retrieves the chaincode package for the requested chaincode, specified by name and version

func (*SupportImpl) GetChaincodesFromLocalStorage Uses

func (s *SupportImpl) GetChaincodesFromLocalStorage() (*pb.ChaincodeQueryResponse, error)

GetChaincodesFromLocalStorage returns an array of all chaincode data that have previously been persisted to local storage

func (*SupportImpl) GetInstantiationPolicy Uses

func (s *SupportImpl) GetInstantiationPolicy(channel string, ccpack ccprovider.CCPackage) ([]byte, error)

GetInstantiationPolicy returns the instantiation policy for the supplied chaincode (or the channel's default if none was specified)

func (*SupportImpl) PutChaincodeToLocalStorage Uses

func (s *SupportImpl) PutChaincodeToLocalStorage(ccpack ccprovider.CCPackage) error

PutChaincodeToLocalStorage stores the supplied chaincode package to local storage (i.e. the file system)

type TXNotFoundErr Uses

type TXNotFoundErr string

TXNotFoundErr transaction not found error

func (TXNotFoundErr) Error Uses

func (t TXNotFoundErr) Error() string

Directories

PathSynopsis
mockCode generated by counterfeiter.

Package lscc imports 32 packages (graph) and is imported by 21 packages. Updated 2019-11-17. Refresh now. Tools for package owners.