package common

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

message ApplicationPolicy

policies.proto:71

ApplicationPolicy captures the diffenrent policy types that are set and evaluted at the application level.

Used in: StaticCollectionConfig

message Block

common.proto:142

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.BlockAndPrivateData, protos.DeliverResponse

message BlockData

common.proto:157

Used in: Block

message BlockDataHashingStructure

configuration.proto:22

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:151

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:161

Used in: Block

enum BlockMetadataIndex

common.proto:41

This enum enlists indexes of the block metadata array

message BlockchainInfo

ledger.proto:14

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

message BootstrappingSnapshotInfo

ledger.proto:24

Contains information for the bootstrapping snapshot.

Used in: BlockchainInfo

message Capabilities

configuration.proto:70

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).

message Capability

configuration.proto:78

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.

Used in: Capabilities

(message has no fields)

message ChannelHeader

common.proto:73

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

message CollectionConfig

collection.proto:25

CollectionConfig defines the configuration of a collection object; it currently contains a single, static type. Dynamic collections are deferred.

Used in: CollectionConfigPackage

message CollectionConfigPackage

collection.proto:17

CollectionConfigPackage represents an array of CollectionConfig messages; the extra struct is required because repeated oneof is forbidden by the protobuf syntax

message CollectionPolicyConfig

collection.proto:75

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.

Used in: StaticCollectionConfig

message CombinedPrincipal

msp_principal.proto:124

CombinedPrincipal governs the organization of the Principal field of a policy principal when principal_classification has indicated that a combined form of principals is required

message Config

configtx.proto:43

Config represents the config for a particular channel

Used in: ConfigEnvelope, protos.ConfigTree

message ConfigEnvelope

configtx.proto:36

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:78

ConfigGroup is the hierarchical data structure for holding config

Used in: Config, ConfigUpdate

message ConfigPolicy

configtx.proto:93

Used in: ConfigGroup

message ConfigSignature

configtx.proto:99

Used in: ConfigUpdateEnvelope

message ConfigUpdate

configtx.proto:66

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:52

message ConfigValue

configtx.proto:87

ConfigValue represents an individual piece of config data

Used in: ConfigGroup

message Consortium

configuration.proto:35

Consortium represents the consortium context in which the channel was created

message Envelope

common.proto:130

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, protos.Admin.GetLogSpec, protos.Admin.GetModuleLogLevel, protos.Admin.GetStatus, protos.Admin.RevertLogLevels, protos.Admin.SetLogSpec, protos.Admin.SetModuleLogLevel, protos.Admin.StartServer, protos.Deliver.Deliver, protos.Deliver.DeliverFiltered, protos.Deliver.DeliverWithPrivateData

Used as field type in: ConfigEnvelope, orderer.SubmitRequest, protos.ProcessedTransaction

message HashingAlgorithm

configuration.proto:15

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:67

Used in: Payload

enum HeaderType

common.proto:27

Used in: protos.FilteredTransaction

message ImplicitMetaPolicy

policies.proto:59

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:60

Used in: ImplicitMetaPolicy

message LastConfig

common.proto:52

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

Used in: OrdererBlockMetadata

message MSPIdentityAnonymity

msp_principal.proto:112

MSPIdentityAnonymity can be used to enforce an identity to be anonymous or nominal.

enum MSPIdentityAnonymity.MSPIdentityAnonymityType

msp_principal.proto:113

Used in: MSPIdentityAnonymity

message MSPPrincipal

msp_principal.proto:36

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: CombinedPrincipal, SignaturePolicyEnvelope

enum MSPPrincipal.Classification

msp_principal.proto:37

Used in: MSPPrincipal

message MSPRole

msp_principal.proto:93

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:98

Used in: MSPRole

message Metadata

common.proto:57

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

message MetadataSignature

common.proto:62

Used in: Metadata

message OrdererAddresses

configuration.proto:30

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 OrdererBlockMetadata

common.proto:166

OrdererBlockMetadata defines metadata that is set by the ordering service.

message OrganizationUnit

msp_principal.proto:75

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:120

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

message Policy

policies.proto:16

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:17

message SignatureHeader

common.proto:111

Used in: protos.SnapshotQuery, protos.SnapshotRequest

message SignaturePolicy

policies.proto:40

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:41

Used in: SignaturePolicy

message SignaturePolicyEnvelope

policies.proto:28

SignaturePolicyEnvelope wraps a SignaturePolicy and includes a version for future enhancements

Used in: ApplicationPolicy, CollectionPolicyConfig, protos.ApplicationPolicy, protos.ChaincodeData, protos.CollectionPolicyConfig

message StaticCollectionConfig

collection.proto:37

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.

Used in: CollectionConfig

enum Status

common.proto:15

These status codes are intended to resemble selected HTTP status codes

Used in: orderer.BroadcastResponse, orderer.DeliverResponse, orderer.SubmitResponse, protos.DeliverResponse