что такое раздел профиля в configtx.yaml в ткани hyperledger - PullRequest
0 голосов
/ 24 октября 2018
TwoOrgsOrdererGenesis:
        <<: *ChannelDefaults
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
            Capabilities:
                <<: *OrdererCapabilities
        Consortiums:
            SampleConsortium:
                Organizations:
                    - *Org1
                    - *Org2

    TwoOrgsChannel:
        Consortium: SampleConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
            Capabilities:
                <<: *ApplicationCapabilities

что означает этот раздел?

Давайте поговорим о первом профиле: TwoOrgsOrdererGenesis.Может кто-нибудь объяснить мне, что это вообще значит?что такое консорциум?и почему в примерах есть имя SampleConsortium для настроек блока Genesis и настроек канала?Я проверил содержимое блока генезиса и не смог найти ничего с таким именем. Такое хорошее объяснение всего кода, который я выложил на очень понимающем языке, было бы так приятно и славно.Спасибо

1 Ответ

0 голосов
/ 24 октября 2018

в этом файле мы настраиваем блок genesis, который вы можете реализовать для построения собственной сети, поэтому давайте углубимся в некоторые детали.

в поле организаций : что выглядит следующим образом

Organizations:

# SampleOrg defines an MSP using the sampleconfig.  It should never be used
# in production but may be used as a template for other definitions
- &OrdererOrg
    # DefaultOrg defines the organization which is used in the sampleconfig
    # of the fabric.git development environment
    Name: OrdererOrg

    # ID to load the MSP definition as
    ID: OrdererMSP

    # MSPDir is the filesystem path which contains the MSP configuration
    MSPDir: crypto-config/ordererOrganizations/example.com/msp

- &Org1
    # DefaultOrg defines the organization which is used in the sampleconfig
    # of the fabric.git development environment
    Name: Org1MSP

    # ID to load the MSP definition as
    ID: Org1MSP

    MSPDir: crypto-config/peerOrganizations/org1.example.com/msp

    AnchorPeers:
        # AnchorPeers defines the location of peers which can be used
        # for cross org gossip communication.  Note, this value is only
        # encoded in the genesis block in the Application section context
        - Host: peer0.org1.example.com
          Port: 7051

- &Org2
    # DefaultOrg defines the organization which is used in the sampleconfig
    # of the fabric.git development environment
    Name: Org2MSP

    # ID to load the MSP definition as
    ID: Org2MSP

    MSPDir: crypto-config/peerOrganizations/org2.example.com/msp

    AnchorPeers:
        # AnchorPeers defines the location of peers which can be used
        # for cross org gossip communication.  Note, this value is only
        # encoded in the genesis block in the Application section context
        - Host: peer0.org2.example.com
          Port: 7051

здесь мы определяем наши организации по аналогии и даем нашей структуре ссылку на криптографические материалы для этих организаций.так что здесь, в этом примере, у нас есть 3 организации: организация Orderer и 2 другие peerOrganizations вверху файла. Вы можете заметить следующее

Name: OrdererOrg
ID: OrdererMSP
MSPDir: crypto-config/ordererOrganizations/example.com/msp

. Здесь находится конфигурация для организации Orderer, и мы предоставляем идентификатор для членства.поставщик услуг, который является платформой, которая обрабатывает все криптографические операции подписания, проверки, выдачи и создания цепочек, мы связываем его с местом, где криптографический материал для этой организации находится в нашей файловой системе MSPDir.

и следующих peerOrganizations Org1 иOrg2 придерживается той же структуры, за исключением того, что они должны содержаться на одноранговом одноранговом узле, что позволяет одноранговым узлам организации взаимодействовать с другими одноранговыми узлами организации, что является основным моментом для синхронизации данных с несколькими организациями, поэтому мы должны определить одноранговый одноранговый узел для каждой организации.в следующем разделе

AnchorPeers:
        # AnchorPeers defines the location of peers which can be used
        # for cross org gossip communication.  Note, this value is only
        # encoded in the genesis block in the Application section context
        - Host: peer0.org1.example.com
          Port: 7051

теперь перемещается в другой раздел в файле, который является Заказчиком : он выглядит как

Orderer: &OrdererDefaults

# Orderer Type: The orderer implementation to start
# Available types are "solo" and "kafka"
OrdererType: solo

Addresses:
    - orderer.example.com:7050

# Batch Timeout: The amount of time to wait before creating a batch
BatchTimeout: 2s

# Batch Size: Controls the number of messages batched into a block
BatchSize:

    # Max Message Count: The maximum number of messages to permit in a batch
    MaxMessageCount: 10

    # Absolute Max Bytes: The absolute maximum number of bytes allowed for
    # the serialized messages in a batch.
    AbsoluteMaxBytes: 99 MB

    # Preferred Max Bytes: The preferred maximum number of bytes allowed for
    # the serialized messages in a batch. A message larger than the preferred
    # max bytes will result in a batch larger than preferred max bytes.
    PreferredMaxBytes: 512 KB

Kafka:
    # Brokers: A list of Kafka brokers to which the orderer connects
    # NOTE: Use IP:port notation
    Brokers:
        - 127.0.0.1:9092

# Organizations is the list of orgs which are defined as participants on
# the orderer side of the network
Organizations:

, если вы заметили Заказчик: & ЗаказerDefaults это псевдоним, содержащий следующие настройки, поэтому мы можем использовать его в разделе Профиль , как будет объяснено после этого раздела

    OrdererType: solo

означает, что мы используем сервер обмена сообщениями соло, которыйприменимо в разработке, но не в производстве, мы используем kafka в производственной среде.

Addresses:
    - orderer.example.com:7050

адреса для заказчиков здесь у нас есть только один заказчик, но в реальном производственном случае у нас может быть несколько заказчиков, поэтому вы можетеукажите здесь адреса

BatchSize:

    # Max Message Count: The maximum number of messages to permit in a batch
    MaxMessageCount: 10

    # Absolute Max Bytes: The absolute maximum number of bytes allowed for
    # the serialized messages in a batch.
    AbsoluteMaxBytes: 99 MB

    # Preferred Max Bytes: The preferred maximum number of bytes allowed for
    # the serialized messages in a batch. A message larger than the preferred
    # max bytes will result in a batch larger than preferred max bytes.
    PreferredMaxBytes: 512 KB

. В этом разделе мы определяем, когда создавать новый блок, так что это зависит от вашего варианта использования в бизнесе, поэтому вы можете зависеть от времени создания нового блока, BatchTimeout или на BatchSize сколько транзакций должен содержать блок, или даже максимальный размер блока тщательно изменяет эти значения в соответствии с вашими потребностями.

Kafka: # Брокеры: списокБрокеры Kafka, к которым подключается заказчик # ПРИМЕЧАНИЕ: Используйте IP: обозначение порта. Брокеры: - 127.0.0.1:9092

, если yЕсли вы используете kafka, эта конфигурация будет использоваться, и в процессе работы у вас будет более одного брокера, поэтому предоставьте IP-адреса своих брокеров.

наконец, раздел Профили :

Profiles:

TwoOrgsOrdererGenesis:
    Capabilities:
        <<: *ChannelCapabilities
    Orderer:
        <<: *OrdererDefaults
        Organizations:
            - *OrdererOrg
        Capabilities:
            <<: *OrdererCapabilities
    Consortiums:
        SampleConsortium:
            Organizations:
                - *Org1
                - *Org2
TwoOrgsChannel:
    Consortium: SampleConsortium
    Application:
        <<: *ApplicationDefaults
        Organizations:
            - *Org1
            - *Org2
        Capabilities:
            <<: *ApplicationCapabilities

этот раздел предназначен для объединения всех наших конфигураций в хорошем читабельном синтаксисе, другими словами, этот раздел будет выполняться при попытке создания блока genesis. В первом разделе мы предоставим конфигурацию для создания блока Genesis..

  <<: *ChannelCapabilities

означает импорт параметра, на который ссылается ChannelCapabilities псевдоним в этом разделе.

<<: *OrdererDefaults

, что означает импорт всех криптографических материалов OrdererDefaults как псевдоним, ссылающийся на него в этом разделе.

в поле Консорциумы здесь мы указываем, какие организации будет обслуживать этот заказчик, поскольку один заказчик может обслуживать более одной организации

TwoOrgsChannel - это канал, по которому идут наши организацииприсоединиться помните, что каждая организация может присоединиться к более чем одному каналу, поэтому мы должны предоставить канал Консорциум , а также сообщить каналу, кто наши объединяющиеся организации будут обслуживать.

Надеюсь, что этобудет вам полезен.

...