部署简单存储与万花筒的合同



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

$ ./truffle_migrate.sh + 松露迁移 --网络上节点 --重置 使用网络"上节点"。

运行迁移:1_initial_migration.js保存项目...运行 迁移:2_deploy_simplestorage.js部署简单存储...
。0xd6d9cfe1ab5b01abb759fb8280920d8f7ba0cef73340af22e47a9c7e40120c14

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

所以我一步一步地尝试重新创建你的场景 - 3 个节点运行 Quorum + Raft 以及节点 1 和 3 之间的私人事务。

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

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

松露有时很挑剔,尤其是在将 RAFT 用于私人交易时。

我建议:

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

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

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

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

最新更新