var BlockMetadataIndex_name = map[int32]string{ 0: "SIGNATURES", 1: "LAST_CONFIG", 2: "TRANSACTIONS_FILTER", 3: "ORDERER", 4: "COMMIT_HASH", }
var BlockMetadataIndex_value = map[string]int32{ "SIGNATURES": 0, "LAST_CONFIG": 1, "TRANSACTIONS_FILTER": 2, "ORDERER": 3, "COMMIT_HASH": 4, }
ChannelGroupMap is a slightly hacky way to break the dependency cycle which would be created if the protos/common package imported the protos/orderer or protos/peer packages. These packages instead register a DynamicConfigGroupFactory with the ChannelGroupMap when they are loaded, creating a runtime linkage between the two
var ChannelGroupMap = map[string]DynamicConfigGroupFactory{ "Consortiums": DynamicConsortiumsGroupFactory{}, }
ConfigUpdateIsolatedDataTypes allows other proto packages to register types for the the isolated_data field. This is necessary to break import cycles.
var ConfigUpdateIsolatedDataTypes = map[string]func(string) proto.Message{}
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", 8: "PEER_ADMIN_OPERATION", 9: "TOKEN_TRANSACTION", }
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, "PEER_ADMIN_OPERATION": 8, "TOKEN_TRANSACTION": 9, }
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 ImplicitOrdererPolicy_Rule_name = map[int32]string{ 0: "SMARTBFT", }
var ImplicitOrdererPolicy_Rule_value = map[string]int32{ "SMARTBFT": 0, }
var PayloadDataMap = map[int32]proto.Message{ int32(HeaderType_CONFIG): &ConfigEnvelope{}, int32(HeaderType_ORDERER_TRANSACTION): &Envelope{}, int32(HeaderType_CONFIG_UPDATE): &ConfigUpdateEnvelope{}, int32(HeaderType_MESSAGE): &ConfigValue{}, }
var Policy_PolicyType_name = map[int32]string{ 0: "UNKNOWN", 1: "SIGNATURE", 2: "MSP", 3: "IMPLICIT_META", 4: "IMPLICIT_ORDERER", }
var Policy_PolicyType_value = map[string]int32{ "UNKNOWN": 0, "SIGNATURE": 1, "MSP": 2, "IMPLICIT_META": 3, "IMPLICIT_ORDERER": 4, }
var Status_name = map[int32]string{ 0: "UNKNOWN", 200: "SUCCESS", 400: "BAD_REQUEST", 403: "FORBIDDEN", 404: "NOT_FOUND", 413: "REQUEST_ENTITY_TOO_LARGE", 500: "INTERNAL_SERVER_ERROR", 501: "NOT_IMPLEMENTED", 503: "SERVICE_UNAVAILABLE", }
var Status_value = map[string]int32{ "UNKNOWN": 0, "SUCCESS": 200, "BAD_REQUEST": 400, "FORBIDDEN": 403, "NOT_FOUND": 404, "REQUEST_ENTITY_TOO_LARGE": 413, "INTERNAL_SERVER_ERROR": 500, "NOT_IMPLEMENTED": 501, "SERVICE_UNAVAILABLE": 503, }
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.
type Block struct { Header *BlockHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` Data *BlockData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` Metadata *BlockMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func NewBlock(seqNum uint64, previousHash []byte) *Block
NewBlock construct a block with no data and no metadata.
func (*Block) Descriptor() ([]byte, []int)
func (m *Block) GetData() *BlockData
func (m *Block) GetHeader() *BlockHeader
func (m *Block) GetMetadata() *BlockMetadata
func (*Block) ProtoMessage()
func (m *Block) Reset()
func (m *Block) String() string
func (m *Block) XXX_DiscardUnknown()
func (m *Block) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Block) XXX_Merge(src proto.Message)
func (m *Block) XXX_Size() int
func (m *Block) XXX_Unmarshal(b []byte) error
type BlockData struct { Data [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (b *BlockData) Bytes() []byte
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) Descriptor() ([]byte, []int)
func (m *BlockData) GetData() [][]byte
func (b *BlockData) Hash() []byte
Hash returns the hash of the marshaled representation of the block data.
func (*BlockData) ProtoMessage()
func (m *BlockData) Reset()
func (bd *BlockData) StaticallyOpaqueSliceFieldProto(fieldName string, index int) (proto.Message, error)
func (bd *BlockData) StaticallyOpaqueSliceFields() []string
func (m *BlockData) String() string
func (m *BlockData) XXX_DiscardUnknown()
func (m *BlockData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *BlockData) XXX_Merge(src proto.Message)
func (m *BlockData) XXX_Size() int
func (m *BlockData) XXX_Unmarshal(b []byte) error
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
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,proto3" json:"width,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*BlockDataHashingStructure) Descriptor() ([]byte, []int)
func (m *BlockDataHashingStructure) GetWidth() uint32
func (*BlockDataHashingStructure) ProtoMessage()
func (m *BlockDataHashingStructure) Reset()
func (m *BlockDataHashingStructure) String() string
func (m *BlockDataHashingStructure) XXX_DiscardUnknown()
func (m *BlockDataHashingStructure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *BlockDataHashingStructure) XXX_Merge(src proto.Message)
func (m *BlockDataHashingStructure) XXX_Size() int
func (m *BlockDataHashingStructure) XXX_Unmarshal(b []byte) error
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
type BlockHeader struct { Number uint64 `protobuf:"varint,1,opt,name=number,proto3" 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"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (b *BlockHeader) Bytes() []byte
Bytes returns the ASN.1 marshaled representation of the block header.
func (*BlockHeader) Descriptor() ([]byte, []int)
func (m *BlockHeader) GetDataHash() []byte
func (m *BlockHeader) GetNumber() uint64
func (m *BlockHeader) GetPreviousHash() []byte
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 (m *BlockHeader) Reset()
func (m *BlockHeader) String() string
func (m *BlockHeader) XXX_DiscardUnknown()
func (m *BlockHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *BlockHeader) XXX_Merge(src proto.Message)
func (m *BlockHeader) XXX_Size() int
func (m *BlockHeader) XXX_Unmarshal(b []byte) error
type BlockMetadata struct { Metadata [][]byte `protobuf:"bytes,1,rep,name=metadata,proto3" json:"metadata,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*BlockMetadata) Descriptor() ([]byte, []int)
func (m *BlockMetadata) GetMetadata() [][]byte
func (*BlockMetadata) ProtoMessage()
func (m *BlockMetadata) Reset()
func (m *BlockMetadata) String() string
func (m *BlockMetadata) XXX_DiscardUnknown()
func (m *BlockMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *BlockMetadata) XXX_Merge(src proto.Message)
func (m *BlockMetadata) XXX_Size() int
func (m *BlockMetadata) XXX_Unmarshal(b []byte) error
This enum enlists indexes of the block metadata array
type BlockMetadataIndex int32
const ( BlockMetadataIndex_SIGNATURES BlockMetadataIndex = 0 BlockMetadataIndex_LAST_CONFIG BlockMetadataIndex = 1 BlockMetadataIndex_TRANSACTIONS_FILTER BlockMetadataIndex = 2 BlockMetadataIndex_ORDERER BlockMetadataIndex = 3 BlockMetadataIndex_COMMIT_HASH BlockMetadataIndex = 4 )
func (BlockMetadataIndex) EnumDescriptor() ([]byte, []int)
func (x BlockMetadataIndex) String() string
Contains information about the blockchain ledger such as height, current block hash, and previous block hash.
type BlockchainInfo struct { Height uint64 `protobuf:"varint,1,opt,name=height,proto3" 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"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*BlockchainInfo) Descriptor() ([]byte, []int)
func (m *BlockchainInfo) GetCurrentBlockHash() []byte
func (m *BlockchainInfo) GetHeight() uint64
func (m *BlockchainInfo) GetPreviousBlockHash() []byte
func (*BlockchainInfo) ProtoMessage()
func (m *BlockchainInfo) Reset()
func (m *BlockchainInfo) String() string
func (m *BlockchainInfo) XXX_DiscardUnknown()
func (m *BlockchainInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *BlockchainInfo) XXX_Merge(src proto.Message)
func (m *BlockchainInfo) XXX_Size() int
func (m *BlockchainInfo) XXX_Unmarshal(b []byte) error
Capabilities message defines the capabilities a particular binary must implement for that binary to be able to safely participate in the channel. The capabilities message is defined at the /Channel level, the /Channel/Application level, and the /Channel/Orderer level.
The /Channel level capabilties define capabilities which both the orderer and peer binaries must satisfy. These capabilties might be things like a new MSP type, or a new policy type.
The /Channel/Orderer level capabilties define capabilities which must be supported by the orderer, but which have no bearing on the behavior of the peer. For instance if the orderer changes the logic for how it constructs new channels, only all orderers must agree on the new logic. The peers do not need to be aware of this change as they only interact with the channel after it has been constructed.
Finally, the /Channel/Application level capabilities define capabilities which the peer binary must satisfy, but which have no bearing on the orderer. For instance, if the peer adds a new UTXO transaction type, or changes the chaincode lifecycle requirements, all peers must agree on the new logic. However, orderers never inspect transactions this deeply, and therefore have no need to be aware of the change.
The capabilities strings defined in these messages typically correspond to release binary versions (e.g. "V1.1"), and are used primarilly as a mechanism for a fully upgraded network to switch from one set of logic to a new one.
Although for V1.1, the orderers must be upgraded to V1.1 prior to the rest of the network, going forward, because of the split between the /Channel, /Channel/Orderer and /Channel/Application capabilities. It should be possible for the orderer and application networks to upgrade themselves independently (with the exception of any new capabilities defined at the /Channel level).
type Capabilities struct { Capabilities map[string]*Capability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Capabilities) Descriptor() ([]byte, []int)
func (m *Capabilities) GetCapabilities() map[string]*Capability
func (*Capabilities) ProtoMessage()
func (m *Capabilities) Reset()
func (m *Capabilities) String() string
func (m *Capabilities) XXX_DiscardUnknown()
func (m *Capabilities) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Capabilities) XXX_Merge(src proto.Message)
func (m *Capabilities) XXX_Size() int
func (m *Capabilities) XXX_Unmarshal(b []byte) error
Capability is an empty message for the time being. It is defined as a protobuf message rather than a constant, so that we may extend capabilities with other fields if the need arises in the future. For the time being, a capability being in the capabilities map requires that that capability be supported.
type Capability struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Capability) Descriptor() ([]byte, []int)
func (*Capability) ProtoMessage()
func (m *Capability) Reset()
func (m *Capability) String() string
func (m *Capability) XXX_DiscardUnknown()
func (m *Capability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Capability) XXX_Merge(src proto.Message)
func (m *Capability) XXX_Size() int
func (m *Capability) XXX_Unmarshal(b []byte) error
Header is a generic replay prevention and identity message to include in a signed payload
type ChannelHeader struct { Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` // Version indicates message protocol version Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` // Timestamp is the local time when the message was created // by the sender Timestamp *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Identifier of the channel this message is bound for ChannelId string `protobuf:"bytes,4,opt,name=channel_id,json=channelId,proto3" 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,proto3" 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,proto3" 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"` // If mutual TLS is employed, this represents // the hash of the client's TLS certificate TlsCertHash []byte `protobuf:"bytes,8,opt,name=tls_cert_hash,json=tlsCertHash,proto3" json:"tls_cert_hash,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ChannelHeader) Descriptor() ([]byte, []int)
func (m *ChannelHeader) GetChannelId() string
func (m *ChannelHeader) GetEpoch() uint64
func (m *ChannelHeader) GetExtension() []byte
func (m *ChannelHeader) GetTimestamp() *timestamp.Timestamp
func (m *ChannelHeader) GetTlsCertHash() []byte
func (m *ChannelHeader) GetTxId() string
func (m *ChannelHeader) GetType() int32
func (m *ChannelHeader) GetVersion() int32
func (*ChannelHeader) ProtoMessage()
func (m *ChannelHeader) Reset()
func (m *ChannelHeader) String() string
func (m *ChannelHeader) XXX_DiscardUnknown()
func (m *ChannelHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ChannelHeader) XXX_Merge(src proto.Message)
func (m *ChannelHeader) XXX_Size() int
func (m *ChannelHeader) XXX_Unmarshal(b []byte) error
CollectionConfig defines the configuration of a collection object; it currently contains a single, static type. Dynamic collections are deferred.
type CollectionConfig struct { // Types that are valid to be assigned to Payload: // *CollectionConfig_StaticCollectionConfig Payload isCollectionConfig_Payload `protobuf_oneof:"payload"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*CollectionConfig) Descriptor() ([]byte, []int)
func (m *CollectionConfig) GetPayload() isCollectionConfig_Payload
func (m *CollectionConfig) GetStaticCollectionConfig() *StaticCollectionConfig
func (*CollectionConfig) ProtoMessage()
func (m *CollectionConfig) Reset()
func (m *CollectionConfig) String() string
func (m *CollectionConfig) XXX_DiscardUnknown()
func (m *CollectionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *CollectionConfig) XXX_Merge(src proto.Message)
func (*CollectionConfig) 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.
func (m *CollectionConfig) XXX_Size() int
func (m *CollectionConfig) XXX_Unmarshal(b []byte) error
CollectionConfigPackage represents an array of CollectionConfig messages; the extra struct is required because repeated oneof is forbidden by the protobuf syntax
type CollectionConfigPackage struct { Config []*CollectionConfig `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*CollectionConfigPackage) Descriptor() ([]byte, []int)
func (m *CollectionConfigPackage) GetConfig() []*CollectionConfig
func (*CollectionConfigPackage) ProtoMessage()
func (m *CollectionConfigPackage) Reset()
func (m *CollectionConfigPackage) String() string
func (m *CollectionConfigPackage) XXX_DiscardUnknown()
func (m *CollectionConfigPackage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *CollectionConfigPackage) XXX_Merge(src proto.Message)
func (m *CollectionConfigPackage) XXX_Size() int
func (m *CollectionConfigPackage) XXX_Unmarshal(b []byte) error
type CollectionConfig_StaticCollectionConfig struct { StaticCollectionConfig *StaticCollectionConfig `protobuf:"bytes,1,opt,name=static_collection_config,json=staticCollectionConfig,proto3,oneof"` }
CollectionCriteria defines an element of a private data that corresponds to a certain transaction and collection
type CollectionCriteria struct { Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"` TxId string `protobuf:"bytes,2,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"` Namespace string `protobuf:"bytes,4,opt,name=namespace,proto3" json:"namespace,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*CollectionCriteria) Descriptor() ([]byte, []int)
func (m *CollectionCriteria) GetChannel() string
func (m *CollectionCriteria) GetCollection() string
func (m *CollectionCriteria) GetNamespace() string
func (m *CollectionCriteria) GetTxId() string
func (*CollectionCriteria) ProtoMessage()
func (m *CollectionCriteria) Reset()
func (m *CollectionCriteria) String() string
func (m *CollectionCriteria) XXX_DiscardUnknown()
func (m *CollectionCriteria) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *CollectionCriteria) XXX_Merge(src proto.Message)
func (m *CollectionCriteria) XXX_Size() int
func (m *CollectionCriteria) XXX_Unmarshal(b []byte) error
Collection policy configuration. Initially, the configuration can only contain a SignaturePolicy. In the future, the SignaturePolicy may be a more general Policy. Instead of containing the actual policy, the configuration may in the future contain a string reference to a policy.
type CollectionPolicyConfig struct { // Types that are valid to be assigned to Payload: // *CollectionPolicyConfig_SignaturePolicy Payload isCollectionPolicyConfig_Payload `protobuf_oneof:"payload"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*CollectionPolicyConfig) Descriptor() ([]byte, []int)
func (m *CollectionPolicyConfig) GetPayload() isCollectionPolicyConfig_Payload
func (m *CollectionPolicyConfig) GetSignaturePolicy() *SignaturePolicyEnvelope
func (*CollectionPolicyConfig) ProtoMessage()
func (m *CollectionPolicyConfig) Reset()
func (m *CollectionPolicyConfig) String() string
func (m *CollectionPolicyConfig) XXX_DiscardUnknown()
func (m *CollectionPolicyConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *CollectionPolicyConfig) XXX_Merge(src proto.Message)
func (*CollectionPolicyConfig) 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.
func (m *CollectionPolicyConfig) XXX_Size() int
func (m *CollectionPolicyConfig) XXX_Unmarshal(b []byte) error
type CollectionPolicyConfig_SignaturePolicy struct { SignaturePolicy *SignaturePolicyEnvelope `protobuf:"bytes,1,opt,name=signature_policy,json=signaturePolicy,proto3,oneof"` }
Config represents the config for a particular channel
type Config struct { Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"` ChannelGroup *ConfigGroup `protobuf:"bytes,2,opt,name=channel_group,json=channelGroup,proto3" json:"channel_group,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Config) Descriptor() ([]byte, []int)
func (c *Config) DynamicFieldProto(name string, base proto.Message) (proto.Message, error)
func (c *Config) DynamicFields() []string
func (m *Config) GetChannelGroup() *ConfigGroup
func (m *Config) GetSequence() uint64
func (*Config) ProtoMessage()
func (m *Config) Reset()
func (m *Config) String() string
func (m *Config) XXX_DiscardUnknown()
func (m *Config) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Config) XXX_Merge(src proto.Message)
func (m *Config) XXX_Size() int
func (m *Config) XXX_Unmarshal(b []byte) error
ConfigEnvelope is designed to contain _all_ configuration for a chain with no dependency on previous configuration transactions.
It is generated with the following scheme:
1. Retrieve the existing configuration 2. Note the config properties (ConfigValue, ConfigPolicy, ConfigGroup) to be modified 3. Add any intermediate ConfigGroups to the ConfigUpdate.read_set (sparsely) 4. Add any additional desired dependencies to ConfigUpdate.read_set (sparsely) 5. 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 6. 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) 5. 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:
1. All items in the read_set exist at the read versions 2. 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 3. The new configuration satisfies the ConfigSchema
type ConfigEnvelope struct { Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` LastUpdate *Envelope `protobuf:"bytes,2,opt,name=last_update,json=lastUpdate,proto3" json:"last_update,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ConfigEnvelope) Descriptor() ([]byte, []int)
func (m *ConfigEnvelope) GetConfig() *Config
func (m *ConfigEnvelope) GetLastUpdate() *Envelope
func (*ConfigEnvelope) ProtoMessage()
func (m *ConfigEnvelope) Reset()
func (m *ConfigEnvelope) String() string
func (m *ConfigEnvelope) XXX_DiscardUnknown()
func (m *ConfigEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigEnvelope) XXX_Merge(src proto.Message)
func (m *ConfigEnvelope) XXX_Size() int
func (m *ConfigEnvelope) XXX_Unmarshal(b []byte) error
ConfigGroup is the hierarchical data structure for holding config
type ConfigGroup struct { Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Groups map[string]*ConfigGroup `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Values map[string]*ConfigValue `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Policies map[string]*ConfigPolicy `protobuf:"bytes,4,rep,name=policies,proto3" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` ModPolicy string `protobuf:"bytes,5,opt,name=mod_policy,json=modPolicy,proto3" json:"mod_policy,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func NewConfigGroup() *ConfigGroup
func (*ConfigGroup) Descriptor() ([]byte, []int)
func (cg *ConfigGroup) DynamicMapFields() []string
func (m *ConfigGroup) GetGroups() map[string]*ConfigGroup
func (m *ConfigGroup) GetModPolicy() string
func (m *ConfigGroup) GetPolicies() map[string]*ConfigPolicy
func (m *ConfigGroup) GetValues() map[string]*ConfigValue
func (m *ConfigGroup) GetVersion() uint64
func (*ConfigGroup) ProtoMessage()
func (m *ConfigGroup) Reset()
func (m *ConfigGroup) String() string
func (cg *ConfigGroup) Underlying() proto.Message
func (m *ConfigGroup) XXX_DiscardUnknown()
func (m *ConfigGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigGroup) XXX_Merge(src proto.Message)
func (m *ConfigGroup) XXX_Size() int
func (m *ConfigGroup) XXX_Unmarshal(b []byte) error
type ConfigGroupSchema struct { Groups map[string]*ConfigGroupSchema `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Values map[string]*ConfigValueSchema `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Policies map[string]*ConfigPolicySchema `protobuf:"bytes,3,rep,name=policies,proto3" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
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
func (m *ConfigGroupSchema) XXX_DiscardUnknown()
func (m *ConfigGroupSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigGroupSchema) XXX_Merge(src proto.Message)
func (m *ConfigGroupSchema) XXX_Size() int
func (m *ConfigGroupSchema) XXX_Unmarshal(b []byte) error
type ConfigPolicy struct { Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Policy *Policy `protobuf:"bytes,2,opt,name=policy,proto3" json:"policy,omitempty"` ModPolicy string `protobuf:"bytes,3,opt,name=mod_policy,json=modPolicy,proto3" json:"mod_policy,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ConfigPolicy) Descriptor() ([]byte, []int)
func (m *ConfigPolicy) GetModPolicy() string
func (m *ConfigPolicy) GetPolicy() *Policy
func (m *ConfigPolicy) GetVersion() uint64
func (*ConfigPolicy) ProtoMessage()
func (m *ConfigPolicy) Reset()
func (m *ConfigPolicy) String() string
func (m *ConfigPolicy) XXX_DiscardUnknown()
func (m *ConfigPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigPolicy) XXX_Merge(src proto.Message)
func (m *ConfigPolicy) XXX_Size() int
func (m *ConfigPolicy) XXX_Unmarshal(b []byte) error
type ConfigPolicySchema struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ConfigPolicySchema) Descriptor() ([]byte, []int)
func (*ConfigPolicySchema) ProtoMessage()
func (m *ConfigPolicySchema) Reset()
func (m *ConfigPolicySchema) String() string
func (m *ConfigPolicySchema) XXX_DiscardUnknown()
func (m *ConfigPolicySchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigPolicySchema) XXX_Merge(src proto.Message)
func (m *ConfigPolicySchema) XXX_Size() int
func (m *ConfigPolicySchema) XXX_Unmarshal(b []byte) error
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"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ConfigSignature) Descriptor() ([]byte, []int)
func (m *ConfigSignature) GetSignature() []byte
func (m *ConfigSignature) GetSignatureHeader() []byte
func (*ConfigSignature) ProtoMessage()
func (m *ConfigSignature) Reset()
func (cs *ConfigSignature) StaticallyOpaqueFieldProto(name string) (proto.Message, error)
func (cs *ConfigSignature) StaticallyOpaqueFields() []string
func (m *ConfigSignature) String() string
func (m *ConfigSignature) XXX_DiscardUnknown()
func (m *ConfigSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigSignature) XXX_Merge(src proto.Message)
func (m *ConfigSignature) XXX_Size() int
func (m *ConfigSignature) XXX_Unmarshal(b []byte) error
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: 1. 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.
2. Any elements in the write_set with the same version as the read_set are ignored. 3. The corresponding mod_policy for every remaining element in the write_set is collected. 4. Each policy is checked against the signatures from the ConfigUpdateEnvelope, any failing to verify are rejected 5. The write_set is applied to the Config and the ConfigGroupSchema verifies that the updates were legal
type ConfigUpdate struct { ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` ReadSet *ConfigGroup `protobuf:"bytes,2,opt,name=read_set,json=readSet,proto3" json:"read_set,omitempty"` WriteSet *ConfigGroup `protobuf:"bytes,3,opt,name=write_set,json=writeSet,proto3" json:"write_set,omitempty"` IsolatedData map[string][]byte `protobuf:"bytes,5,rep,name=isolated_data,json=isolatedData,proto3" json:"isolated_data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ConfigUpdate) Descriptor() ([]byte, []int)
func (c *ConfigUpdate) DynamicFieldProto(name string, base proto.Message) (proto.Message, error)
func (c *ConfigUpdate) DynamicFields() []string
func (m *ConfigUpdate) GetChannelId() string
func (m *ConfigUpdate) GetIsolatedData() map[string][]byte
func (m *ConfigUpdate) GetReadSet() *ConfigGroup
func (m *ConfigUpdate) GetWriteSet() *ConfigGroup
func (*ConfigUpdate) ProtoMessage()
func (m *ConfigUpdate) Reset()
func (c *ConfigUpdate) StaticallyOpaqueMapFieldProto(name string, key string) (proto.Message, error)
func (c *ConfigUpdate) StaticallyOpaqueMapFields() []string
func (m *ConfigUpdate) String() string
func (m *ConfigUpdate) XXX_DiscardUnknown()
func (m *ConfigUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigUpdate) XXX_Merge(src proto.Message)
func (m *ConfigUpdate) XXX_Size() int
func (m *ConfigUpdate) XXX_Unmarshal(b []byte) error
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,proto3" json:"signatures,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
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() ([]byte, []int)
func (m *ConfigUpdateEnvelope) GetConfigUpdate() []byte
func (m *ConfigUpdateEnvelope) GetSignatures() []*ConfigSignature
func (*ConfigUpdateEnvelope) ProtoMessage()
func (m *ConfigUpdateEnvelope) Reset()
func (cue *ConfigUpdateEnvelope) StaticallyOpaqueFieldProto(name string) (proto.Message, error)
func (cue *ConfigUpdateEnvelope) StaticallyOpaqueFields() []string
func (m *ConfigUpdateEnvelope) String() string
func (m *ConfigUpdateEnvelope) XXX_DiscardUnknown()
func (m *ConfigUpdateEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigUpdateEnvelope) XXX_Merge(src proto.Message)
func (m *ConfigUpdateEnvelope) XXX_Size() int
func (m *ConfigUpdateEnvelope) XXX_Unmarshal(b []byte) error
ConfigValue represents an individual piece of config data
type ConfigValue struct { Version uint64 `protobuf:"varint,1,opt,name=version,proto3" 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,proto3" json:"mod_policy,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ConfigValue) Descriptor() ([]byte, []int)
func (m *ConfigValue) GetModPolicy() string
func (m *ConfigValue) GetValue() []byte
func (m *ConfigValue) GetVersion() uint64
func (*ConfigValue) ProtoMessage()
func (m *ConfigValue) Reset()
func (m *ConfigValue) String() string
func (cv *ConfigValue) Underlying() proto.Message
func (cv *ConfigValue) VariablyOpaqueFields() []string
func (m *ConfigValue) XXX_DiscardUnknown()
func (m *ConfigValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigValue) XXX_Merge(src proto.Message)
func (m *ConfigValue) XXX_Size() int
func (m *ConfigValue) XXX_Unmarshal(b []byte) error
type ConfigValueSchema struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ConfigValueSchema) Descriptor() ([]byte, []int)
func (*ConfigValueSchema) ProtoMessage()
func (m *ConfigValueSchema) Reset()
func (m *ConfigValueSchema) String() string
func (m *ConfigValueSchema) XXX_DiscardUnknown()
func (m *ConfigValueSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ConfigValueSchema) XXX_Merge(src proto.Message)
func (m *ConfigValueSchema) XXX_Size() int
func (m *ConfigValueSchema) XXX_Unmarshal(b []byte) error
Consortium represents the consortium context in which the channel was created
type Consortium struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Consortium) Descriptor() ([]byte, []int)
func (m *Consortium) GetName() string
func (*Consortium) ProtoMessage()
func (m *Consortium) Reset()
func (m *Consortium) String() string
func (m *Consortium) XXX_DiscardUnknown()
func (m *Consortium) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Consortium) XXX_Merge(src proto.Message)
func (m *Consortium) XXX_Size() int
func (m *Consortium) XXX_Unmarshal(b []byte) error
type DynamicChannelConfigValue struct { *ConfigValue // contains filtered or unexported fields }
func (dccv *DynamicChannelConfigValue) Underlying() proto.Message
func (dccv *DynamicChannelConfigValue) VariablyOpaqueFieldProto(name string) (proto.Message, error)
type DynamicChannelGroup struct { *ConfigGroup }
func (dcg *DynamicChannelGroup) DynamicMapFieldProto(name string, key string, base proto.Message) (proto.Message, error)
type DynamicConfigGroupFactory interface { DynamicConfigGroup(cg *ConfigGroup) proto.Message }
type DynamicConsortiumConfigValue struct { *ConfigValue // contains filtered or unexported fields }
func (dccv *DynamicConsortiumConfigValue) VariablyOpaqueFieldProto(name string) (proto.Message, error)
type DynamicConsortiumGroup struct { *ConfigGroup }
func (dcg *DynamicConsortiumGroup) DynamicMapFieldProto(name string, key string, base proto.Message) (proto.Message, error)
func (dcg *DynamicConsortiumGroup) Underlying() proto.Message
type DynamicConsortiumOrgConfigValue struct { *ConfigValue // contains filtered or unexported fields }
func (dcocv *DynamicConsortiumOrgConfigValue) VariablyOpaqueFieldProto(name string) (proto.Message, error)
type DynamicConsortiumOrgGroup struct { *ConfigGroup }
func (dcg *DynamicConsortiumOrgGroup) DynamicMapFieldProto(name string, key string, base proto.Message) (proto.Message, error)
type DynamicConsortiumsGroup struct { *ConfigGroup }
func (dcg *DynamicConsortiumsGroup) DynamicMapFieldProto(name string, key string, base proto.Message) (proto.Message, error)
func (dcg *DynamicConsortiumsGroup) Underlying() proto.Message
type DynamicConsortiumsGroupFactory struct{}
func (dogf DynamicConsortiumsGroupFactory) DynamicConfigGroup(cg *ConfigGroup) proto.Message
Envelope wraps a Payload with a signature so that the message may be authenticated
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"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
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
func (*Envelope) Descriptor() ([]byte, []int)
func (m *Envelope) GetPayload() []byte
func (m *Envelope) GetSignature() []byte
func (*Envelope) ProtoMessage()
func (m *Envelope) Reset()
func (e *Envelope) StaticallyOpaqueFieldProto(name string) (proto.Message, error)
func (e *Envelope) StaticallyOpaqueFields() []string
func (m *Envelope) String() string
func (m *Envelope) XXX_DiscardUnknown()
func (m *Envelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Envelope) XXX_Merge(src proto.Message)
func (m *Envelope) XXX_Size() int
func (m *Envelope) XXX_Unmarshal(b []byte) error
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
type HashingAlgorithm struct { // Currently supported algorithms are: SHAKE256 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*HashingAlgorithm) Descriptor() ([]byte, []int)
func (m *HashingAlgorithm) GetName() string
func (*HashingAlgorithm) ProtoMessage()
func (m *HashingAlgorithm) Reset()
func (m *HashingAlgorithm) String() string
func (m *HashingAlgorithm) XXX_DiscardUnknown()
func (m *HashingAlgorithm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *HashingAlgorithm) XXX_Merge(src proto.Message)
func (m *HashingAlgorithm) XXX_Size() int
func (m *HashingAlgorithm) XXX_Unmarshal(b []byte) error
type Header struct { ChannelHeader []byte `protobuf:"bytes,1,opt,name=channel_header,json=channelHeader,proto3" json:"channel_header,omitempty"` SignatureHeader []byte `protobuf:"bytes,2,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Header) Descriptor() ([]byte, []int)
func (m *Header) GetChannelHeader() []byte
func (m *Header) GetSignatureHeader() []byte
func (*Header) ProtoMessage()
func (m *Header) Reset()
func (h *Header) StaticallyOpaqueFieldProto(name string) (proto.Message, error)
func (h *Header) StaticallyOpaqueFields() []string
func (m *Header) String() string
func (m *Header) XXX_DiscardUnknown()
func (m *Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Header) XXX_Merge(src proto.Message)
func (m *Header) XXX_Size() int
func (m *Header) XXX_Unmarshal(b []byte) error
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 HeaderType_PEER_ADMIN_OPERATION HeaderType = 8 HeaderType_TOKEN_TRANSACTION HeaderType = 9 )
func (HeaderType) EnumDescriptor() ([]byte, []int)
func (x HeaderType) String() string
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.
type ImplicitMetaPolicy struct { SubPolicy string `protobuf:"bytes,1,opt,name=sub_policy,json=subPolicy,proto3" json:"sub_policy,omitempty"` Rule ImplicitMetaPolicy_Rule `protobuf:"varint,2,opt,name=rule,proto3,enum=common.ImplicitMetaPolicy_Rule" json:"rule,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ImplicitMetaPolicy) Descriptor() ([]byte, []int)
func (m *ImplicitMetaPolicy) GetRule() ImplicitMetaPolicy_Rule
func (m *ImplicitMetaPolicy) GetSubPolicy() string
func (*ImplicitMetaPolicy) ProtoMessage()
func (m *ImplicitMetaPolicy) Reset()
func (m *ImplicitMetaPolicy) String() string
func (m *ImplicitMetaPolicy) XXX_DiscardUnknown()
func (m *ImplicitMetaPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ImplicitMetaPolicy) XXX_Merge(src proto.Message)
func (m *ImplicitMetaPolicy) XXX_Size() int
func (m *ImplicitMetaPolicy) XXX_Unmarshal(b []byte) error
type ImplicitMetaPolicy_Rule int32
const ( ImplicitMetaPolicy_ANY ImplicitMetaPolicy_Rule = 0 ImplicitMetaPolicy_ALL ImplicitMetaPolicy_Rule = 1 ImplicitMetaPolicy_MAJORITY ImplicitMetaPolicy_Rule = 2 )
func (ImplicitMetaPolicy_Rule) EnumDescriptor() ([]byte, []int)
func (x ImplicitMetaPolicy_Rule) String() string
ImplicitOrdererPolicy is a policy for block validation when the ordering service consists of a cluster of orderers running a distributed consensus algorithm.
In the SmartBFT algorithm it is required that (at least) Q out of N orderers sign the block. (e.g. When N=3F+1, Q=2F+1). The policy checks the validity of at least Q signatures, and in addition, makes sure that each signer's certificate is in the last config block Consenters set.
This makes sure that the signature comes from the actual node that participated in the consensus algorithm, not only that it has a valid role in the organization that issued the certificate.
type ImplicitOrdererPolicy struct { Rule ImplicitOrdererPolicy_Rule `protobuf:"varint,1,opt,name=rule,proto3,enum=common.ImplicitOrdererPolicy_Rule" json:"rule,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ImplicitOrdererPolicy) Descriptor() ([]byte, []int)
func (m *ImplicitOrdererPolicy) GetRule() ImplicitOrdererPolicy_Rule
func (*ImplicitOrdererPolicy) ProtoMessage()
func (m *ImplicitOrdererPolicy) Reset()
func (m *ImplicitOrdererPolicy) String() string
func (m *ImplicitOrdererPolicy) XXX_DiscardUnknown()
func (m *ImplicitOrdererPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *ImplicitOrdererPolicy) XXX_Merge(src proto.Message)
func (m *ImplicitOrdererPolicy) XXX_Size() int
func (m *ImplicitOrdererPolicy) XXX_Unmarshal(b []byte) error
type ImplicitOrdererPolicy_Rule int32
const ( ImplicitOrdererPolicy_SMARTBFT ImplicitOrdererPolicy_Rule = 0 )
func (ImplicitOrdererPolicy_Rule) EnumDescriptor() ([]byte, []int)
func (x ImplicitOrdererPolicy_Rule) String() string
LastConfig is the encoded value for the Metadata message which is encoded in the LAST_CONFIGURATION block metadata index
type LastConfig struct { Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*LastConfig) Descriptor() ([]byte, []int)
func (m *LastConfig) GetIndex() uint64
func (*LastConfig) ProtoMessage()
func (m *LastConfig) Reset()
func (m *LastConfig) String() string
func (m *LastConfig) XXX_DiscardUnknown()
func (m *LastConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *LastConfig) XXX_Merge(src proto.Message)
func (m *LastConfig) XXX_Size() int
func (m *LastConfig) XXX_Unmarshal(b []byte) error
Metadata is a common structure to be used to encode block metadata
type Metadata struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` Signatures []*MetadataSignature `protobuf:"bytes,2,rep,name=signatures,proto3" json:"signatures,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Metadata) Descriptor() ([]byte, []int)
func (m *Metadata) GetSignatures() []*MetadataSignature
func (m *Metadata) GetValue() []byte
func (*Metadata) ProtoMessage()
func (m *Metadata) Reset()
func (m *Metadata) String() string
func (m *Metadata) XXX_DiscardUnknown()
func (m *Metadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Metadata) XXX_Merge(src proto.Message)
func (m *Metadata) XXX_Size() int
func (m *Metadata) XXX_Unmarshal(b []byte) error
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"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*MetadataSignature) Descriptor() ([]byte, []int)
func (m *MetadataSignature) GetSignature() []byte
func (m *MetadataSignature) GetSignatureHeader() []byte
func (*MetadataSignature) ProtoMessage()
func (m *MetadataSignature) Reset()
func (m *MetadataSignature) String() string
func (m *MetadataSignature) XXX_DiscardUnknown()
func (m *MetadataSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *MetadataSignature) XXX_Merge(src proto.Message)
func (m *MetadataSignature) XXX_Size() int
func (m *MetadataSignature) XXX_Unmarshal(b []byte) error
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
type OrdererAddresses struct { Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*OrdererAddresses) Descriptor() ([]byte, []int)
func (m *OrdererAddresses) GetAddresses() []string
func (*OrdererAddresses) ProtoMessage()
func (m *OrdererAddresses) Reset()
func (m *OrdererAddresses) String() string
func (m *OrdererAddresses) XXX_DiscardUnknown()
func (m *OrdererAddresses) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *OrdererAddresses) XXX_Merge(src proto.Message)
func (m *OrdererAddresses) XXX_Size() int
func (m *OrdererAddresses) XXX_Unmarshal(b []byte) error
OrdererBlockMetadata defines metadata that is set by the ordering service.
type OrdererBlockMetadata struct { LastConfig *LastConfig `protobuf:"bytes,1,opt,name=last_config,json=lastConfig,proto3" json:"last_config,omitempty"` ConsenterMetadata []byte `protobuf:"bytes,2,opt,name=consenter_metadata,json=consenterMetadata,proto3" json:"consenter_metadata,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*OrdererBlockMetadata) Descriptor() ([]byte, []int)
func (m *OrdererBlockMetadata) GetConsenterMetadata() []byte
func (m *OrdererBlockMetadata) GetLastConfig() *LastConfig
func (*OrdererBlockMetadata) ProtoMessage()
func (m *OrdererBlockMetadata) Reset()
func (m *OrdererBlockMetadata) String() string
func (m *OrdererBlockMetadata) XXX_DiscardUnknown()
func (m *OrdererBlockMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *OrdererBlockMetadata) XXX_Merge(src proto.Message)
func (m *OrdererBlockMetadata) XXX_Size() int
func (m *OrdererBlockMetadata) XXX_Unmarshal(b []byte) error
Payload is the message contents (and header to allow for signing)
type Payload struct { // Header is included to provide identity and prevent replay Header *Header `protobuf:"bytes,1,opt,name=header,proto3" 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"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Payload) Descriptor() ([]byte, []int)
func (m *Payload) GetData() []byte
func (m *Payload) GetHeader() *Header
func (*Payload) ProtoMessage()
func (m *Payload) Reset()
func (m *Payload) String() string
func (p *Payload) VariablyOpaqueFieldProto(name string) (proto.Message, error)
func (p *Payload) VariablyOpaqueFields() []string
func (m *Payload) XXX_DiscardUnknown()
func (m *Payload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Payload) XXX_Merge(src proto.Message)
func (m *Payload) XXX_Size() int
func (m *Payload) XXX_Unmarshal(b []byte) error
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 struct { Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Policy) Descriptor() ([]byte, []int)
func (m *Policy) GetType() int32
func (m *Policy) GetValue() []byte
func (*Policy) ProtoMessage()
func (m *Policy) Reset()
func (m *Policy) String() string
func (p *Policy) VariablyOpaqueFieldProto(name string) (proto.Message, error)
func (p *Policy) VariablyOpaqueFields() []string
func (m *Policy) XXX_DiscardUnknown()
func (m *Policy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *Policy) XXX_Merge(src proto.Message)
func (m *Policy) XXX_Size() int
func (m *Policy) XXX_Unmarshal(b []byte) error
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 Policy_IMPLICIT_ORDERER Policy_PolicyType = 4 )
func (Policy_PolicyType) EnumDescriptor() ([]byte, []int)
func (x Policy_PolicyType) String() string
Signable types are those which can map their contents to a set of SignedData
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) }
type SignatureHeader struct { // Creator of the message, a marshaled msp.SerializedIdentity 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"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*SignatureHeader) Descriptor() ([]byte, []int)
func (m *SignatureHeader) GetCreator() []byte
func (m *SignatureHeader) GetNonce() []byte
func (*SignatureHeader) ProtoMessage()
func (m *SignatureHeader) Reset()
func (sh *SignatureHeader) StaticallyOpaqueFieldProto(name string) (proto.Message, error)
func (sh *SignatureHeader) StaticallyOpaqueFields() []string
func (m *SignatureHeader) String() string
func (m *SignatureHeader) XXX_DiscardUnknown()
func (m *SignatureHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *SignatureHeader) XXX_Merge(src proto.Message)
func (m *SignatureHeader) XXX_Size() int
func (m *SignatureHeader) XXX_Unmarshal(b []byte) error
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
type SignaturePolicy struct { // Types that are valid to be assigned to Type: // *SignaturePolicy_SignedBy // *SignaturePolicy_NOutOf_ Type isSignaturePolicy_Type `protobuf_oneof:"Type"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
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 (m *SignaturePolicy) XXX_DiscardUnknown()
func (m *SignaturePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *SignaturePolicy) XXX_Merge(src proto.Message)
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.
func (m *SignaturePolicy) XXX_Size() int
func (m *SignaturePolicy) XXX_Unmarshal(b []byte) error
SignaturePolicyEnvelope wraps a SignaturePolicy and includes a version for future enhancements
type SignaturePolicyEnvelope struct { Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Rule *SignaturePolicy `protobuf:"bytes,2,opt,name=rule,proto3" json:"rule,omitempty"` Identities []*msp.MSPPrincipal `protobuf:"bytes,3,rep,name=identities,proto3" json:"identities,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*SignaturePolicyEnvelope) Descriptor() ([]byte, []int)
func (m *SignaturePolicyEnvelope) GetIdentities() []*msp.MSPPrincipal
func (m *SignaturePolicyEnvelope) GetRule() *SignaturePolicy
func (m *SignaturePolicyEnvelope) GetVersion() int32
func (*SignaturePolicyEnvelope) ProtoMessage()
func (m *SignaturePolicyEnvelope) Reset()
func (m *SignaturePolicyEnvelope) String() string
func (m *SignaturePolicyEnvelope) XXX_DiscardUnknown()
func (m *SignaturePolicyEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *SignaturePolicyEnvelope) XXX_Merge(src proto.Message)
func (m *SignaturePolicyEnvelope) XXX_Size() int
func (m *SignaturePolicyEnvelope) XXX_Unmarshal(b []byte) error
type SignaturePolicy_NOutOf struct { N int32 `protobuf:"varint,1,opt,name=n,proto3" json:"n,omitempty"` Rules []*SignaturePolicy `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*SignaturePolicy_NOutOf) Descriptor() ([]byte, []int)
func (m *SignaturePolicy_NOutOf) GetN() int32
func (m *SignaturePolicy_NOutOf) GetRules() []*SignaturePolicy
func (*SignaturePolicy_NOutOf) ProtoMessage()
func (m *SignaturePolicy_NOutOf) Reset()
func (m *SignaturePolicy_NOutOf) String() string
func (m *SignaturePolicy_NOutOf) XXX_DiscardUnknown()
func (m *SignaturePolicy_NOutOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *SignaturePolicy_NOutOf) XXX_Merge(src proto.Message)
func (m *SignaturePolicy_NOutOf) XXX_Size() int
func (m *SignaturePolicy_NOutOf) XXX_Unmarshal(b []byte) error
type SignaturePolicy_NOutOf_ struct { NOutOf *SignaturePolicy_NOutOf `protobuf:"bytes,2,opt,name=n_out_of,json=nOutOf,proto3,oneof"` }
type SignaturePolicy_SignedBy struct { SignedBy int32 `protobuf:"varint,1,opt,name=signed_by,json=signedBy,proto3,oneof"` }
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
type SignedData struct { Data []byte Identity []byte Signature []byte }
StaticCollectionConfig constitutes the configuration parameters of a static collection object. Static collections are collections that are known at chaincode instantiation time, and that cannot be changed. Dynamic collections are deferred.
type StaticCollectionConfig struct { // the name of the collection inside the denoted chaincode Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // a reference to a policy residing / managed in the config block // to define which orgs have access to this collection’s private data MemberOrgsPolicy *CollectionPolicyConfig `protobuf:"bytes,2,opt,name=member_orgs_policy,json=memberOrgsPolicy,proto3" json:"member_orgs_policy,omitempty"` // 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 int32 `protobuf:"varint,3,opt,name=required_peer_count,json=requiredPeerCount,proto3" json:"required_peer_count,omitempty"` // The maximum number of peers that private data will be sent to // upon endorsement. This number has to be bigger than required_peer_count. MaximumPeerCount int32 `protobuf:"varint,4,opt,name=maximum_peer_count,json=maximumPeerCount,proto3" json:"maximum_peer_count,omitempty"` // 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 `protobuf:"varint,5,opt,name=block_to_live,json=blockToLive,proto3" json:"block_to_live,omitempty"` // The member only read access denotes whether only collection member clients // can read the private data (if set to true), or even non members can // read the data (if set to false, for example if you want to implement more granular // access logic in the chaincode) MemberOnlyRead bool `protobuf:"varint,6,opt,name=member_only_read,json=memberOnlyRead,proto3" json:"member_only_read,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*StaticCollectionConfig) Descriptor() ([]byte, []int)
func (m *StaticCollectionConfig) GetBlockToLive() uint64
func (m *StaticCollectionConfig) GetMaximumPeerCount() int32
func (m *StaticCollectionConfig) GetMemberOnlyRead() bool
func (m *StaticCollectionConfig) GetMemberOrgsPolicy() *CollectionPolicyConfig
func (m *StaticCollectionConfig) GetName() string
func (m *StaticCollectionConfig) GetRequiredPeerCount() int32
func (*StaticCollectionConfig) ProtoMessage()
func (m *StaticCollectionConfig) Reset()
func (m *StaticCollectionConfig) String() string
func (m *StaticCollectionConfig) XXX_DiscardUnknown()
func (m *StaticCollectionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (dst *StaticCollectionConfig) XXX_Merge(src proto.Message)
func (m *StaticCollectionConfig) XXX_Size() int
func (m *StaticCollectionConfig) XXX_Unmarshal(b []byte) error
These status codes are intended to resemble selected HTTP status codes
type Status int32
const ( Status_UNKNOWN Status = 0 Status_SUCCESS Status = 200 Status_BAD_REQUEST Status = 400 Status_FORBIDDEN Status = 403 Status_NOT_FOUND Status = 404 Status_REQUEST_ENTITY_TOO_LARGE Status = 413 Status_INTERNAL_SERVER_ERROR Status = 500 Status_NOT_IMPLEMENTED Status = 501 Status_SERVICE_UNAVAILABLE Status = 503 )
func (Status) EnumDescriptor() ([]byte, []int)
func (x Status) String() string