Почему бы нам не поместить одноранговые узлы в конфигурацию канала при первом создании?

Мы все знали Образец ткани Hyperledger, когда начали работать с HF, у меня есть вопрос для начала, когда я начал учиться. Чтобы развернуть тестовую сеть, а затем создать тестовый канал, нам нужно выполнить несколько шагов, как показано ниже (я взял их из сценария createChannel.sh)

## Create channeltx
infoln "Generating channel create transaction '${CHANNEL_NAME}.tx'"
createChannelTx

## Create anchorpeertx
infoln "Generating anchor peer update transactions"
createAncorPeerTx

FABRIC_CFG_PATH=$PWD/../config/

## Create channel
infoln "Creating channel ${CHANNEL_NAME}"
createChannel

## Join all the peers to the channel
infoln "Join Org1 peers to the channel..."
joinChannel 1
infoln "Join Org2 peers to the channel..."
joinChannel 2

## Set the anchor peers for each org in the channel
infoln "Updating anchor peers for org1..."
updateAnchorPeers 1
infoln "Updating anchor peers for org2..."
updateAnchorPeers 2

successln "Channel successfully joined"

Я так обеспокоен, нам нужно сделать createChannelTx и createAncorPeerTx, затем createChannel и updateAnchorPeers, давайте посмотрим код инструмента configtxgen

updated := proto.Clone(original).(*cb.ConfigGroup) 

originalOrg, ok := original.Groups[channelconfig.ApplicationGroupKey].Groups[asOrg]
if !ok {
    return errors.Errorf("org with name '%s' does not exist in config", asOrg)
}

if _, ok = originalOrg.Values[channelconfig.AnchorPeersKey]; !ok {
    return errors.Errorf("org '%s' does not have any anchor peers defined", asOrg)
}

delete(originalOrg.Values, channelconfig.AnchorPeersKey)

updt, err := update.Compute(&cb.Config{ChannelGroup: original}, &cb.Config{ChannelGroup: updated})

Что они сделали? Просто удалите AnchorPeer из исходной конфигурации и вычислите до и после, чтобы создать обновление, вернитесь к моему вопросу. Есть ли у нас какие-то особые проблемы, чтобы не генерировать якорный пир с каналом и отправлять их все по порядку один раз?

Дополнительная информация: Я использую ткань 2.2 LTS.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
277
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ткань-2.2/configtxgen В документе

-outputAnchorPeersUpdate УСТАРЕЛ

Fabric-2.x ~ удалит outputANchorPeersUpdate исх: FAB-17427

В будущем следующий код будет изменен, чтобы отразить это в процессе configtxgen.

if_, ok = originalOrg.Values[channelconfig.AnchorPeersKey]; !ok {
      return errors.Errorf("org'%s' does not have any anchor peers defined", asOrg)
}

delete(originalOrg.Values, channelconfig.AnchorPeersKey)
   -outputAnchorPeersUpdate string
         [DEPRECATED] Creates a config update to update an anchor peer (works only with the default channel creation, and only for the first update)

Опция УСТАРЕЛА. Вероятно с версии 2.x будет реализовано добавление в блок генезиса через файл configtx.yaml без выполнения обновления канала.

Спасибо за ваш ответ, но «однако было недостаточно настроить узел привязки». какой пункт пропущен в конфиге.

Tea 10.12.2020 10:18

Во-вторых, ваше событие может обновить одноранговый узел перед одноранговым каналом присоединения.

Tea 10.12.2020 10:19

В-третьих, я думаю, они поместили все в configtx.yaml, чтобы сэкономить время или что-то еще, я не знаю

Tea 10.12.2020 10:22

Во-первых, «недостаточно было настроить узел привязки». На самом деле, извините, но я не изучал это подробно, пожалуйста, обратитесь к ссылке выше для получения подробной информации.

myeongkil kim 10.12.2020 10:28

Во-вторых, часть, которая обновляется перед присоединением, предназначена для tx. Это выражается как после соединения, потому что созданная часть считает обновление, получив блок. Если у вас уже есть блок после создания, можно еще до присоединения.

myeongkil kim 10.12.2020 10:28

1. Ссылка, которую вы упомянули, является еще одной проблемой. Наверное. Когда я отлаживаю код, Anchor обращается только к хосту и порту, не более того.

Tea 10.12.2020 10:31

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

myeongkil kim 10.12.2020 10:31

да неужели? я проверю подробнее

myeongkil kim 10.12.2020 10:32

Я также снова смотрю на код. Так рад обсудить с вами

Tea 10.12.2020 10:33

Спасибо за ваше мнение. Когда я проверил, со мной что-то не так. ответ также был изменен, чтобы отразить это.

myeongkil kim 10.12.2020 10:41

Спасибо, я проверил это еще раз, и я пытаюсь создать канал с одноранговым узлом один раз.

Tea 10.12.2020 12:24

Я проверил код. Я не знаю почему, но кажется, что поставить якорный узел для первого создания не реализовано. Я отметил ваш ответ приемлемым. Но до сих пор не знаю, почему их предназначение. Это было несложно. Спасибо. Кстати, я клонировал репозиторий и кое-что изменил, теперь он работает так, как я ожидал.

Tea 15.12.2020 10:59

Другие вопросы по теме