从对等节点删除 ChainCode

Deleting ChainCode from peer

我弄错了我的链代码并将它们安装在我网络上的对等节点上。当我尝试在通道中实例化链代码时,我发现了错误。

  1. 有没有办法在将链代码安装到对等点之前对其进行调试?它似乎只有在您实例化它时才会被标记。
  2. 有没有办法在不重启网络的情况下从节点中删除链码?
  1. 看你说的错误/调试是什么意思。你应该确保它首先编译。这消除了所有拼写错误、语法、缺少的库等。但是除了安装和实例化之外,没有其他方法可以调试功能。

  2. 从技术上讲,没有。您可以删除所有存储(/var/hyperledger/production/peer、/var/hyperledger/production/orderer、kafka/zookeeper 文件和 CouchDB)。没什么大不了的,但你必须重新启动网络并重新创建频道,加入它,安装和实例化 cc 等。但你可以安装为不同的名称。只需更改应用程序连接定义中的名称以匹配即可。您还可以通过更改版本号但保持相同的名称来升级。

我只是更改名称,直到我到达一个相当稳定的位置,然后进行删除并重新启动所有以进行清理。一次完整的清理(4 个 peers,3 个 orderers,4 个 kafka,3 个 zoopkeeper)可能需要 30 分钟。通常,我会通过安装 ccname1 并在缓冲区中实例化 ccname1 来保持 CLI 打开状态,并且可以轻松地递增到 ccname2、3、4、5。这样只需要几秒钟。

如果错误是(链码已经存在于节点中)

您可以尝试安装不同版本号或不同链码名称的链码

您只能在频道中启动一次链代码。下次您必须按照升级链码步骤进行操作。

注意 : 在安装链码之前,您可以通过安装 go 并编译链码来检查机器的语法错误。