package common

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

message Block

common.proto:154

This is finalized block structure to be shared among the consenter and node 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: consenter.DeliverResponse, protos.DeliverResponse, protos.Event

message BlockData

common.proto:169

Used in: Block

message BlockDataHashingStructure

configuration.proto:35

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

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

Used in: Block

enum BlockMetadataIndex

common.proto:53

This enum enlists indexes of the block metadata array

message BlockchainInfo

ledger.proto:27

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

message Capabilities

configuration.proto:83

Capabilities message defines the capabilities a particular binary must implement for that binary to be able to safely participate in the group. The capabilities message is defined at the /Group level, the /Group/Application level, and the /Group/Consenter level. The /Group level capabilties define capabilities which both the consenter and node binaries must satisfy. These capabilties might be things like a new MSP type, or a new policy type. The /Group/Consenter level capabilties define capabilities which must be supported by the consenter, but which have no bearing on the behavior of the node. For instance if the consenter changes the logic for how it constructs new groups, only all consenters must agree on the new logic. The nodes do not need to be aware of this change as they only interact with the group after it has been constructed. Finally, the /Group/Application level capabilities define capabilities which the node binary must satisfy, but which have no bearing on the consenter. For instance, if the node adds a new UTXO transaction type, or changes the chaincode lifecycle requirements, all nodes must agree on the new logic. However, consenters 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 consenters must be upgraded to V1.1 prior to the rest of the network, going forward, because of the split between the /Group, /Group/Consenter and /Group/Application capabilities. It should be possible for the consenter and application networks to upgrade themselves independently (with the exception of any new capabilities defined at the /Group level).

message Capability

configuration.proto:91

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 CollectionConfig

collection.proto:28

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

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

message CollectionCriteria

collection.proto:73

CollectionCriteria defines an element of a private data that corresponds to a certain transaction and collection

message CollectionPolicyConfig

collection.proto:59

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 Config

configtx.proto:66

Config represents the config for a particular group

Used in: ConfigEnvelope, protos.RootConfigTree

message ConfigEnvelope

configtx.proto:47

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, IConfigPolicy, ConfigTree) to be modified 3. Add any intermediate ConfigTrees 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 getPolicyManager 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 ConfigPolicy

configtx.proto:111

Used in: ConfigTree

message ConfigPolicySchema

configtx.proto:62

Used in: ConfigTreeSchema

(message has no fields)

message ConfigSignature

configtx.proto:117

Used in: ConfigUpdateEnvelope

message ConfigTree

configtx.proto:96

ConfigTree is the hierarchical data structure for holding config

Used in: Config, ConfigUpdate

message ConfigTreeSchema

configtx.proto:53

enum ConfigType

configtx.proto:21

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

ConfigUpdate is used to submit a subset of config and to have the consenter 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 ConfigTreeSchema verifies that the updates were legal

message ConfigUpdateEnvelope

configtx.proto:73

message ConfigValue

configtx.proto:105

ConfigValue represents an individual piece of config data

Used in: ConfigTree

message ConfigValueSchema

configtx.proto:59

Used in: ConfigTreeSchema

(message has no fields)

message ConsenterAddresses

configuration.proto:43

ConsenterAddresses is encoded into the configuration transaction as a configuration item of type Chain with a Key of "ConsenterAddresses" and a Value of ConsenterAddresses as marshaled protobuf bytes

message Consortium

configuration.proto:48

Consortium represents the consortium context in which the group was created

message Envelope

common.proto:142

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

Used as request type in: consenter.AtomicBroadcast.Broadcast, consenter.AtomicBroadcast.Deliver, protos.Deliver.Deliver, protos.Deliver.DeliverFiltered

Used as field type in: ConfigEnvelope, protos.ProcessedTransaction

message GroupHeader

common.proto:83

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

message HashingAlgorithm

configuration.proto:28

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

Used in: Payload

enum HeaderType

common.proto:41

Used in: protos.FilteredTransaction

message ImplicitMetaPolicy

policies.proto:73

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

Used in: ImplicitMetaPolicy

message LastConfig

common.proto:62

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

message MSPPrincipal

msp_principal.proto:52

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 MSPPrincipalGetter bytes message

Used in: SignaturePolicyEnvelope

enum MSPPrincipal.Classification

msp_principal.proto:54

Used in: MSPPrincipal

message MSPRole

msp_principal.proto:105

MSPRole governs the organization of the MSPPrincipalGetter 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:111

Used in: MSPRole

message Metadata

common.proto:67

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

message MetadataSignature

common.proto:72

Used in: Metadata

message OrganizationUnit

msp_principal.proto:87

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

message Payload

common.proto:132

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

message Policy

policies.proto:30

Policy expresses a policy which the consenter 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:31

message SignatureHeader

common.proto:121

message SignaturePolicy

policies.proto:54

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

Used in: SignaturePolicy

message SignaturePolicyEnvelope

policies.proto:42

SignaturePolicyEnvelope wraps a SignaturePolicy and includes a version for future enhancements

Used in: CollectionPolicyConfig

message StaticCollectionConfig

collection.proto:39

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

These status codes are intended to resemble selected HTTP status codes

Used in: consenter.BroadcastResponse, consenter.DeliverResponse, protos.DeliverResponse