package common

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message Block

common.proto:144

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.

Used in: orderer.DeliverResponse, protos.Event

message BlockData

common.proto:159

Used in: Block

message BlockDataHashingStructure

configuration.proto:33

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

message BlockHeader

common.proto:153

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

Used in: Block

message BlockMetadata

common.proto:163

Used in: Block

enum BlockMetadataIndex

common.proto:49

This enum enlists indexes of the block metadata array

message BlockchainInfo

ledger.proto:25

Contains information about the blockchain ledger such as height, current block hash, and previous block hash.

message ChannelHeader

common.proto:79

Header is a generic replay prevention and identity message to include in a signed payload

message Config

configtx.proto:62

Config represents the config for a particular channel

Used in: ConfigEnvelope

message ConfigEnvelope

configtx.proto:45

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

message ConfigGroup

configtx.proto:91

ConfigGroup is the hierarchical data structure for holding config

Used in: Config, ConfigUpdate

message ConfigGroupSchema

configtx.proto:51

message ConfigPolicy

configtx.proto:106

Used in: ConfigGroup

message ConfigPolicySchema

configtx.proto:59

Used in: ConfigGroupSchema

(message has no fields)

message ConfigSignature

configtx.proto:112

Used in: ConfigUpdateEnvelope

enum ConfigType

configtx.proto:19

ConfigType is an enumeration of possible types for the config. The type field in the config is an int32 for extensibility, but this enum type should generally be used to populate it

message ConfigUpdate

configtx.proto:82

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

message ConfigUpdateEnvelope

configtx.proto:68

message ConfigValue

configtx.proto:100

ConfigValue represents an individual piece of config data

Used in: ConfigGroup

message ConfigValueSchema

configtx.proto:57

Used in: ConfigGroupSchema

(message has no fields)

message Consortium

configuration.proto:46

Consortium represents the consortium context in which the channel was created

message Envelope

common.proto:132

Envelope wraps a Payload with a signature so that the message may be authenticated

Used as request type in: orderer.AtomicBroadcast.Broadcast, orderer.AtomicBroadcast.Deliver

Used as field type in: ConfigEnvelope, protos.ProcessedTransaction

message HashingAlgorithm

configuration.proto:26

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

common.proto:73

Used in: Payload

enum HeaderType

common.proto:38

message ImplicitMetaPolicy

policies.proto:71

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.

enum ImplicitMetaPolicy.Rule

policies.proto:72

Used in: ImplicitMetaPolicy

message LastConfig

common.proto:58

LastConfig is the encoded value for the Metadata message which is encoded in the LAST_CONFIGURATION block metadata index

message MSPPrincipal

msp_principal.proto:50

MSPPrincipal aims to represent an MSP-centric set of identities. In particular, this structure allows for definition of - a group of identities that are member of the same MSP - a group of identities that are member of the same organization unit in the same MSP - a group of identities that are administering a specific MSP - a specific identity Expressing these groups is done given two fields of the fields below - Classification, that defines the type of classification of identities in an MSP this principal would be defined on; Classification can take three values: (i) ByMSPRole: that represents a classification of identities within MSP based on one of the two pre-defined MSP rules, "member" and "admin" (ii) ByOrganizationUnit: that represents a classification of identities within MSP based on the organization unit an identity belongs to (iii)ByIdentity that denotes that MSPPrincipal is mapped to a single identity/certificate; this would mean that the Principal bytes message

Used in: SignaturePolicyEnvelope

enum MSPPrincipal.Classification

msp_principal.proto:52

Used in: MSPPrincipal

message MSPRole

msp_principal.proto:103

MSPRole governs the organization of the Principal field of an MSPPrincipal when it aims to define one of the two dedicated roles within an MSP: Admin and Members.

enum MSPRole.MSPRoleType

msp_principal.proto:109

Used in: MSPRole

message Metadata

common.proto:63

Metadata is a common structure to be used to encode block metadata

message MetadataSignature

common.proto:68

Used in: Metadata

message OrdererAddresses

configuration.proto:41

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

message OrganizationUnit

msp_principal.proto:85

OrganizationUnit governs the organization of the Principal field of a policy principal when a specific organization unity members are to be defined within a policy principal.

message Payload

common.proto:122

Payload is the message contents (and header to allow for signing)

message Policy

policies.proto:28

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

Used in: ConfigPolicy

enum Policy.PolicyType

policies.proto:29

message SignatureHeader

common.proto:113

message SignaturePolicy

policies.proto:52

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

Used in: SignaturePolicy.NOutOf, SignaturePolicyEnvelope

message SignaturePolicy.NOutOf

policies.proto:53

Used in: SignaturePolicy

message SignaturePolicyEnvelope

policies.proto:40

SignaturePolicyEnvelope wraps a SignaturePolicy and includes a version for future enhancements

enum Status

common.proto:27

These status codes are intended to resemble selected HTTP status codes

Used in: orderer.BroadcastResponse, orderer.DeliverResponse