...

Package policies

import "github.com/hyperledger/fabric/common/policies"
Overview
Index
Subdirectories

Overview ▾

Index ▾

Constants
func ImplicitMetaFromString(input string) (*cb.ImplicitMetaPolicy, error)
func ImplicitMetaPolicyWithSubPolicy(subPolicyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigPolicy
func TemplateImplicitMetaAllPolicy(path []string, policyName string) *cb.ConfigGroup
func TemplateImplicitMetaAnyPolicy(path []string, policyName string) *cb.ConfigGroup
func TemplateImplicitMetaMajorityPolicy(path []string, policyName string) *cb.ConfigGroup
func TemplateImplicitMetaPolicy(path []string, policyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigGroup
func TemplateImplicitMetaPolicyWithSubPolicy(path []string, policyName string, subPolicyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigGroup
type ChannelPolicyManagerGetter
type ConfigPolicy
type InquireablePolicy
type Manager
type ManagerImpl
    func NewManagerImpl(path string, providers map[int32]Provider, root *cb.ConfigGroup) (*ManagerImpl, error)
    func (pm *ManagerImpl) GetPolicy(id string) (Policy, bool)
    func (pm *ManagerImpl) Manager(path []string) (Manager, bool)
type Policy
type PrincipalSet
    func (ps PrincipalSet) ContainingOnly(f func(*msp.MSPPrincipal) bool) bool
    func (ps PrincipalSet) UniqueSet() map[*msp.MSPPrincipal]int
type PrincipalSets
    func (psSets PrincipalSets) ContainingOnly(f func(*msp.MSPPrincipal) bool) PrincipalSets
type Provider
type StandardConfigPolicy
    func ImplicitMetaAllPolicy(policyName string) *StandardConfigPolicy
    func ImplicitMetaAnyPolicy(policyName string) *StandardConfigPolicy
    func ImplicitMetaMajorityPolicy(policyName string) *StandardConfigPolicy
    func SignaturePolicy(policyName string, sigPolicy *cb.SignaturePolicyEnvelope) *StandardConfigPolicy
    func (scv *StandardConfigPolicy) Key() string
    func (scv *StandardConfigPolicy) Value() *cb.Policy

Package files

implicitmeta.go implicitmeta_util.go implicitmetaparser.go policy.go util.go

Constants

const (
    // Path separator is used to separate policy names in paths
    PathSeparator = "/"

    // ChannelPrefix is used in the path of standard channel policy managers
    ChannelPrefix = "Channel"

    // ApplicationPrefix is used in the path of standard application policy paths
    ApplicationPrefix = "Application"

    // OrdererPrefix is used in the path of standard orderer policy paths
    OrdererPrefix = "Orderer"

    // ChannelReaders is the label for the channel's readers policy (encompassing both orderer and application readers)
    ChannelReaders = PathSeparator + ChannelPrefix + PathSeparator + "Readers"

    // ChannelWriters is the label for the channel's writers policy (encompassing both orderer and application writers)
    ChannelWriters = PathSeparator + ChannelPrefix + PathSeparator + "Writers"

    // ChannelApplicationReaders is the label for the channel's application readers policy
    ChannelApplicationReaders = PathSeparator + ChannelPrefix + PathSeparator + ApplicationPrefix + PathSeparator + "Readers"

    // ChannelApplicationWriters is the label for the channel's application writers policy
    ChannelApplicationWriters = PathSeparator + ChannelPrefix + PathSeparator + ApplicationPrefix + PathSeparator + "Writers"

    // ChannelApplicationAdmins is the label for the channel's application admin policy
    ChannelApplicationAdmins = PathSeparator + ChannelPrefix + PathSeparator + ApplicationPrefix + PathSeparator + "Admins"

    // BlockValidation is the label for the policy which should validate the block signatures for the channel
    BlockValidation = PathSeparator + ChannelPrefix + PathSeparator + OrdererPrefix + PathSeparator + "BlockValidation"

    // ChannelOrdererAdmins is the label for the channel's orderer admin policy
    ChannelOrdererAdmins = PathSeparator + ChannelPrefix + PathSeparator + OrdererPrefix + PathSeparator + "Admins"

    // ChannelOrdererWriters is the label for the channel's orderer writers policy
    ChannelOrdererWriters = PathSeparator + ChannelPrefix + PathSeparator + OrdererPrefix + PathSeparator + "Writers"

    // ChannelOrdererReaders is the label for the channel's orderer readers policy
    ChannelOrdererReaders = PathSeparator + ChannelPrefix + PathSeparator + OrdererPrefix + PathSeparator + "Readers"
)

func ImplicitMetaFromString

func ImplicitMetaFromString(input string) (*cb.ImplicitMetaPolicy, error)

func ImplicitMetaPolicyWithSubPolicy

func ImplicitMetaPolicyWithSubPolicy(subPolicyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigPolicy

ImplicitMetaPolicyWithSubPolicy creates an implicitmeta policy

func TemplateImplicitMetaAllPolicy

func TemplateImplicitMetaAllPolicy(path []string, policyName string) *cb.ConfigGroup

TempateImplicitMetaAnyPolicy returns TemplateImplicitMetaPolicy with cb.ImplicitMetaPolicy_ALL as the rule

func TemplateImplicitMetaAnyPolicy

func TemplateImplicitMetaAnyPolicy(path []string, policyName string) *cb.ConfigGroup

TempateImplicitMetaAnyPolicy returns TemplateImplicitMetaPolicy with cb.ImplicitMetaPolicy_ANY as the rule

func TemplateImplicitMetaMajorityPolicy

func TemplateImplicitMetaMajorityPolicy(path []string, policyName string) *cb.ConfigGroup

TempateImplicitMetaAnyPolicy returns TemplateImplicitMetaPolicy with cb.ImplicitMetaPolicy_MAJORITY as the rule

func TemplateImplicitMetaPolicy

func TemplateImplicitMetaPolicy(path []string, policyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigGroup

TemplateImplicitMetaPolicy creates a policy at the specified path with the given policyName It utilizes the policyName for the subPolicyName as well, as this is the standard usage pattern

func TemplateImplicitMetaPolicyWithSubPolicy

func TemplateImplicitMetaPolicyWithSubPolicy(path []string, policyName string, subPolicyName string, rule cb.ImplicitMetaPolicy_Rule) *cb.ConfigGroup

TemplateImplicitMetaPolicy creates a policy at the specified path with the given policyName and subPolicyName

type ChannelPolicyManagerGetter

ChannelPolicyManagerGetter is a support interface to get access to the policy manager of a given channel

type ChannelPolicyManagerGetter interface {
    // Returns the policy manager associated to the passed channel
    // and true if it was the manager requested, or false if it is the default manager
    Manager(channelID string) (Manager, bool)
}

type ConfigPolicy

ConfigPolicy defines a common representation for different *cb.ConfigPolicy values.

type ConfigPolicy interface {
    // Key is the key this value should be stored in the *cb.ConfigGroup.Policies map.
    Key() string

    // Value is the backing policy implementation for this ConfigPolicy
    Value() *cb.Policy
}

type InquireablePolicy

InquireablePolicy is a Policy that one can inquire

type InquireablePolicy interface {
    // SatisfiedBy returns a slice of PrincipalSets that each of them
    // satisfies the policy.
    SatisfiedBy() []PrincipalSet
}

type Manager

Manager is a read only subset of the policy ManagerImpl

type Manager interface {
    // GetPolicy returns a policy and true if it was the policy requested, or false if it is the default policy
    GetPolicy(id string) (Policy, bool)

    // Manager returns the sub-policy manager for a given path and whether it exists
    Manager(path []string) (Manager, bool)
}

type ManagerImpl

ManagerImpl is an implementation of Manager and configtx.ConfigHandler In general, it should only be referenced as an Impl for the configtx.ConfigManager

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

func NewManagerImpl

func NewManagerImpl(path string, providers map[int32]Provider, root *cb.ConfigGroup) (*ManagerImpl, error)

NewManagerImpl creates a new ManagerImpl with the given CryptoHelper

func (*ManagerImpl) GetPolicy

func (pm *ManagerImpl) GetPolicy(id string) (Policy, bool)

GetPolicy returns a policy and true if it was the policy requested, or false if it is the default reject policy

func (*ManagerImpl) Manager

func (pm *ManagerImpl) Manager(path []string) (Manager, bool)

Manager returns the sub-policy manager for a given path and whether it exists

type Policy

Policy is used to determine if a signature is valid

type Policy interface {
    // Evaluate takes a set of SignedData and evaluates whether this set of signatures satisfies the policy
    Evaluate(signatureSet []*cb.SignedData) error
}

type PrincipalSet

PrincipalSet is a collection of MSPPrincipals

type PrincipalSet []*msp.MSPPrincipal

func (PrincipalSet) ContainingOnly

func (ps PrincipalSet) ContainingOnly(f func(*msp.MSPPrincipal) bool) bool

ContainingOnly returns whether the given PrincipalSet contains only Principals that satisfy the given predicate

func (PrincipalSet) UniqueSet

func (ps PrincipalSet) UniqueSet() map[*msp.MSPPrincipal]int

UniqueSet returns a histogram that is induced by the PrincipalSet

type PrincipalSets

PrincipalSets aggregates PrincipalSets

type PrincipalSets []PrincipalSet

func (PrincipalSets) ContainingOnly

func (psSets PrincipalSets) ContainingOnly(f func(*msp.MSPPrincipal) bool) PrincipalSets

ContainingOnly returns PrincipalSets that contain only principals of the given predicate

type Provider

Provider provides the backing implementation of a policy

type Provider interface {
    // NewPolicy creates a new policy based on the policy bytes
    NewPolicy(data []byte) (Policy, proto.Message, error)
}

type StandardConfigPolicy

StandardConfigValue implements the ConfigValue interface.

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

func ImplicitMetaAllPolicy

func ImplicitMetaAllPolicy(policyName string) *StandardConfigPolicy

ImplicitMetaAllPolicy defines an implicit meta policy whose sub_policy and key is policyname with rule ALL.

func ImplicitMetaAnyPolicy

func ImplicitMetaAnyPolicy(policyName string) *StandardConfigPolicy

ImplicitMetaAnyPolicy defines an implicit meta policy whose sub_policy and key is policyname with rule ANY.

func ImplicitMetaMajorityPolicy

func ImplicitMetaMajorityPolicy(policyName string) *StandardConfigPolicy

ImplicitMetaMajorityPolicy defines an implicit meta policy whose sub_policy and key is policyname with rule MAJORITY.

func SignaturePolicy

func SignaturePolicy(policyName string, sigPolicy *cb.SignaturePolicyEnvelope) *StandardConfigPolicy

ImplicitMetaMajorityPolicy defines a policy with key policyName and the given signature policy.

func (*StandardConfigPolicy) Key

func (scv *StandardConfigPolicy) Key() string

Key is the key this value should be stored in the *cb.ConfigGroup.Values map.

func (*StandardConfigPolicy) Value

func (scv *StandardConfigPolicy) Value() *cb.Policy

Value is the *cb.Policy which should be stored as the *cb.ConfigPolicy.Policy.

Subdirectories

Name Synopsis
..
inquire
orderer
mocks