Как ускорить установку смарт-контракта Hyperledger Fabri c java (я хочу избежать тайм-аута)? - PullRequest
1 голос
/ 30 мая 2020

Я пытаюсь развернуть смарт-контракт Java на Hyperledger Fabri c, и у меня возникают проблемы с тайм-аутом при выполнении команды peer lifecycle chaincode install cp.tar.gz.

Ошибка в терминале:

Ошибка: установка чейнкода завершилась неудачно со статусом: 500 - ошибка в моделировании: не удалось выполнить транзакцию baeacb6b68dac2872098105d20cb0398e5ce5b744afd37bf75ab65b0ffc7a754: отправка ошибки: истекло время ожидания при выполнении транзакции

1008 * мониторинг сети ошибка возникает примерно так:

lucid_ganguly | Загрузка https://services.gradle.org/distributions/gradle-5.6.2-bin.zip peer0.org1.example.com | 2020-05-30 03: 15: 08.175 UT C [endorser ] callChaincode -> INFO 04d завершенный цепной код: _lifecycle duration: 300000ms channel = txID = baeacb6b peer0.org1.example.com | 2020-05-30 03: 15: 08.176 UT C [endorser] SimulateProposal -> ERRO 04e не удалось вызвать цепной код _lifecycle, ошибка: истекло время ожидания при выполнении транзакции

Мне кажется, что загрузка этого файла gradle занимает слишком много времени время. У меня inte rnet не такой быстрый, но вчера несколько раз работал нормально. Если я повторно выполню команду, то контракт будет установлен правильно, я думаю, потому что файл уже загружен в одноранговый узел.

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

Я мало знаю о docker. Есть ли способ, которым файл gradle не загружается каждый раз, когда я перезагружаю сеть? Есть другой способ ускорить установку?

РЕДАКТИРОВАТЬ: Возможно ли, что при открытом Kazam (без записи) мой P C работает медленнее (и, возможно, вызывает тайм-аут) ????

1 Ответ

2 голосов
/ 01 июня 2020

Вот как работает гипер-книга. 1) Ваш код Java будет gradle project., И когда вы запускаете 'install' в контейнере 'cli', тогда код просто копируется в указанное место. 2) Следующим шагом будет создание экземпляра. На этом этапе фактически запускается «сборка градиента» и начинается загрузка всех зависимостей.

Чтобы ускорить это, сначала запустите работу «сборки градиента» на вашем компьютере. Это приведет к тому, что все зависимости будут загружены в вашу папку ~ / .gradle. Теперь скопируйте эту папку в образ 'hyperledger / fabri c -javaenv' docker, т.е. мы копируем все зависимости с вашего локального диска в образ. Таким образом можно избежать загрузки из контейнера docker.

EDIT: Надеюсь, вы клонировали код fabri c samples. После этого go в следующем месте. Именно этот код устанавливается и реализуется из контейнера cli в одноранговые узлы.

C:\sw\hlf146-2\fabric-samples\fabcar\java

Теперь выполните сборку gradle. Если у вас есть inte rnet accessa и нет проблем, связанных с прокси, ваша сборка должна быть успешной.

C:\sw\hlf146-2\fabric-samples\fabcar\java>gradle build
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/6.3/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing

> Task :buildEnvironment

------------------------------------------------------------
Root project
------------------------------------------------------------

classpath
No dependencies

A web-based, searchable dependency report is available by adding the --scan option.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 16s
1 actionable task: 1 executed

В случае успеха сборка gradle загрузила бы все зависимости в следующую папку

c:\users\your-user-name\.gradle

Надеюсь, вы уже загрузили изображения fabri c на свой компьютер. Не беспокойтесь о размерах изображений fabri c в моем выводе ниже. Я шутил, и вы видите, что некоторые изображения «огромны», например, 4,58 ГБ. Также игнорируйте изображения "dev-peerX.orgX" ниже. К тому времени, когда вы получите сеть UP, они будут созданы.

C:\sw\hlf146-2\fabric-samples\fabcar\java>docker image ls
REPOSITORY                                                                                               TAG                 IMAGE ID            CREATED             SIZE
dev-peer0.org2.example.com-fabcar-1.0-264b0a1cb5efbecaac5cf8990339c24474dc8435c6e10f10f2be565d555d0e94   latest              32aca2e8365e        4 hours ago         4.58GB
dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba   latest              89f8611e67f7        4 hours ago         4.58GB
hyperledger/fabric-javaenv                                                                               1.4                 190c5452a677        22 hours ago        4.56GB
hyperledger/fabric-ccenv                                                                                 1.4                 774f228847d4        36 hours ago        1.79GB
openjdk                                                                                                  latest              0ce6496aae74        6 weeks ago         497MB
hyperledger/fabric-ca                                                                                    1.4                 3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-ca                                                                                    1.4.6               3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-ca                                                                                    latest              3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-tools                                                                                 1.4.6               0f9743ac0662        3 months ago        1.49GB
hyperledger/fabric-tools                                                                                 latest              0f9743ac0662        3 months ago        1.49GB
hyperledger/fabric-orderer                                                                               1.4                 84eaba5388e7        3 months ago        120MB
hyperledger/fabric-orderer                                                                               1.4.6               84eaba5388e7        3 months ago        120MB
hyperledger/fabric-orderer                                                                               latest              84eaba5388e7        3 months ago        120MB
hyperledger/fabric-peer                                                                                  1.4                 5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-peer                                                                                  1.4.6               5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-peer                                                                                  latest              5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-zookeeper                                                                             0.4                 ede9389347db        7 months ago        276MB
hyperledger/fabric-zookeeper                                                                             0.4.18              ede9389347db        7 months ago        276MB
hyperledger/fabric-zookeeper                                                                             latest              ede9389347db        7 months ago        276MB
hyperledger/fabric-kafka                                                                                 0.4                 caaae0474ef2        7 months ago        270MB
hyperledger/fabric-kafka                                                                                 0.4.18              caaae0474ef2        7 months ago        270MB
hyperledger/fabric-kafka                                                                                 latest              caaae0474ef2        7 months ago        270MB
hyperledger/fabric-couchdb                                                                               0.4                 d369d4eaa0fd        7 months ago        261MB
hyperledger/fabric-couchdb                                                                               0.4.18              d369d4eaa0fd        7 months ago        261MB
hyperledger/fabric-couchdb                                                                               latest              d369d4eaa0fd        7 months ago        261MB

Теперь в приведенном выше списке изображений это изображение 'hyperledger / fabri c -javaenv', которое будет использоваться HLF для скомпилируйте свой цепной код из контейнера cli. Именно этот образ мы хотели бы обогатить зависимостями 'c: \ users \ your-user-name.gradle' от вашей машины. Кроме того, на момент написания этой статьи изображение 'hyperledger / fabri c -javaenv' использовало версию Gradle 4.5, и я хотел использовать последнюю версию Gradle. Итак, я также скопировал gradle 6.3 (хотя Gradle 6.4 был последним на момент написания этой статьи) тоже в изображение 'hyperledger / fabri c -javaenv'.

Итак, для этого в новой папке поместите в него файл с именем «Dockerfile» (без расширения файла) со следующим содержимым (с этого момента я предполагаю, что у вас будут некоторые знания о docker, в противном случае вам следует остановиться здесь. Изучите некоторые основы Docker и продолжайте отсюда).

FROM hyperledger/fabric-javaenv:1.4
RUN rm -rf /root/.gradle
RUN rm -rf /opt/gradle

ADD ./gradle.zip /opt/
RUN unzip -o /opt/gradle.zip -d /opt/

ADD ./.gradle.zip /root/.gradle/
RUN unzip -o /root/.gradle/.gradle.zip -d /root/.gradle
ENV PATH="/opt/gradle/gradle-6.3/bin:${PATH}"
ENV GRADLE_HOME="opt/gradle/gradle-6.3"
RUN chmod 777 /opt/gradle/gradle-6.3/bin/*
ENV JAVA_HOME="/opt/java/openjdk"

Теперь заархивируйте c: \ users \ your-user-name.gradle содержимое папки (а не саму папку) как '.gradle.zip' и поместите это в указанной выше папке. Затем также поместите gradle.zip (это будет загруженное программное обеспечение gradle, и когда вы разархивируете этот gradle.zip, он должен иметь в нем gradle-6.3, и в нем будет все программное обеспечение Gradle. Вы можете отредактировать выше 'Dockerfile', чтобы иметь в противном случае правильно).

Поскольку я запускаю все это на windows, на моем компьютере установлен «docker рабочий стол», и я также выбрал «переключиться на linux контейнеры». Если у вас нет этого программного обеспечения, вам необходимо установить его. Опять же, предполагая, что вы не находитесь за прокси-сервером, у вас не будет всех этих проблем, связанных с прокси, и все должно быть гладко для установки Docker.

Затем нам нужно 'построить' образ docker, используя выше 'Dockerfile'.

Microsoft Windows [Version 10.0.17763.1217]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\sw\hlf-scripts\javaenv-image-2>dir
 Volume in drive C is Windows
 Volume Serial Number is AE8A-E101

 Directory of C:\sw\hlf-scripts\javaenv-image-2

02-06-2020  00:20    <DIR>          .
02-06-2020  00:20    <DIR>          ..
02-06-2020  00:19        68,813,513 .gradle.zip
01-06-2020  21:21               412 Dockerfile
01-06-2020  17:15       101,876,236 gradle.zip

C:\sw\hlf-scripts\javaenv-image-2>docker build .
Sending build context to Docker daemon  170.7MB
Step 1/11 : FROM hyperledger/fabric-javaenv:1.4
 ---> 190c5452a677
Step 2/11 : RUN rm -rf /root/.gradle
 ---> Running in 1bee6799c989
Removing intermediate container 1bee6799c989
 ---> e80c78e7f151
Step 3/11 : RUN rm -rf /opt/gradle
 ---> Running in 8b92d2062a0e
Removing intermediate container 8b92d2062a0e
 ---> 9a8b7ebfd19a
Step 4/11 : ADD ./gradle.zip /opt/
 ---> 6c32d08ac3d6
Step 5/11 : RUN unzip -o /opt/gradle.zip -d /opt/
 ---> Running in db8bbf7af51c
Archive:  /opt/gradle.zip
   creating: /opt/gradle/
   creating: /opt/gradle/gradle-6.3/
   creating: /opt/gradle/gradle-6.3/bin/
  inflating: /opt/gradle/gradle-6.3/bin/gradle
  inflating: /opt/gradle/gradle-6.3/bin/gradle.bat

    ...

  inflating: /opt/gradle/gradle-6.3/lib/xml-apis-1.4.01.jar
  inflating: /opt/gradle/gradle-6.3/LICENSE
  inflating: /opt/gradle/gradle-6.3/NOTICE
  inflating: /opt/gradle/gradle-6.3/README
Removing intermediate container db8bbf7af51c
 ---> 00b1723e518d
Step 6/11 : ADD ./.gradle.zip /root/.gradle/
 ---> 19cab7daafba
Step 7/11 : RUN unzip -o /root/.gradle/.gradle.zip -d /root/.gradle
 ---> Running in cda0aad70e6f
Archive:  /root/.gradle/.gradle.zip
   creating: /root/.gradle/6.3/
   creating: /root/.gradle/6.3/fileChanges/
 extracting: /root/.gradle/6.3/fileChanges/last-build.bin
   creating: /root/.gradle/6.3/fileHashes/

    ...

 extracting: /root/.gradle/vcs-1/gc.properties
   creating: /root/.gradle/workers/
Removing intermediate container cda0aad70e6f
 ---> bd42d756dcf7
Step 8/11 : ENV PATH="/opt/gradle/gradle-6.3/bin:${PATH}"
 ---> Running in 3d84e00c5b82
Removing intermediate container 3d84e00c5b82
 ---> ef445b162906
Step 9/11 : ENV GRADLE_HOME="opt/gradle/gradle-6.3"
 ---> Running in 41c1a2017e9f
Removing intermediate container 41c1a2017e9f
 ---> c77880c756fd
Step 10/11 : RUN chmod 777 /opt/gradle/gradle-6.3/bin/*
 ---> Running in 77eb321c94ce
Removing intermediate container 77eb321c94ce
 ---> 3e4e65c47c61
Step 11/11 : ENV JAVA_HOME="/opt/java/openjdk"
 ---> Running in 4bc72d56e33d
Removing intermediate container 4bc72d56e33d
 ---> eba22c19da02
Successfully built eba22c19da02
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

C:\sw\hlf-scripts\javaenv-image-2>

Проверьте список docker образов, и вы должны найти там недавно созданный образ. В приведенном ниже списке см. Первый, созданный сейчас. У него есть REPOSITORY и TAG as. Обратите внимание, что IMAGEID для этого вновь созданного образа - «eba22c19da02». Позже это будет использовано в приведенной ниже команде.

C:\sw\hlf-scripts\javaenv-image-2>docker image ls
REPOSITORY                                                                                               TAG                 IMAGE ID            CREATED             SIZE
<none>                                                                                                   <none>              eba22c19da02        4 minutes ago       4.94GB
dev-peer0.org2.example.com-fabcar-1.0-264b0a1cb5efbecaac5cf8990339c24474dc8435c6e10f10f2be565d555d0e94   latest              32aca2e8365e        5 hours ago         4.58GB
dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba   latest              89f8611e67f7        5 hours ago         4.58GB
hyperledger/fabric-javaenv                                                                               1.4                 190c5452a677        22 hours ago        4.56GB
hyperledger/fabric-ccenv                                                                                 1.4                 774f228847d4        37 hours ago        1.79GB
openjdk                                                                                                  latest              0ce6496aae74        6 weeks ago         497MB
hyperledger/fabric-ca                                                                                    1.4                 3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-ca                                                                                    1.4.6               3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-ca                                                                                    latest              3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-tools                                                                                 1.4.6               0f9743ac0662        3 months ago        1.49GB
hyperledger/fabric-tools                                                                                 latest              0f9743ac0662        3 months ago        1.49GB
hyperledger/fabric-orderer                                                                               1.4                 84eaba5388e7        3 months ago        120MB
hyperledger/fabric-orderer                                                                               1.4.6               84eaba5388e7        3 months ago        120MB
hyperledger/fabric-orderer                                                                               latest              84eaba5388e7        3 months ago        120MB
hyperledger/fabric-peer                                                                                  1.4                 5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-peer                                                                                  1.4.6               5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-peer                                                                                  latest              5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-zookeeper                                                                             0.4                 ede9389347db        7 months ago        276MB
hyperledger/fabric-zookeeper                                                                             0.4.18              ede9389347db        7 months ago        276MB
hyperledger/fabric-zookeeper                                                                             latest              ede9389347db        7 months ago        276MB
hyperledger/fabric-kafka                                                                                 0.4                 caaae0474ef2        7 months ago        270MB
hyperledger/fabric-kafka                                                                                 0.4.18              caaae0474ef2        7 months ago        270MB
hyperledger/fabric-kafka                                                                                 latest              caaae0474ef2        7 months ago        270MB
hyperledger/fabric-couchdb                                                                               0.4                 d369d4eaa0fd        7 months ago        261MB
hyperledger/fabric-couchdb                                                                               0.4.18              d369d4eaa0fd        7 months ago        261MB
hyperledger/fabric-couchdb                                                                               latest              d369d4eaa0fd        7 months ago        261MB

Теперь мы хотим указать docker использовать это вновь созданное изображение как изображение 'hyperledger / fabri c -javaenv' (которое позже будет выбрано вверх по HLF при создании сети HLF). Для всего этого я использую HLF 1.4, а в теге ниже указано «: 1.4». После запуска команды вы можете заметить, что «eba22c19da02» теперь заполнено как «hyperledger / fabri c -javaenv», а TAG - как 1. 4

C:\sw\hlf-scripts\javaenv-image-2>docker tag eba22c19da02 hyperledger/fabric-javaenv:1.4

C:\sw\hlf-scripts\javaenv-image-2>docker image ls
REPOSITORY                                                                                               TAG                 IMAGE ID            CREATED             SIZE
hyperledger/fabric-javaenv                                                                               1.4                 eba22c19da02        8 minutes ago       4.94GB
dev-peer0.org2.example.com-fabcar-1.0-264b0a1cb5efbecaac5cf8990339c24474dc8435c6e10f10f2be565d555d0e94   latest              32aca2e8365e        5 hours ago         4.58GB
dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba   latest              89f8611e67f7        5 hours ago         4.58GB
hyperledger/fabric-ccenv                                                                                 1.4                 774f228847d4        37 hours ago        1.79GB
openjdk                                                                                                  latest              0ce6496aae74        6 weeks ago         497MB
hyperledger/fabric-ca                                                                                    1.4                 3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-ca                                                                                    1.4.6               3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-ca                                                                                    latest              3b96a893c1e4        3 months ago        150MB
hyperledger/fabric-tools                                                                                 1.4.6               0f9743ac0662        3 months ago        1.49GB
hyperledger/fabric-tools                                                                                 latest              0f9743ac0662        3 months ago        1.49GB
hyperledger/fabric-orderer                                                                               1.4                 84eaba5388e7        3 months ago        120MB
hyperledger/fabric-orderer                                                                               1.4.6               84eaba5388e7        3 months ago        120MB
hyperledger/fabric-orderer                                                                               latest              84eaba5388e7        3 months ago        120MB
hyperledger/fabric-peer                                                                                  1.4                 5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-peer                                                                                  1.4.6               5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-peer                                                                                  latest              5a52faa5d8c2        3 months ago        128MB
hyperledger/fabric-zookeeper                                                                             0.4                 ede9389347db        7 months ago        276MB
hyperledger/fabric-zookeeper                                                                             0.4.18              ede9389347db        7 months ago        276MB
hyperledger/fabric-zookeeper                                                                             latest              ede9389347db        7 months ago        276MB
hyperledger/fabric-kafka                                                                                 0.4                 caaae0474ef2        7 months ago        270MB
hyperledger/fabric-kafka                                                                                 0.4.18              caaae0474ef2        7 months ago        270MB
hyperledger/fabric-kafka                                                                                 latest              caaae0474ef2        7 months ago        270MB
hyperledger/fabric-couchdb                                                                               0.4                 d369d4eaa0fd        7 months ago        261MB
hyperledger/fabric-couchdb                                                                               0.4.18              d369d4eaa0fd        7 months ago        261MB
hyperledger/fabric-couchdb                                                                               latest              d369d4eaa0fd        7 months ago        261MB

C:\sw\hlf-scripts\javaenv-image-2>

Теперь приступайте к созданию Java HLF-сети, установка и удаление вашего цепного кода должны завершиться успешно.

...