Documentation ¶
Index ¶
- func BuildCollectionKVSKey(ccname string) string
- func GetCCNameFromCollectionConfigKey(key string) string
- func IsCollectionConfigKey(key string) bool
- func ParseCollectionConfig(colBytes []byte) (*common.CollectionConfigPackage, error)
- func RetrieveCollectionConfigPackageFromState(cc common.CollectionCriteria, state State) (*common.CollectionConfigPackage, error)
- type Collection
- type CollectionAccessPolicy
- type CollectionFilter
- type CollectionPersistenceConfigs
- type CollectionStore
- type Filter
- type MembershipProvider
- type NoSuchCollectionError
- type SimpleCollection
- func (sc *SimpleCollection) AccessFilter() Filter
- func (sc *SimpleCollection) CollectionID() string
- func (sc *SimpleCollection) IsMemberOnlyRead() bool
- func (sc *SimpleCollection) MaximumPeerCount() int
- func (sc *SimpleCollection) MemberOrgs() []string
- func (sc *SimpleCollection) RequiredPeerCount() int
- func (sc *SimpleCollection) Setup(collectionConfig *common.StaticCollectionConfig, ...) error
- type SimpleCollectionPersistenceConfigs
- type State
- type Support
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildCollectionKVSKey ¶
buildCollectionKvsky为给定的链码名称构造集合配置键
func GetCCNameFromCollectionConfigKey ¶
getccnamefromcollectionconfigkey返回给定集合配置键的链码名称
func IsCollectionConfigKey ¶
iscollectionconfigkey检测密钥是否是集合密钥
func ParseCollectionConfig ¶
func ParseCollectionConfig(colBytes []byte) (*common.CollectionConfigPackage, error)
PARSECURLISTION CONFIG从给定的序列化表示解析集合配置
func RetrieveCollectionConfigPackageFromState ¶
func RetrieveCollectionConfigPackageFromState(cc common.CollectionCriteria, state State) (*common.CollectionConfigPackage, error)
RetrieveCollectionConfigPackageFromState从给定的键从给定的状态检索集合配置包
Types ¶
type Collection ¶
type Collection interface { //collection id返回此集合的ID CollectionID() string //memberOrgs以MSP ID的形式返回集合的成员。这是 //一种人类可读的快速识别谁是集合的一部分的方法。 MemberOrgs() []string }
集合定义集合的公共接口
type CollectionAccessPolicy ¶
type CollectionAccessPolicy interface { //accessfilter返回集合的成员筛选器函数 AccessFilter() Filter //将发送到的对等机私有数据的最小数目 //背书。如果至少传播到 //没有达到这一数量的同龄人。 RequiredPeerCount() int //将私人数据发送到的对等机的最大数目 //背书后。此数字必须大于RequiredPeerCount()。 MaximumPeerCount() int //memberOrgs以MSP ID的形式返回集合的成员。这是 //一种人类可读的快速识别谁是集合的一部分的方法。 MemberOrgs() []string //IsMemberOnlyLead如果只有集合成员可以读取,则返回true //私人数据 IsMemberOnlyRead() bool }
collection access policy封装集合访问策略的函数
type CollectionFilter ¶
type CollectionFilter interface { //AccessFilter检索与给定通道和CollectionPolicyConfig匹配的集合筛选器 AccessFilter(channelName string, collectionPolicyConfig *common.CollectionPolicyConfig) (Filter, error) }
type CollectionPersistenceConfigs ¶
type CollectionPersistenceConfigs interface { //BlockToLive返回收集数据过期后的块数。 //例如,如果该值设置为10,则最后由块编号100修改的键 //将在111号块处清除。零值的处理方式与maxuint64相同。 BlockToLive() uint64 }
CollectionPersistenceConfigs封装与集合的Persistece相关的配置
type CollectionStore ¶
type CollectionStore interface { //getCollection按以下方式检索集合: //如果txid存在于分类帐中,则返回的集合具有 //在此txid之前提交到分类帐的最新配置 //承诺。 //Else - it's the latest configuration for the collection. RetrieveCollection(common.CollectionCriteria) (Collection, error) //getCollectionAccessPolicy检索集合的访问策略 RetrieveCollectionAccessPolicy(common.CollectionCriteria) (CollectionAccessPolicy, error) //RetrieveCollectionConfigPackage检索整个配置包 //对于具有提供标准的链码 RetrieveCollectionConfigPackage(common.CollectionCriteria) (*common.CollectionConfigPackage, error) //RetrieveCollectionPersistenceConfigs检索集合的与持久性相关的配置 RetrieveCollectionPersistenceConfigs(common.CollectionCriteria) (CollectionPersistenceConfigs, error) //HasReadAccess检查已签名的Proposal的创建者是否对 //给定集合 HasReadAccess(common.CollectionCriteria, *pb.SignedProposal, ledger.QueryExecutor) (bool, error) CollectionFilter }
CollectionStore提供各种API来检索存储的集合并执行 基于集合属性的成员资格检查和读取权限检查。 TODO:重构集合存储-FAB-13082 (1)RetrieveCollection()和RetrieveCollectionConfigPackage()等函数是 除非在模拟和测试文件中,否则不得使用。 (2)在八卦中,至少在7个不同的地方,以下3个操作 可以通过引入名为isamberof()的API来避免重复。 (i)通过调用RetrieveCollectionAccessPolicy()检索集合访问策略 (ii)从收集访问策略中获取访问筛选器func (三)制定评估政策,检查会员资格 (3)我们需要在收集存储中有一个缓存,以避免重复的加密操作。 当我们引入isamberof()API时,这很容易实现。
func NewSimpleCollectionStore ¶
func NewSimpleCollectionStore(s Support) CollectionStore
NewSimpleCollectionStore返回存储在备份中的集合 由指定的Ledgergetter提供的分类帐 由提供的 collectionnamer函数
type Filter ¶
type Filter func(common.SignedData) bool
筛选器定义一个规则,根据由其签名的数据筛选对等方。 SignedData中的标识是对等机的序列化实体。 数据是对等签名的消息,签名是对应的 在数据上签名。 如果策略保留给定的签名数据,则返回:true。 否则假
type MembershipProvider ¶
type MembershipProvider struct { IdentityDeserializerFactory func(chainID string) msp.IdentityDeserializer // contains filtered or unexported fields }
MembershipProvider可用于检查对等方是否符合集合的条件
func NewMembershipInfoProvider ¶
func NewMembershipInfoProvider(selfSignedData common.SignedData, identityDeserializerFunc func(chainID string) msp.IdentityDeserializer) *MembershipProvider
NewMembershipInfoProvider返回MembershipProvider
func (*MembershipProvider) AmMemberOf ¶
func (m *MembershipProvider) AmMemberOf(channelName string, collectionPolicyConfig *common.CollectionPolicyConfig) (bool, error)
ammemberof检查当前对等方是否为给定集合配置的成员
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实现具有静态属性的集合 和一个公共成员集
func (*SimpleCollection) AccessFilter ¶
func (sc *SimpleCollection) AccessFilter() Filter
accessfilter返回计算签名数据的成员筛选器函数 根据此集合的成员访问策略
func (*SimpleCollection) CollectionID ¶
func (sc *SimpleCollection) CollectionID() string
collection id返回集合的ID
func (*SimpleCollection) IsMemberOnlyRead ¶
func (sc *SimpleCollection) IsMemberOnlyRead() bool
func (*SimpleCollection) MaximumPeerCount ¶
func (sc *SimpleCollection) MaximumPeerCount() int
func (*SimpleCollection) MemberOrgs ¶
func (sc *SimpleCollection) MemberOrgs() []string
memberOrgs返回属于此集合的MSP ID
func (*SimpleCollection) RequiredPeerCount ¶
func (sc *SimpleCollection) RequiredPeerCount() int
RequiredPeerCount返回最小对等数 需要将私人数据发送到
func (*SimpleCollection) Setup ¶
func (sc *SimpleCollection) Setup(collectionConfig *common.StaticCollectionConfig, deserializer msp.IdentityDeserializer) error
安装程序基于给定的 具有所有必要信息的StaticCollectionConfig协议
type SimpleCollectionPersistenceConfigs ¶
type SimpleCollectionPersistenceConfigs struct {
// contains filtered or unexported fields
}
func (*SimpleCollectionPersistenceConfigs) BlockToLive ¶
func (s *SimpleCollectionPersistenceConfigs) BlockToLive() uint64
BlockToLive返回集合的块到活动配置
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从状态中检索数据
type Support ¶
type Support interface { //GetQueryExecutorForLedger返回指定通道的查询执行器 GetQueryExecutorForLedger(cid string) (ledger.QueryExecutor, error) //GetIdentityDeserializer返回IdentityDeserializer //指定链的实例 GetIdentityDeserializer(chainID string) msp.IdentityDeserializer }
支持是用于注入依赖项的接口