Выбирайте только поддерживающие одноранговые узлы при выполнении транзакции запроса - Node SDK - PullRequest
0 голосов
/ 18 октября 2019

Есть ли способ вызвать setEndorsingPeers() при вызове contract.evaluateTransaction()? Есть ли другой способ добиться этого? У меня возникла следующая проблема:

У меня две организации, и у каждой из них есть два партнера: peer0 и peer1 . Однако только одноранговые узлы peer0 поддерживают одноранговые узлы. Таким образом, при запросе состояния иногда транзакция достигает одноранговых узлов peer1 и выбрасывается Error. Я нашел обходной путь на Запрос цепного кода успешен только в ~ 3/5 случаях с nodejs , но он требует, чтобы я выдвинул все одноранговые узлы на одобрение одноранговых узлов. Является ли мой подход только с назначением пиров верным и правильным? Заранее спасибо.

PS Никто не отвечает в другом потоке, и я считаю, что это допустимая отдельная проблема, решение которой не является обходным решением.

1 Ответ

1 голос
/ 22 октября 2019

У меня была такая же проблема. Ниже приведено мое решение.

1) В профиле подключения убедитесь, что установлено, какой узел является индоссантом / коммитером:

    "channels": {
    "mychannel": {
        "orderers": [],
        "peers": {
            "peer0.example.com": {
                "endorsingPeer": true,
                "chaincodeQuery": true,
                "ledgerQuery": true,
                "eventSource": true
            },
            "peer1.example.com": {
                "endorsingPeer": false,
                "chaincodeQuery": false,
                "ledgerQuery": false,
                "eventSource": true
            }
        },
        "chaincodes": []
    }
},

2) Используйте Fabric-Network SDK для запроса: ссылка

Надеюсь, это поможет.

...