我正在研究tutorial。在'ping-pong'项目文件夹中运行npm run fetch-template-ids
后,当我检查template-ids.json的内容时,它看起来如下:
{"Car.Car":{"packageId":"9158c3e66ac2a78e427307b098f7a45e86ddcb40a9be6a26eea0d363e7b48a10","name":"Car.Car"}}
答案 0 :(得分:1)
从输出来看,您似乎正在为与本教程一起提供的模型不同的模型生成模板标识符文件。
该脚本通过使用绑定来连接到正在运行的分类帐,并下载带有其程序包标识符的加载模板来工作。默认情况下,它会尝试连接到localhost:7600
。
有关所观察到的行为的解释是,您自己的计算机上的端口7600上有一个正在运行的沙箱,该沙箱的模型加载了包含模板Car
的模块Car
。
您可以遵循方法。
npm run fetch-template-ids
要找到正在运行的分类帐,可以使用this answer。
当您在7600端口上找到分类帐繁忙时,我的建议是转到其项目目录并运行da stop
,而不是将其杀死。项目目录应该易于识别,这是作为参数传递的DAR文件所在路径的一部分。
例如,如果命令包含以下路径作为参数
/home/someuser/path/to/your-daml-project/target/PingPongExample.dar
您要执行以下操作
cd /home/someuser/path/to/your-daml-project
da stop
使用附加选项运行脚本
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上运行的分类帐。如果您采用第二种方法,请确保进行必要的安排以连接到正确的分类帐(我相信唯一需要做的更改是在调用DamlLedgerClient.connect
时指定另一个端口。