Documentation ¶
Overview ¶
Package common is a generated protocol buffer package.
It is generated from these files:
common/common.proto common/configtx.proto common/configuration.proto common/ledger.proto common/policies.proto
It has these top-level messages:
LastConfig Metadata MetadataSignature Header ChannelHeader SignatureHeader Payload Envelope Block BlockHeader BlockData BlockMetadata ConfigEnvelope ConfigGroupSchema ConfigValueSchema ConfigPolicySchema Config ConfigUpdateEnvelope ConfigUpdate ConfigGroup ConfigValue ConfigPolicy ConfigSignature HashingAlgorithm BlockDataHashingStructure OrdererAddresses Consortium BlockchainInfo Policy SignaturePolicyEnvelope SignaturePolicy ImplicitMetaPolicy
Index ¶
- Variables
- type Block
- type BlockData
- type BlockDataHashingStructure
- type BlockHeader
- type BlockMetadata
- type BlockMetadataIndex
- type BlockchainInfo
- type ChannelHeader
- type Config
- type ConfigEnvelope
- type ConfigGroup
- func (*ConfigGroup) Descriptor() ([]byte, []int)
- func (m *ConfigGroup) GetGroups() map[string]*ConfigGroup
- func (m *ConfigGroup) GetPolicies() map[string]*ConfigPolicy
- func (m *ConfigGroup) GetValues() map[string]*ConfigValue
- func (*ConfigGroup) ProtoMessage()
- func (m *ConfigGroup) Reset()
- func (m *ConfigGroup) String() string
- type ConfigGroupSchema
- func (*ConfigGroupSchema) Descriptor() ([]byte, []int)
- func (m *ConfigGroupSchema) GetGroups() map[string]*ConfigGroupSchema
- func (m *ConfigGroupSchema) GetPolicies() map[string]*ConfigPolicySchema
- func (m *ConfigGroupSchema) GetValues() map[string]*ConfigValueSchema
- func (*ConfigGroupSchema) ProtoMessage()
- func (m *ConfigGroupSchema) Reset()
- func (m *ConfigGroupSchema) String() string
- type ConfigPolicy
- type ConfigPolicySchema
- type ConfigSignature
- type ConfigUpdate
- type ConfigUpdateEnvelope
- func (ce *ConfigUpdateEnvelope) AsSignedData() ([]*SignedData, error)
- func (*ConfigUpdateEnvelope) Descriptor() ([]byte, []int)
- func (m *ConfigUpdateEnvelope) GetSignatures() []*ConfigSignature
- func (*ConfigUpdateEnvelope) ProtoMessage()
- func (m *ConfigUpdateEnvelope) Reset()
- func (m *ConfigUpdateEnvelope) String() string
- type ConfigValue
- type ConfigValueSchema
- type Consortium
- type Envelope
- type HashingAlgorithm
- type Header
- type HeaderType
- type ImplicitMetaPolicy
- type ImplicitMetaPolicy_Rule
- type LastConfig
- type Metadata
- type MetadataSignature
- type OrdererAddresses
- type Payload
- type Policy
- type Policy_PolicyType
- type Signable
- type SignatureHeader
- type SignaturePolicy
- func (*SignaturePolicy) Descriptor() ([]byte, []int)
- func (m *SignaturePolicy) GetNOutOf() *SignaturePolicy_NOutOf
- func (m *SignaturePolicy) GetSignedBy() int32
- func (m *SignaturePolicy) GetType() isSignaturePolicy_Type
- func (*SignaturePolicy) ProtoMessage()
- func (m *SignaturePolicy) Reset()
- func (m *SignaturePolicy) String() string
- func (*SignaturePolicy) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type SignaturePolicyEnvelope
- func (*SignaturePolicyEnvelope) Descriptor() ([]byte, []int)
- func (m *SignaturePolicyEnvelope) GetIdentities() []*common1.MSPPrincipal
- func (m *SignaturePolicyEnvelope) GetPolicy() *SignaturePolicy
- func (*SignaturePolicyEnvelope) ProtoMessage()
- func (m *SignaturePolicyEnvelope) Reset()
- func (m *SignaturePolicyEnvelope) String() string
- type SignaturePolicy_NOutOf
- type SignaturePolicy_NOutOf_
- type SignaturePolicy_SignedBy
- type SignedData
- type Status
Constants ¶
This section is empty.
Variables ¶
var BlockMetadataIndex_name = map[int32]string{
0: "SIGNATURES",
1: "LAST_CONFIG",
2: "TRANSACTIONS_FILTER",
3: "ORDERER",
}
var BlockMetadataIndex_value = map[string]int32{
"SIGNATURES": 0,
"LAST_CONFIG": 1,
"TRANSACTIONS_FILTER": 2,
"ORDERER": 3,
}
var HeaderType_name = map[int32]string{
0: "MESSAGE",
1: "CONFIG",
2: "CONFIG_UPDATE",
3: "ENDORSER_TRANSACTION",
4: "ORDERER_TRANSACTION",
5: "DELIVER_SEEK_INFO",
6: "CHAINCODE_PACKAGE",
}
var HeaderType_value = map[string]int32{
"MESSAGE": 0,
"CONFIG": 1,
"CONFIG_UPDATE": 2,
"ENDORSER_TRANSACTION": 3,
"ORDERER_TRANSACTION": 4,
"DELIVER_SEEK_INFO": 5,
"CHAINCODE_PACKAGE": 6,
}
var ImplicitMetaPolicy_Rule_name = map[int32]string{
0: "ANY",
1: "ALL",
2: "MAJORITY",
}
var ImplicitMetaPolicy_Rule_value = map[string]int32{
"ANY": 0,
"ALL": 1,
"MAJORITY": 2,
}
var Policy_PolicyType_name = map[int32]string{
0: "UNKNOWN",
1: "SIGNATURE",
2: "MSP",
3: "IMPLICIT_META",
}
var Policy_PolicyType_value = map[string]int32{
"UNKNOWN": 0,
"SIGNATURE": 1,
"MSP": 2,
"IMPLICIT_META": 3,
}
Functions ¶
This section is empty.
Types ¶
type Block ¶
type Block struct { Header *BlockHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"` Data *BlockData `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` Metadata *BlockMetadata `protobuf:"bytes,3,opt,name=metadata" json:"metadata,omitempty"` }
This is finalized block structure to be shared among the orderer and peer Note that the BlockHeader chains to the previous BlockHeader, and the BlockData hash is embedded in the BlockHeader. This makes it natural and obvious that the Data is included in the hash, but the Metadata is not.
func NewBlock ¶
NewBlock construct a block with no data and no metadata.
func (*Block) GetHeader ¶
func (m *Block) GetHeader() *BlockHeader
func (*Block) GetMetadata ¶
func (m *Block) GetMetadata() *BlockMetadata
type BlockData ¶
type BlockData struct {
Data [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
}
func (*BlockData) Bytes ¶
Bytes returns a deterministically serialized version of the BlockData eventually, this should be replaced with a true Merkle tree construction, but for the moment, we assume a Merkle tree of infinite width (uint32_max) which degrades to a flat hash
func (*BlockData) Hash ¶
Hash returns the hash of the marshaled representation of the block data.
type BlockDataHashingStructure ¶
type BlockDataHashingStructure struct { // width specifies the width of the Merkle tree to use when computing the BlockDataHash // in order to replicate flat hashing, set this width to MAX_UINT32 Width uint32 `protobuf:"varint,1,opt,name=width" json:"width,omitempty"` }
BlockDataHashingStructure is encoded into the configuration transaction as a configuration item of type Chain with a Key of "BlockDataHashingStructure" and a Value of HashingAlgorithm as marshaled protobuf bytes
func (*BlockDataHashingStructure) Descriptor ¶
func (*BlockDataHashingStructure) Descriptor() ([]byte, []int)
func (*BlockDataHashingStructure) ProtoMessage ¶
func (*BlockDataHashingStructure) ProtoMessage()
func (*BlockDataHashingStructure) Reset ¶
func (m *BlockDataHashingStructure) Reset()
func (*BlockDataHashingStructure) String ¶
func (m *BlockDataHashingStructure) String() string
type BlockHeader ¶
type BlockHeader struct { Number uint64 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"` PreviousHash []byte `protobuf:"bytes,2,opt,name=previous_hash,json=previousHash,proto3" json:"previous_hash,omitempty"` DataHash []byte `protobuf:"bytes,3,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"` }
BlockHeader is the element of the block which forms the block chain The block header is hashed using the configured chain hashing algorithm over the ASN.1 encoding of the BlockHeader
func (*BlockHeader) Bytes ¶
func (b *BlockHeader) Bytes() []byte
Bytes returns the ASN.1 marshaled representation of the block header.
func (*BlockHeader) Descriptor ¶
func (*BlockHeader) Descriptor() ([]byte, []int)
func (*BlockHeader) Hash ¶
func (b *BlockHeader) Hash() []byte
Hash returns the hash of the block header. XXX This method will be removed shortly to allow for confgurable hashing algorithms
func (*BlockHeader) ProtoMessage ¶
func (*BlockHeader) ProtoMessage()
func (*BlockHeader) Reset ¶
func (m *BlockHeader) Reset()
func (*BlockHeader) String ¶
func (m *BlockHeader) String() string
type BlockMetadata ¶
type BlockMetadata struct {
Metadata [][]byte `protobuf:"bytes,1,rep,name=metadata,proto3" json:"metadata,omitempty"`
}
func (*BlockMetadata) Descriptor ¶
func (*BlockMetadata) Descriptor() ([]byte, []int)
func (*BlockMetadata) ProtoMessage ¶
func (*BlockMetadata) ProtoMessage()
func (*BlockMetadata) Reset ¶
func (m *BlockMetadata) Reset()
func (*BlockMetadata) String ¶
func (m *BlockMetadata) String() string
type BlockMetadataIndex ¶
type BlockMetadataIndex int32
This enum enlists indexes of the block metadata array
const ( BlockMetadataIndex_SIGNATURES BlockMetadataIndex = 0 BlockMetadataIndex_LAST_CONFIG BlockMetadataIndex = 1 BlockMetadataIndex_TRANSACTIONS_FILTER BlockMetadataIndex = 2 BlockMetadataIndex_ORDERER BlockMetadataIndex = 3 )
func (BlockMetadataIndex) EnumDescriptor ¶
func (BlockMetadataIndex) EnumDescriptor() ([]byte, []int)
func (BlockMetadataIndex) String ¶
func (x BlockMetadataIndex) String() string
type BlockchainInfo ¶
type BlockchainInfo struct { Height uint64 `protobuf:"varint,1,opt,name=height" json:"height,omitempty"` CurrentBlockHash []byte `protobuf:"bytes,2,opt,name=currentBlockHash,proto3" json:"currentBlockHash,omitempty"` PreviousBlockHash []byte `protobuf:"bytes,3,opt,name=previousBlockHash,proto3" json:"previousBlockHash,omitempty"` }
Contains information about the blockchain ledger such as height, current block hash, and previous block hash.
func (*BlockchainInfo) Descriptor ¶
func (*BlockchainInfo) Descriptor() ([]byte, []int)
func (*BlockchainInfo) ProtoMessage ¶
func (*BlockchainInfo) ProtoMessage()
func (*BlockchainInfo) Reset ¶
func (m *BlockchainInfo) Reset()
func (*BlockchainInfo) String ¶
func (m *BlockchainInfo) String() string
type ChannelHeader ¶
type ChannelHeader struct { Type int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` // Version indicates message protocol version Version int32 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"` // Timestamp is the local time when the message was created // by the sender Timestamp *google_protobuf.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp,omitempty"` // Identifier of the channel this message is bound for ChannelId string `protobuf:"bytes,4,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"` // An unique identifier that is used end-to-end. // - set by higher layers such as end user or SDK // - passed to the endorser (which will check for uniqueness) // - as the header is passed along unchanged, it will be // be retrieved by the committer (uniqueness check here as well) // - to be stored in the ledger TxId string `protobuf:"bytes,5,opt,name=tx_id,json=txId" json:"tx_id,omitempty"` // The epoch in which this header was generated, where epoch is defined based on block height // Epoch in which the response has been generated. This field identifies a // logical window of time. A proposal response is accepted by a peer only if // two conditions hold: // 1. the epoch specified in the message is the current epoch // 2. this message has been only seen once during this epoch (i.e. it hasn't // been replayed) Epoch uint64 `protobuf:"varint,6,opt,name=epoch" json:"epoch,omitempty"` // Extension that may be attached based on the header type Extension []byte `protobuf:"bytes,7,opt,name=extension,proto3" json:"extension,omitempty"` }
Header is a generic replay prevention and identity message to include in a signed payload
func (*ChannelHeader) Descriptor ¶
func (*ChannelHeader) Descriptor() ([]byte, []int)
func (*ChannelHeader) GetTimestamp ¶
func (m *ChannelHeader) GetTimestamp() *google_protobuf.Timestamp
func (*ChannelHeader) ProtoMessage ¶
func (*ChannelHeader) ProtoMessage()
func (*ChannelHeader) Reset ¶
func (m *ChannelHeader) Reset()
func (*ChannelHeader) String ¶
func (m *ChannelHeader) String() string
type Config ¶
type Config struct { Sequence uint64 `protobuf:"varint,1,opt,name=sequence" json:"sequence,omitempty"` ChannelGroup *ConfigGroup `protobuf:"bytes,2,opt,name=channel_group,json=channelGroup" json:"channel_group,omitempty"` }
Config represents the config for a particular channel
func (*Config) GetChannelGroup ¶
func (m *Config) GetChannelGroup() *ConfigGroup
type ConfigEnvelope ¶
type ConfigEnvelope struct { Config *Config `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"` LastUpdate *Envelope `protobuf:"bytes,2,opt,name=last_update,json=lastUpdate" json:"last_update,omitempty"` }
ConfigEnvelope is designed to contain _all_ configuration for a chain with no dependency on previous configuration transactions.
It is generated with the following scheme:
- Retrieve the existing configuration
- Note the config properties (ConfigValue, ConfigPolicy, ConfigGroup) to be modified
- Add any intermediate ConfigGroups to the ConfigUpdate.read_set (sparsely)
- Add any additional desired dependencies to ConfigUpdate.read_set (sparsely)
- Modify the config properties, incrementing each version by 1, set them in the ConfigUpdate.write_set Note: any element not modified but specified should already be in the read_set, so may be specified sparsely
- Create ConfigUpdate message and marshal it into ConfigUpdateEnvelope.update and encode the required signatures a) Each signature is of type ConfigSignature b) The ConfigSignature signature is over the concatenation of signature_header and the ConfigUpdate bytes (which includes a ChainHeader)
- Submit new Config for ordering in Envelope signed by submitter a) The Envelope Payload has data set to the marshaled ConfigEnvelope b) The Envelope Payload has a header of type Header.Type.CONFIG_UPDATE
The configuration manager will verify:
- All items in the read_set exist at the read versions
- All items in the write_set at a different version than, or not in, the read_set have been appropriately signed according to their mod_policy
- The new configuration satisfies the ConfigSchema
func (*ConfigEnvelope) Descriptor ¶
func (*ConfigEnvelope) Descriptor() ([]byte, []int)
func (*ConfigEnvelope) GetConfig ¶
func (m *ConfigEnvelope) GetConfig() *Config
func (*ConfigEnvelope) GetLastUpdate ¶
func (m *ConfigEnvelope) GetLastUpdate() *Envelope
func (*ConfigEnvelope) ProtoMessage ¶
func (*ConfigEnvelope) ProtoMessage()
func (*ConfigEnvelope) Reset ¶
func (m *ConfigEnvelope) Reset()
func (*ConfigEnvelope) String ¶
func (m *ConfigEnvelope) String() string
type ConfigGroup ¶
type ConfigGroup struct { Version uint64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` Groups map[string]*ConfigGroup `` /* 132-byte string literal not displayed */ Values map[string]*ConfigValue `` /* 132-byte string literal not displayed */ Policies map[string]*ConfigPolicy `` /* 136-byte string literal not displayed */ ModPolicy string `protobuf:"bytes,5,opt,name=mod_policy,json=modPolicy" json:"mod_policy,omitempty"` }
ConfigGroup is the hierarchical data structure for holding config
func NewConfigGroup ¶
func NewConfigGroup() *ConfigGroup
func (*ConfigGroup) Descriptor ¶
func (*ConfigGroup) Descriptor() ([]byte, []int)
func (*ConfigGroup) GetGroups ¶
func (m *ConfigGroup) GetGroups() map[string]*ConfigGroup
func (*ConfigGroup) GetPolicies ¶
func (m *ConfigGroup) GetPolicies() map[string]*ConfigPolicy
func (*ConfigGroup) GetValues ¶
func (m *ConfigGroup) GetValues() map[string]*ConfigValue
func (*ConfigGroup) ProtoMessage ¶
func (*ConfigGroup) ProtoMessage()
func (*ConfigGroup) Reset ¶
func (m *ConfigGroup) Reset()
func (*ConfigGroup) String ¶
func (m *ConfigGroup) String() string
type ConfigGroupSchema ¶
type ConfigGroupSchema struct { Groups map[string]*ConfigGroupSchema `` /* 132-byte string literal not displayed */ Values map[string]*ConfigValueSchema `` /* 132-byte string literal not displayed */ Policies map[string]*ConfigPolicySchema `` /* 136-byte string literal not displayed */ }
func (*ConfigGroupSchema) Descriptor ¶
func (*ConfigGroupSchema) Descriptor() ([]byte, []int)
func (*ConfigGroupSchema) GetGroups ¶
func (m *ConfigGroupSchema) GetGroups() map[string]*ConfigGroupSchema
func (*ConfigGroupSchema) GetPolicies ¶
func (m *ConfigGroupSchema) GetPolicies() map[string]*ConfigPolicySchema
func (*ConfigGroupSchema) GetValues ¶
func (m *ConfigGroupSchema) GetValues() map[string]*ConfigValueSchema
func (*ConfigGroupSchema) ProtoMessage ¶
func (*ConfigGroupSchema) ProtoMessage()
func (*ConfigGroupSchema) Reset ¶
func (m *ConfigGroupSchema) Reset()
func (*ConfigGroupSchema) String ¶
func (m *ConfigGroupSchema) String() string
type ConfigPolicy ¶
type ConfigPolicy struct { Version uint64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` Policy *Policy `protobuf:"bytes,2,opt,name=policy" json:"policy,omitempty"` ModPolicy string `protobuf:"bytes,3,opt,name=mod_policy,json=modPolicy" json:"mod_policy,omitempty"` }
func (*ConfigPolicy) Descriptor ¶
func (*ConfigPolicy) Descriptor() ([]byte, []int)
func (*ConfigPolicy) GetPolicy ¶
func (m *ConfigPolicy) GetPolicy() *Policy
func (*ConfigPolicy) ProtoMessage ¶
func (*ConfigPolicy) ProtoMessage()
func (*ConfigPolicy) Reset ¶
func (m *ConfigPolicy) Reset()
func (*ConfigPolicy) String ¶
func (m *ConfigPolicy) String() string
type ConfigPolicySchema ¶
type ConfigPolicySchema struct { }
func (*ConfigPolicySchema) Descriptor ¶
func (*ConfigPolicySchema) Descriptor() ([]byte, []int)
func (*ConfigPolicySchema) ProtoMessage ¶
func (*ConfigPolicySchema) ProtoMessage()
func (*ConfigPolicySchema) Reset ¶
func (m *ConfigPolicySchema) Reset()
func (*ConfigPolicySchema) String ¶
func (m *ConfigPolicySchema) String() string
type ConfigSignature ¶
type ConfigSignature struct { SignatureHeader []byte `protobuf:"bytes,1,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"` Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` }
func (*ConfigSignature) Descriptor ¶
func (*ConfigSignature) Descriptor() ([]byte, []int)
func (*ConfigSignature) ProtoMessage ¶
func (*ConfigSignature) ProtoMessage()
func (*ConfigSignature) Reset ¶
func (m *ConfigSignature) Reset()
func (*ConfigSignature) String ¶
func (m *ConfigSignature) String() string
type ConfigUpdate ¶
type ConfigUpdate struct { ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"` ReadSet *ConfigGroup `protobuf:"bytes,2,opt,name=read_set,json=readSet" json:"read_set,omitempty"` WriteSet *ConfigGroup `protobuf:"bytes,3,opt,name=write_set,json=writeSet" json:"write_set,omitempty"` }
ConfigUpdate is used to submit a subset of config and to have the orderer apply to Config it is always submitted inside a ConfigUpdateEnvelope which allows the addition of signatures resulting in a new total configuration. The update is applied as follows:
- The versions from all of the elements in the read_set is verified against the versions in the existing config. If there is a mismatch in the read versions, then the config update fails and is rejected.
- Any elements in the write_set with the same version as the read_set are ignored.
- The corresponding mod_policy for every remaining element in the write_set is collected.
- Each policy is checked against the signatures from the ConfigUpdateEnvelope, any failing to verify are rejected
- The write_set is applied to the Config and the ConfigGroupSchema verifies that the updates were legal
func (*ConfigUpdate) Descriptor ¶
func (*ConfigUpdate) Descriptor() ([]byte, []int)
func (*ConfigUpdate) GetReadSet ¶
func (m *ConfigUpdate) GetReadSet() *ConfigGroup
func (*ConfigUpdate) GetWriteSet ¶
func (m *ConfigUpdate) GetWriteSet() *ConfigGroup
func (*ConfigUpdate) ProtoMessage ¶
func (*ConfigUpdate) ProtoMessage()
func (*ConfigUpdate) Reset ¶
func (m *ConfigUpdate) Reset()
func (*ConfigUpdate) String ¶
func (m *ConfigUpdate) String() string
type ConfigUpdateEnvelope ¶
type ConfigUpdateEnvelope struct { ConfigUpdate []byte `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"` Signatures []*ConfigSignature `protobuf:"bytes,2,rep,name=signatures" json:"signatures,omitempty"` }
func (*ConfigUpdateEnvelope) AsSignedData ¶
func (ce *ConfigUpdateEnvelope) AsSignedData() ([]*SignedData, error)
AsSignedData returns the set of signatures for the ConfigUpdateEnvelope as SignedData or an error indicating why this was not possible
func (*ConfigUpdateEnvelope) Descriptor ¶
func (*ConfigUpdateEnvelope) Descriptor() ([]byte, []int)
func (*ConfigUpdateEnvelope) GetSignatures ¶
func (m *ConfigUpdateEnvelope) GetSignatures() []*ConfigSignature
func (*ConfigUpdateEnvelope) ProtoMessage ¶
func (*ConfigUpdateEnvelope) ProtoMessage()
func (*ConfigUpdateEnvelope) Reset ¶
func (m *ConfigUpdateEnvelope) Reset()
func (*ConfigUpdateEnvelope) String ¶
func (m *ConfigUpdateEnvelope) String() string
type ConfigValue ¶
type ConfigValue struct { Version uint64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` ModPolicy string `protobuf:"bytes,3,opt,name=mod_policy,json=modPolicy" json:"mod_policy,omitempty"` }
ConfigValue represents an individual piece of config data
func (*ConfigValue) Descriptor ¶
func (*ConfigValue) Descriptor() ([]byte, []int)
func (*ConfigValue) ProtoMessage ¶
func (*ConfigValue) ProtoMessage()
func (*ConfigValue) Reset ¶
func (m *ConfigValue) Reset()
func (*ConfigValue) String ¶
func (m *ConfigValue) String() string
type ConfigValueSchema ¶
type ConfigValueSchema struct { }
func (*ConfigValueSchema) Descriptor ¶
func (*ConfigValueSchema) Descriptor() ([]byte, []int)
func (*ConfigValueSchema) ProtoMessage ¶
func (*ConfigValueSchema) ProtoMessage()
func (*ConfigValueSchema) Reset ¶
func (m *ConfigValueSchema) Reset()
func (*ConfigValueSchema) String ¶
func (m *ConfigValueSchema) String() string
type Consortium ¶
type Consortium struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}
Consortium represents the consortium context in which the channel was created
func (*Consortium) Descriptor ¶
func (*Consortium) Descriptor() ([]byte, []int)
func (*Consortium) ProtoMessage ¶
func (*Consortium) ProtoMessage()
func (*Consortium) Reset ¶
func (m *Consortium) Reset()
func (*Consortium) String ¶
func (m *Consortium) String() string
type Envelope ¶
type Envelope struct { // A marshaled Payload Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` // A signature by the creator specified in the Payload header Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` }
Envelope wraps a Payload with a signature so that the message may be authenticated
func (*Envelope) AsSignedData ¶
func (env *Envelope) AsSignedData() ([]*SignedData, error)
AsSignedData returns the signatures for the Envelope as SignedData slice of length 1 or an error indicating why this was not possible
type HashingAlgorithm ¶
type HashingAlgorithm struct { // Currently supported algorithms are: SHAKE256 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` }
HashingAlgorithm is encoded into the configuration transaction as a configuration item of type Chain with a Key of "HashingAlgorithm" and a Value of HashingAlgorithm as marshaled protobuf bytes
func (*HashingAlgorithm) Descriptor ¶
func (*HashingAlgorithm) Descriptor() ([]byte, []int)
func (*HashingAlgorithm) ProtoMessage ¶
func (*HashingAlgorithm) ProtoMessage()
func (*HashingAlgorithm) Reset ¶
func (m *HashingAlgorithm) Reset()
func (*HashingAlgorithm) String ¶
func (m *HashingAlgorithm) String() string
type Header ¶
type HeaderType ¶
type HeaderType int32
const ( HeaderType_MESSAGE HeaderType = 0 HeaderType_CONFIG HeaderType = 1 HeaderType_CONFIG_UPDATE HeaderType = 2 HeaderType_ENDORSER_TRANSACTION HeaderType = 3 HeaderType_ORDERER_TRANSACTION HeaderType = 4 HeaderType_DELIVER_SEEK_INFO HeaderType = 5 HeaderType_CHAINCODE_PACKAGE HeaderType = 6 )
func (HeaderType) EnumDescriptor ¶
func (HeaderType) EnumDescriptor() ([]byte, []int)
func (HeaderType) String ¶
func (x HeaderType) String() string
type ImplicitMetaPolicy ¶
type ImplicitMetaPolicy struct { SubPolicy string `protobuf:"bytes,1,opt,name=sub_policy,json=subPolicy" json:"sub_policy,omitempty"` Rule ImplicitMetaPolicy_Rule `protobuf:"varint,2,opt,name=rule,enum=common.ImplicitMetaPolicy_Rule" json:"rule,omitempty"` }
ImplicitMetaPolicy is a policy type which depends on the hierarchical nature of the configuration It is implicit because the rule is generate implicitly based on the number of sub policies It is meta because it depends only on the result of other policies When evaluated, this policy iterates over all immediate child sub-groups, retrieves the policy of name sub_policy, evaluates the collection and applies the rule. For example, with 4 sub-groups, and a policy name of "foo", ImplicitMetaPolicy retrieves each sub-group, retrieves policy "foo" for each subgroup, evaluates it, and, in the case of ANY 1 satisfied is sufficient, ALL would require 4 signatures, and MAJORITY would require 3 signatures.
func (*ImplicitMetaPolicy) Descriptor ¶
func (*ImplicitMetaPolicy) Descriptor() ([]byte, []int)
func (*ImplicitMetaPolicy) ProtoMessage ¶
func (*ImplicitMetaPolicy) ProtoMessage()
func (*ImplicitMetaPolicy) Reset ¶
func (m *ImplicitMetaPolicy) Reset()
func (*ImplicitMetaPolicy) String ¶
func (m *ImplicitMetaPolicy) String() string
type ImplicitMetaPolicy_Rule ¶
type ImplicitMetaPolicy_Rule int32
const ( ImplicitMetaPolicy_ANY ImplicitMetaPolicy_Rule = 0 ImplicitMetaPolicy_ALL ImplicitMetaPolicy_Rule = 1 ImplicitMetaPolicy_MAJORITY ImplicitMetaPolicy_Rule = 2 )
func (ImplicitMetaPolicy_Rule) EnumDescriptor ¶
func (ImplicitMetaPolicy_Rule) EnumDescriptor() ([]byte, []int)
func (ImplicitMetaPolicy_Rule) String ¶
func (x ImplicitMetaPolicy_Rule) String() string
type LastConfig ¶
type LastConfig struct {
Index uint64 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
}
LastConfig is the encoded value for the Metadata message which is encoded in the LAST_CONFIGURATION block metadata index
func (*LastConfig) Descriptor ¶
func (*LastConfig) Descriptor() ([]byte, []int)
func (*LastConfig) ProtoMessage ¶
func (*LastConfig) ProtoMessage()
func (*LastConfig) Reset ¶
func (m *LastConfig) Reset()
func (*LastConfig) String ¶
func (m *LastConfig) String() string
type Metadata ¶
type Metadata struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` Signatures []*MetadataSignature `protobuf:"bytes,2,rep,name=signatures" json:"signatures,omitempty"` }
Metadata is a common structure to be used to encode block metadata
func (*Metadata) GetSignatures ¶
func (m *Metadata) GetSignatures() []*MetadataSignature
type MetadataSignature ¶
type MetadataSignature struct { SignatureHeader []byte `protobuf:"bytes,1,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"` Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` }
func (*MetadataSignature) Descriptor ¶
func (*MetadataSignature) Descriptor() ([]byte, []int)
func (*MetadataSignature) ProtoMessage ¶
func (*MetadataSignature) ProtoMessage()
func (*MetadataSignature) Reset ¶
func (m *MetadataSignature) Reset()
func (*MetadataSignature) String ¶
func (m *MetadataSignature) String() string
type OrdererAddresses ¶
type OrdererAddresses struct {
Addresses []string `protobuf:"bytes,1,rep,name=addresses" json:"addresses,omitempty"`
}
OrdererAddresses is encoded into the configuration transaction as a configuration item of type Chain with a Key of "OrdererAddresses" and a Value of OrdererAddresses as marshaled protobuf bytes
func (*OrdererAddresses) Descriptor ¶
func (*OrdererAddresses) Descriptor() ([]byte, []int)
func (*OrdererAddresses) ProtoMessage ¶
func (*OrdererAddresses) ProtoMessage()
func (*OrdererAddresses) Reset ¶
func (m *OrdererAddresses) Reset()
func (*OrdererAddresses) String ¶
func (m *OrdererAddresses) String() string
type Payload ¶
type Payload struct { // Header is included to provide identity and prevent replay Header *Header `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"` // Data, the encoding of which is defined by the type in the header Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` }
Payload is the message contents (and header to allow for signing)
type Policy ¶
type Policy struct { Type int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` Policy []byte `protobuf:"bytes,2,opt,name=policy,proto3" json:"policy,omitempty"` }
Policy expresses a policy which the orderer can evaluate, because there has been some desire expressed to support multiple policy engines, this is typed as a oneof for now
type Policy_PolicyType ¶
type Policy_PolicyType int32
const ( Policy_UNKNOWN Policy_PolicyType = 0 Policy_SIGNATURE Policy_PolicyType = 1 Policy_MSP Policy_PolicyType = 2 Policy_IMPLICIT_META Policy_PolicyType = 3 )
func (Policy_PolicyType) EnumDescriptor ¶
func (Policy_PolicyType) EnumDescriptor() ([]byte, []int)
func (Policy_PolicyType) String ¶
func (x Policy_PolicyType) String() string
type Signable ¶
type Signable interface { // AsSignedData returns the set of signatures for a structure as SignedData or an error indicating why this was not possible AsSignedData() ([]*SignedData, error) }
Signable types are those which can map their contents to a set of SignedData
type SignatureHeader ¶
type SignatureHeader struct { // Creator of the message, specified as a certificate chain Creator []byte `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` // Arbitrary number that may only be used once. Can be used to detect replay attacks. Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` }
func (*SignatureHeader) Descriptor ¶
func (*SignatureHeader) Descriptor() ([]byte, []int)
func (*SignatureHeader) ProtoMessage ¶
func (*SignatureHeader) ProtoMessage()
func (*SignatureHeader) Reset ¶
func (m *SignatureHeader) Reset()
func (*SignatureHeader) String ¶
func (m *SignatureHeader) String() string
type SignaturePolicy ¶
type SignaturePolicy struct { // Types that are valid to be assigned to Type: // *SignaturePolicy_SignedBy // *SignaturePolicy_NOutOf_ Type isSignaturePolicy_Type `protobuf_oneof:"Type"` }
SignaturePolicy is a recursive message structure which defines a featherweight DSL for describing policies which are more complicated than 'exactly this signature'. The NOutOf operator is sufficent to express AND as well as OR, as well as of course N out of the following M policies SignedBy implies that the signature is from a valid certificate which is signed by the trusted authority specified in the bytes. This will be the certificate itself for a self-signed certificate and will be the CA for more traditional certificates
func (*SignaturePolicy) Descriptor ¶
func (*SignaturePolicy) Descriptor() ([]byte, []int)
func (*SignaturePolicy) GetNOutOf ¶
func (m *SignaturePolicy) GetNOutOf() *SignaturePolicy_NOutOf
func (*SignaturePolicy) GetSignedBy ¶
func (m *SignaturePolicy) GetSignedBy() int32
func (*SignaturePolicy) GetType ¶
func (m *SignaturePolicy) GetType() isSignaturePolicy_Type
func (*SignaturePolicy) ProtoMessage ¶
func (*SignaturePolicy) ProtoMessage()
func (*SignaturePolicy) Reset ¶
func (m *SignaturePolicy) Reset()
func (*SignaturePolicy) String ¶
func (m *SignaturePolicy) String() string
func (*SignaturePolicy) XXX_OneofFuncs ¶
func (*SignaturePolicy) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})
XXX_OneofFuncs is for the internal use of the proto package.
type SignaturePolicyEnvelope ¶
type SignaturePolicyEnvelope struct { Version int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` Policy *SignaturePolicy `protobuf:"bytes,2,opt,name=policy" json:"policy,omitempty"` Identities []*common1.MSPPrincipal `protobuf:"bytes,3,rep,name=identities" json:"identities,omitempty"` }
SignaturePolicyEnvelope wraps a SignaturePolicy and includes a version for future enhancements
func (*SignaturePolicyEnvelope) Descriptor ¶
func (*SignaturePolicyEnvelope) Descriptor() ([]byte, []int)
func (*SignaturePolicyEnvelope) GetIdentities ¶
func (m *SignaturePolicyEnvelope) GetIdentities() []*common1.MSPPrincipal
func (*SignaturePolicyEnvelope) GetPolicy ¶
func (m *SignaturePolicyEnvelope) GetPolicy() *SignaturePolicy
func (*SignaturePolicyEnvelope) ProtoMessage ¶
func (*SignaturePolicyEnvelope) ProtoMessage()
func (*SignaturePolicyEnvelope) Reset ¶
func (m *SignaturePolicyEnvelope) Reset()
func (*SignaturePolicyEnvelope) String ¶
func (m *SignaturePolicyEnvelope) String() string
type SignaturePolicy_NOutOf ¶
type SignaturePolicy_NOutOf struct { N int32 `protobuf:"varint,1,opt,name=n" json:"n,omitempty"` Policies []*SignaturePolicy `protobuf:"bytes,2,rep,name=policies" json:"policies,omitempty"` }
func (*SignaturePolicy_NOutOf) Descriptor ¶
func (*SignaturePolicy_NOutOf) Descriptor() ([]byte, []int)
func (*SignaturePolicy_NOutOf) GetPolicies ¶
func (m *SignaturePolicy_NOutOf) GetPolicies() []*SignaturePolicy
func (*SignaturePolicy_NOutOf) ProtoMessage ¶
func (*SignaturePolicy_NOutOf) ProtoMessage()
func (*SignaturePolicy_NOutOf) Reset ¶
func (m *SignaturePolicy_NOutOf) Reset()
func (*SignaturePolicy_NOutOf) String ¶
func (m *SignaturePolicy_NOutOf) String() string
type SignaturePolicy_NOutOf_ ¶
type SignaturePolicy_NOutOf_ struct {
NOutOf *SignaturePolicy_NOutOf `protobuf:"bytes,2,opt,name=n_out_of,json=nOutOf,oneof"`
}
type SignaturePolicy_SignedBy ¶
type SignaturePolicy_SignedBy struct {
SignedBy int32 `protobuf:"varint,1,opt,name=signed_by,json=signedBy,oneof"`
}
type SignedData ¶
SignedData is used to represent the general triplet required to verify a signature This is intended to be generic across crypto schemes, while most crypto schemes will include the signing identity and a nonce within the Data, this is left to the crypto implementation