0

我一直在按照本教程将我使用 Kaleido UI 创建的联盟连接到松露:链接。当我最终这样做时:./truffle_migrate.sh 它卡在那里,这是输出:

$ ./truffle_migrate.sh + truffle migrate --network supnode --reset 使用网络'supnode'。

运行迁移:1_initial_migration.js 保存工件...运行迁移:2_deploy_simplestorage.js 部署 SimpleStorage...
... 0xd6d9cfe1ab5b01abb759fb8280920d8f7ba0cef73340af22e47a9c7e40120c14

我不明白问题出在哪里,我确定我已经仔细阅读了本教程,并且我创建了相同的场景。如果有人有任何想法,我将不胜感激。谢谢。

4

1 回答 1

0

因此,我逐步尝试重新创建您的场景 - 运行 Quorum + Raft 的 3 个节点以及节点 1 和 3 之间的私有事务。

在最初的迁移尝试中,我遇到了与您观察到的相同的挂起状态。对区块浏览器的检查显示,两个合约都已实际部署,但都没有被调用(即没有通过迁移文件为简单存储设置状态)。

然后,我将 truffle_migrate.sh 文件更改为以原始 privateFor 节点 (3) 为目标,并将原始目标节点 (1) 用作新的 privateFor 接收者。这立即奏效了。问题是为什么:)

Truffle 有时很挑剔,尤其是在使用 RAFT 进行私人交易时。

我会建议:

  1. 检查您的区块浏览器以确保与网络的连接成功并且合约已部署。
  2. 终止正在运行的迁移过程,然后再次启动它。
  3. 如果这不起作用,请尝试我描述的触发器过程。

我很好奇是否与瞄准 RAFT 领导者有关联,或者松露有时是否需要一些额外的轻推。我们将进行调查。

仅供参考,我最初尝试使用公共事务并使用只有一个节点的 truffle.js 文件。这也立即奏效。所以我的假设是私人交易和 RAFT 有一些微妙的方法。

与此同时,这应该给你一个潜在的解决方法;您将在您的环境中将原始迁移和简单的存储合同作为孤儿。

于 2018-06-01T16:55:44.750 回答