«Ошибка при получении участника типа: etcdraft» при попытке настроить Hyperledger Fabric - PullRequest
0 голосов
/ 16 июня 2020

Я выполнил следующие инструкции в руководстве при попытке настроить Hyperledger Fabri c 1.4.7 и клонировал образцы из GitHub и использовал начальную точку first-network. Сначала я получил ожидаемый результат: (я удалил все ссылки на EtcdRaft в configtx.yaml)

rm -r channel-artifacts/*
export FABRIC_CFG_PATH=$PWD
cryptogen generate --config=./crypto-config.yaml
configtxgen -profile TwoOrgsOrdererGenesis -channelID byfn-sys-channel -outputBlock ./channel-artifacts/genesis.block
export CHANNEL_NAME=mychannel
configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
docker-compose -f docker-compose-cli.yaml up -d

Теперь docker работает, и я пробую это:

docker logs orderer.example.com

И после нормального вывода я получаю следующее:

2020-06-16 18:08:47.746 UTC [orderer.commmon.multichannel] newChainSupport -> PANI 008 Error retrieving consenter of type: etcdraft
panic: Error retrieving consenter of type: etcdraft

goroutine 1 [running]:
github.com/hyperledger/fabric/vendor/go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc0000ec580, 0x0, 0x0, 0x0)
        /opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/zapcore/entry.go:229 +0x546
github.com/hyperledger/fabric/vendor/go.uber.org/zap.(*SugaredLogger).log(0xc000240070, 0x4, 0x156734e, 0x26, 0xc000347b30, 0x1, 0x1, 0x0, 0x0, 0x0)
        /opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/sugar.go:234 +0x100
github.com/hyperledger/fabric/vendor/go.uber.org/zap.(*SugaredLogger).Panicf(...)
        /opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/sugar.go:159
github.com/hyperledger/fabric/common/flogging.(*FabricLogger).Panicf(...)
        /opt/gopath/src/github.com/hyperledger/fabric/common/flogging/zap.go:74
github.com/hyperledger/fabric/orderer/common/multichannel.newChainSupport(0xc000172000, 0xc00054a060, 0xc0003205d0, 0x16c8800, 0x208ffe0, 0xc000324540, 0x0)
        /opt/gopath/src/github.com/hyperledger/fabric/orderer/common/multichannel/chainsupport.go:69 +0xa06
github.com/hyperledger/fabric/orderer/common/multichannel.(*Registrar).Initialize(0xc000172000, 0xc0003205d0)
        /opt/gopath/src/github.com/hyperledger/fabric/orderer/common/multichannel/registrar.go:168 +0x252
github.com/hyperledger/fabric/orderer/common/server.initializeMultichannelRegistrar(0xc0003b8b80, 0x0, 0x0, 0x0, 0xc0002065a0, 0x2021b00, 0xc0003ee0e0, 0x2, 0x2, 0xc0003ee0f0, ...)
        /opt/gopath/src/github.com/hyperledger/fabric/orderer/common/server/main.go:681 +0x4a5
github.com/hyperledger/fabric/orderer/common/server.Start(0x1543ab2, 0x5, 0xc0002c2480)
        /opt/gopath/src/github.com/hyperledger/fabric/orderer/common/server/main.go:189 +0xa94
github.com/hyperledger/fabric/orderer/common/server.Main()
        /opt/gopath/src/github.com/hyperledger/fabric/orderer/common/server/main.go:91 +0x208
main.main()
        /opt/gopath/src/github.com/hyperledger/fabric/orderer/main.go:15 +0x20

Но нигде больше нет ссылки на EtcdRaft, которую я могу найти. Что происходит?

EDIT:

Попытка добавить EtcdRaft вместо этого создает эту ошибку:

2020-06-17 01:10:40.083 UTC [orderer.commmon.multichannel] Initialize -> INFO 00e Starting system channel 'byfn-sys-channel' with genesis block hash fbbc5d4bd63c38a9623fb3c3d68493d8441d3de4e249d9a8cabba0619978c56d and orderer type etcdraft
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0xfaee39]

EDIT:

Я пробовал это с Hyperledger Fabri c версия 2.1, для которой требуется Raft, и я получаю ту же ошибку от Raft, что и выше.

EDIT:

Для полноты, вот полный журнал журнал для Заказчика для Hyperledger 1.4.7 и полный журнал для Заказчика Hyperledger 2.1.0 .

1 Ответ

0 голосов
/ 17 июня 2020

Если вы получаете пани c:

Error retrieving consenter of type: etcdraft

Обычно это можно отнести к одной из двух причин.

  1. Вы с использованием Fabri c v1.4.0, а не v1.4.1 +. Порядок был введен в v1.4.1 , что часто вызывает путаницу c.
  2. Вы указали Genesis Type None и используете версию Fabri c до версии 2.2.0, которая на момент написания этой статьи еще не выпущена. Эта ошибка задокументирована как FAB-17774 и должны быть включены как часть v2.2.0.

Если вы убедитесь, что используемые изображения current, а для этого типа генезиса не задано значение none, я ожидаю, что ваши ошибки исчезнут go.

Если, с другой стороны, вы пытаетесь использовать какой-либо тип консенсуса, отличный от etcdraft (который для новых развертывания etcdraft - рекомендуемый тип консенсуса), затем убедитесь, что тип консенсуса в вашем configtx.yaml установлен на соответствующий тип, например, 'solo'. Убедитесь, что все артефакты, включая любые тома, сохраняемые вашей docker композицией, были удалены, и повторите попытку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...