Переименование функции Hyperledger Fabric приводит к ошибке - PullRequest
0 голосов
/ 23 июня 2019

Я играю с fabcar примером в Hyperledger Fabric. Там, в коде цепочки, я изменил queryAllCars имя функции на queryAllProducts, а затем изменил это имя метода в файле query.js, где он используется. Но я получаю следующую ошибку из-за несуществующей функции. Я проверил все места по имени использования функции queryAllCars, но не могу понять проблему. Какова основная причина этой проблемы?

2019-06-23T04:14:37.101Z - warn: [Query]: evaluate: Query ID "[object Object]" of peer "peer0.ibo.bc4scm.de" failed: message=transaction returned with failure: Error: You've asked to invoke a function that does not exist: queryAllProducts, stack=Error: transaction returned with failure: Error: You've asked to invoke a function that does not exist: queryAllProducts
at self._endorserClient.processProposal (/home/malintha/Academic/3rd_Semester/DLT4PI/BCNetwork/BC4SCM/FrontEndCalls/node_modules/fabric-client/lib/Peer.js:140:36)
at Object.onReceiveStatus (/home/malintha/Academic/3rd_Semester/DLT4PI/BCNetwork/BC4SCM/FrontEndCalls/node_modules/grpc/src/client_interceptors.js:1207:9)
at InterceptingListener._callNext (/home/malintha/Academic/3rd_Semester/DLT4PI/BCNetwork/BC4SCM/FrontEndCalls/node_modules/grpc/src/client_interceptors.js:568:42)
at InterceptingListener.onReceiveStatus (/home/malintha/Academic/3rd_Semester/DLT4PI/BCNetwork/BC4SCM/FrontEndCalls/node_modules/grpc/src/client_interceptors.js:618:8)
at callback (/home/malintha/Academic/3rd_Semester/DLT4PI/BCNetwork/BC4SCM/FrontEndCalls/node_modules/grpc/src/client_interceptors.js:845:24), status=500, , url=grpc://localhost:7051, name=peer0.ibo.bc4scm.de, grpc.max_receive_message_length=-1, grpc.max_send_message_length=-1, grpc.keepalive_time_ms=120000, grpc.http2.min_time_between_pings_ms=120000, grpc.keepalive_timeout_ms=20000, grpc.http2.max_pings_without_data=0, grpc.keepalive_permit_without_calls=1, name=peer0.ibo.bc4scm.de, request-timeout=300000, isProposalResponse=true
Failed to evaluate transaction: Error: transaction returned with failure: Error: You've asked to invoke a function that does not exist: queryAllProducts

1 Ответ

0 голосов
/ 24 июня 2019

Когда вы изменяете / редактируете цепной код, вы должны установить и повторно создать его экземпляр для пиров. Я хотел бы предложить, пожалуйста, установить код цепи с новой версией вы найдете эту часть в скрипте startfabric.sh в разделе установки цепного кода. это будет выглядеть примерно так.

 peer chaincode install \
        -n fabcar \
        -v 1.0 \
        -p "$CC_SRC_PATH" \
    -l "$CC_RUNTIME_LANGUAGE"

измените его для обоих пиров.

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

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