Руководство по привязке узлов DA - проблема «получения идентификаторов пакетов» - PullRequest
0 голосов
/ 26 февраля 2019

Я работаю над учебником .Когда я проверяю содержимое шаблона-ids.json после запуска npm run fetch-template-ids в папке проекта 'ping-pong', оно выглядит следующим образом:

{"Car.Car":{"packageId":"9158c3e66ac2a78e427307b098f7a45e86ddcb40a9be6a26eea0d363e7b48a10","name":"Car.Car"}}

1 Ответ

0 голосов
/ 27 февраля 2019

Судя по выводу, похоже, что вы создаете файл идентификаторов шаблона для модели, отличной от той, которая поставляется с учебником.

Сценарий работает с использованием привязок для подключения к работающей бухгалтерской книге изагрузить шаблоны, загруженные в него, с их идентификаторами пакетов.По умолчанию он пытается подключиться к localhost:7600.

. Объяснение поведения, которое вы наблюдаете, состоит в том, что у вас есть работающая песочница через порт 7600 на вашей собственной машине, на которой установлена ​​модель, загруженная с модулем Carсодержащий шаблон Car.

Вы можете следовать подходам.

1.Перезапустите учебную изолированную программную среду на порту 7600

  • Найдите и остановите изолированную программную среду, работающую на порту 7600
  • Перезапустите изолированную программную среду из учебного проекта
  • , убедитесь, что перезапущенная бухгалтерская книга работаетна порту 7600
  • запустить npm run fetch-template-ids как обычно

Чтобы найти работающий регистр, вы можете использовать этот ответ .

Когда вы нашлирегистр занят на порту 7600, я рекомендую перейти в каталог проекта и запустить da stop, а не убивать его.Каталог проекта должен быть легко идентифицирован как часть пути, в котором находится файл DAR, переданный в качестве аргумента.

Например, если команда включает в качестве аргумента следующий путь

/home/someuser/path/to/your-daml-project/target/PingPongExample.dar

Вы хотите сделать следующее

cd /home/someuser/path/to/your-daml-project
da stop

2.Запустите учебник, используя другой порт

  • , проверьте, на каком порту работает песочница учебника
  • , запустите сценарий с дополнительной опцией

        npm run fetch-template-ids -- -p <PORT_NUMBER>
        #                          ^^ notice the double dash here
    

Если вы не уверены в порте, на котором работает песочница для учебника, вы можете проверить его, остановив и перезапустив с помощью следующей команды из каталога проекта учебника :

da stop && da sandbox

Вывод должен выглядеть следующим образом

stopping... Sandbox ledger server
/path/to/daml/PingPong.daml with no scenario
and binding to port 7676
[Info] Starting:
    Sandbox ledger server
    /home/ste/Projects/DACH-NY/pooong/daml/PingPong.daml with no scenario
    and binding to port 7676

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

npm run fetch-template-ids -- -p 7676

Кроме того, обратите внимание, что в руководстве предполагается, что вы используете бухгалтерскую книгу, которая работает на порту 7600. Если вы придерживаетесь второго подхода, убедитесь, что вы приняли необходимые меры для подключения к правильной бухгалтерской книге (IПоверьте, единственное необходимое изменение - указать другой порт при вызове DamlLedgerClient.connect).

...