privdata

package
v0.0.0-...-21e40fe Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildCollectionKVSKey

func BuildCollectionKVSKey(ccname string) string

BuildCollectionKVSKey constructs the collection config key for a given chaincode name

func GetCCNameFromCollectionConfigKey

func GetCCNameFromCollectionConfigKey(key string) string

GetCCNameFromCollectionConfigKey returns the chaincode name given a collection config key

func IsCollectionConfigKey

func IsCollectionConfigKey(key string) bool

IsCollectionConfigKey detects if a key is a collection key

func ParseCollectionConfig

func ParseCollectionConfig(colBytes []byte) (*common.CollectionConfigPackage, error)

ParseCollectionConfig parses the collection configuration from the given serialized representation

func RetrieveCollectionConfigPackageFromState

func RetrieveCollectionConfigPackageFromState(cc common.CollectionCriteria, state State) (*common.CollectionConfigPackage, error)

RetrieveCollectionConfigPackageFromState retrieves the collection config package from the given key from the given state

Types

type Collection

type Collection interface {

	// CollectionID returns this collection's ID
	CollectionID() string

	// MemberOrgs returns the collection's members as MSP IDs. This serves as
	// a human-readable way of quickly identifying who is part of a collection.
	MemberOrgs() []string
}

Collection defines a common interface for collections

type CollectionAccessPolicy

type CollectionAccessPolicy interface {
	// AccessFilter returns a member filter function for a collection
	AccessFilter() Filter

	// The minimum number of peers private data will be sent to upon
	// endorsement. The endorsement would fail if dissemination to at least
	// this number of peers is not achieved.
	RequiredPeerCount() int

	// The maximum number of peers that private data will be sent to
	// upon endorsement. This number has to be bigger than RequiredPeerCount().
	MaximumPeerCount() int

	// MemberOrgs returns the collection's members as MSP IDs. This serves as
	// a human-readable way of quickly identifying who is part of a collection.
	MemberOrgs() []string
}

CollectionAccessPolicy encapsulates functions for the access policy of a collection

type CollectionFilter

type CollectionFilter interface {
	// AccessFilter retrieves the collection's filter that matches a given channel and a collectionPolicyConfig
	AccessFilter(channelName string, collectionPolicyConfig *common.CollectionPolicyConfig) (Filter, error)
}

type CollectionPersistenceConfigs

type CollectionPersistenceConfigs interface {
	// BlockToLive returns the number of blocks after which the collection data expires.
	// For instance if the value is set to 10, a key last modified by block number 100
	// will be purged at block number 111. A zero value is treated same as MaxUint64
	BlockToLive() uint64
}

CollectionPersistenceConfigs encapsulates configurations related to persistece of a collection

type CollectionStore

type CollectionStore interface {
	// GetCollection retrieves the collection in the following way:
	// If the TxID exists in the ledger, the collection that is returned has the
	// latest configuration that was committed into the ledger before this txID
	// was committed.
	// Else - it's the latest configuration for the collection.
	RetrieveCollection(common.CollectionCriteria) (Collection, error)

	// GetCollectionAccessPolicy retrieves a collection's access policy
	RetrieveCollectionAccessPolicy(common.CollectionCriteria) (CollectionAccessPolicy, error)

	// RetrieveCollectionConfigPackage retrieves the whole configuration package
	// for the chaincode with the supplied criteria
	RetrieveCollectionConfigPackage(common.CollectionCriteria) (*common.CollectionConfigPackage, error)

	// RetrieveCollectionPersistenceConfigs retrieves the collection's persistence related configurations
	RetrieveCollectionPersistenceConfigs(cc common.CollectionCriteria) (CollectionPersistenceConfigs, error)

	CollectionFilter
}

CollectionStore retrieves stored collections based on the collection's properties. It works as a collection object factory and takes care of returning a collection object of an appropriate collection type.

func NewSimpleCollectionStore

func NewSimpleCollectionStore(s Support) CollectionStore

NewSimpleCollectionStore returns a collection stored backed by a ledger supplied by the specified ledgerGetter with an internal name formed as specified by the supplied collectionNamer function

type Filter

type Filter func(common.SignedData) bool

Filter defines a rule that filters peers according to data signed by them. The Identity in the SignedData is a SerializedIdentity of a peer. The Data is a message the peer signed, and the Signature is the corresponding Signature on that Data. Returns: True, if the policy holds for the given signed data.

False otherwise

type MembershipProvider

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

MembershipProvider can be used to check whether a peer is eligible to a collection or not

func NewMembershipInfoProvider

func NewMembershipInfoProvider(selfSignedData common.SignedData, filter CollectionFilter) *MembershipProvider

NewMembershipInfoProvider returns MembershipProvider

func (*MembershipProvider) AmMemberOf

func (m *MembershipProvider) AmMemberOf(channelName string, collectionPolicyConfig *common.CollectionPolicyConfig) (bool, error)

AmMemberOf checks whether the current peer is a member of the given collection config

type NoSuchCollectionError

type NoSuchCollectionError common.CollectionCriteria

func (NoSuchCollectionError) Error

func (f NoSuchCollectionError) Error() string

type SimpleCollection

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

SimpleCollection implements a collection with static properties and a public member set

func (*SimpleCollection) AccessFilter

func (sc *SimpleCollection) AccessFilter() Filter

AccessFilter returns the member filter function that evaluates signed data against the member access policy of this collection

func (*SimpleCollection) CollectionID

func (sc *SimpleCollection) CollectionID() string

CollectionID returns the collection's ID

func (*SimpleCollection) MaximumPeerCount

func (sc *SimpleCollection) MaximumPeerCount() int

func (*SimpleCollection) MemberOrgs

func (sc *SimpleCollection) MemberOrgs() []string

MemberOrgs returns the MSP IDs that are part of this collection

func (*SimpleCollection) RequiredPeerCount

func (sc *SimpleCollection) RequiredPeerCount() int

RequiredPeerCount returns the minimum number of peers required to send private data to

func (*SimpleCollection) Setup

func (sc *SimpleCollection) Setup(collectionConfig *common.StaticCollectionConfig, deserializer msp.IdentityDeserializer) error

Setup configures a simple collection object based on a given StaticCollectionConfig proto that has all the necessary information

type SimpleCollectionPersistenceConfigs

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

func (*SimpleCollectionPersistenceConfigs) BlockToLive

func (s *SimpleCollectionPersistenceConfigs) BlockToLive() uint64

BlockToLive return collection's block to live configuration

type State

type State interface {
	// GetState retrieves the value for the given key in the given namespace
	GetState(namespace string, key string) ([]byte, error)
}

StateGetter retrieves data from the state

type Support

type Support interface {
	// GetQueryExecutorForLedger returns a query executor for the specified channel
	GetQueryExecutorForLedger(cid string) (ledger.QueryExecutor, error)

	// GetIdentityDeserializer returns an IdentityDeserializer
	// instance for the specified chain
	GetIdentityDeserializer(chainID string) msp.IdentityDeserializer
}

Support is an interface used to inject dependencies

Jump to

Keyboard shortcuts

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