Добавление нового узла Orderer в сервис заказов RAFT в Hyperledger Fabric - PullRequest
0 голосов
/ 06 марта 2020

Я выполняю шаги, указанные здесь , чтобы добавить новый узел Orderer к существующей службе заказа RAFT.

  1. Я использую first-network из fabri c - samples (версия: master / latest) github-репозиторий.
  2. Я изменил файлы в папке first-network, чтобы изначально запустить службу RAFT с 3 ЗАКАЗАМИ.
  3. После успешного сквозного выполнения сценария byfn.sh я docker exec в контейнере CLI. В CLI я делаю следующее:

Устанавливаем следующие переменные среды:

export CORE_PEER_ADDRESS=orderer.example.com:7050
export CORE_PEER_LOCALMSPID=OrdererMSP
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp
export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
export CHANNEL_NAME=byfn-sys-channel

Затем следует выборка блока конфигурации, его декодирование и следующий сегмент JSON в разделе consenters в декодированном файле JSON.

{
    "client_tls_cert": "xxx",
    "host": "orderer4.example.com",
    "port": 10050,
    "server_tls_cert": "xxx"
}

На данный момент скрыты значения сертификата. ПРИМЕЧАНИЕ. Я до сих пор не изменил раздел OrdererAddresses.

Модифицированный JSON используется для обновления конфигурации SYSTEM CHANNEL . Затем я получаю последний блок конфигурации канала для обновленного byfn-sys-channel. Я выхожу из CLI и делаю docker cp, чтобы извлечь последний блок конфигурации из контейнера CLI в каталог channel-artifacts.

Я запускаю заказчика по имени orderer4.example.com с путем к файлу bootstrap, соответствующим последнему извлеченному блоку конфигурации. Но контейнер аварийно завершает работу и выдает следующие журналы в режиме отладки:

2020-03-06 10:48:58.535 UTC [orderer.common.cluster.replication] fetchLastBlockSeq -> INFO 5b6 orderer2.example.com:8050 is at block sequence of 2 channel=byfn-sys-channel       
2020-03-06 10:48:58.536 UTC [orderer.common.cluster.replication] fetchLastBlockSeq -> INFO 5b7 orderer3.example.com:9050 is at block sequence of 2 channel=byfn-sys-channel       
2020-03-06 10:48:58.539 UTC [orderer.common.cluster.replication] fetchLastBlockSeq -> INFO 5b8 orderer.example.com:7050 is at block sequence of 2 channel=byfn-sys-channel        
2020-03-06 10:48:58.539 UTC [orderer.common.cluster.replication] connectToSomeEndpoint -> INFO 5b9 Connected to orderer.example.com:7050 with last block seq of 2 channel=byfn-sys-channel
2020-03-06 10:48:58.539 UTC [msp.identity] Sign -> DEBU 5ba Sign: plaintext: 0AF5060A3E08051A06089AD588F30522...0D1A0B08FFFFFFFFFFFFFFFFFF012001
2020-03-06 10:48:58.539 UTC [msp.identity] Sign -> DEBU 5bb Sign: digest: DFBDC201427E47056FA06F3E39B61750C8E874F6E09FE30BBFB38380F5F0A96D
2020-03-06 10:48:58.540 UTC [orderer.common.cluster.replication] obtainStream -> INFO 5bc Sending request for block [1] to orderer.example.com:7050 channel=byfn-sys-channel      
2020-03-06 10:48:58.540 UTC [grpc] infof -> DEBU 5bd transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2020-03-06 10:48:58.540 UTC [grpc] infof -> DEBU 5be transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2020-03-06 10:48:58.546 UTC [orderer.common.cluster.replication] pullBlocks -> INFO 5bf Got block [1] of size 25 KB from orderer.example.com:7050 channel=byfn-sys-channel        
2020-03-06 10:48:58.548 UTC [orderer.common.cluster.replication] pullBlocks -> INFO 5c0 Got block [2] of size 35 KB from orderer.example.com:7050 channel=byfn-sys-channel        
2020-03-06 10:48:58.551 UTC [orderer.common.cluster] BlockCommitted -> DEBU 5c1 Committed block [1] for channel byfn-sys-channel that is not a config block
2020-03-06 10:48:58.551 UTC [orderer.common.cluster] appendBlock -> PANI 5c2 Failed to write block [1]: unexpected Previous block hash. Expected PreviousHash = [v1], PreviousHash referred in the latest block= [v2]
panic: Failed to write block [1]: unexpected Previous block hash. Expected PreviousHash = [v1], PreviousHash referred in the latest block= [v2]

Я выполняю действия, описанные в последней документации Hyperledger, и все еще выдает эту ошибку. Пожалуйста, исправьте меня, если где-то я делаю ошибку, чтобы выполнить данные шаги.

1 Ответ

0 голосов
/ 09 марта 2020

Возникла проблема с томами, монтируемыми в новый контейнер заказа. Он использовал существующий том для нового заказчика, потому что я продолжал тянуть скрипт «byfn. sh» и снова использовать его для работы в сети.

Но указанные шаги в документации отлично работают при использовании с креплениями fre sh.

...