首页 > 解决方案 > 超级账本游乐场教程面临的问题

问题描述

我首先使用此链接安装了超级账本:https ://hyperledger.github.io/composer/latest/installing/development-tools.html

在作曲家安装期间...似乎安装了 v0.19.x。

所以当我运行命令 ./createPeerAdminCard.sh ...我得到一个错误:

“此级别的结构不支持 v0.19.x。请使用版本 0.16”...

我检查了脚本fabric-scripts/hlfv1/createPeerAdminCard.sh,它确实说版本应该是0.16.x .. 执行版本检查的脚本的示例片段:

>>
AWKRET=$(echo $COMPOSER_VERSION | awk -F. '{if ($2<15 || $2>16) print "1"; else print "0";}')
    if [ $AWKRET -eq 1 ]; then
        echo $COMPOSER_VERSION is not supported for this level of fabric. **Please use version 0.16**
        exit 1
>>

然后我去卸载了 v0.19.x 并安装了 composer-cli@0.16.6... 为上面安装链接中提到的所有模块做了这个。

在此之后,我能够成功设置我的结构环境。

现在我正在使用此链接中的游乐场教程来创建业务网络。

https://hyperledger.github.io/composer/latest/tutorials/playground-tutorial.html

使用此链接,我可以毫无问题地创建 .cto 文件。

但是当我创建脚本文件时,即带有以下内容的 scrip.js,我得到一个错误。

/**
 * Track the trade of a commodity from one trader to another
 * @param {org.example.mynetwork.Trade} trade - the trade to be processed
 * @transaction
 */
function tradeCommodity(trade) {
    trade.commodity.owner = trade.newOwner;
    let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');
    await assetRegistry.update(trade.commodity);
}

发现错误!SyntaxError:无法解析 null:意外的令牌 (6:6)

当我用谷歌搜索这个问题时..我在下面的链接中看到了同样的问题: Unexpected token (6:6) ...

所以现在解决上面链接中提到的这个问题是.. v0.16.x 不支持 async 和 ES6 关键字......并升级到 0.17.x 及更高版本......

所以现在卡住了..因为如果我将作曲家升级到 v0.17x,上面的 createPeerAdminCard.sh 将失败......如果我坚持使用 0.16.x,那么我会遇到上述脚本解析问题。

您能否帮助或指导我解决此问题的方法?

标签: hyperledger-fabrichyperledgerhyperledger-composer

解决方案


v0.19.* 是 Composer 的受支持版本,因此正如 Leonardo 所说,您应该删除 v0.16 和 Fabric 1.0 并使用更高版本“重新启动”。这些是广泛的步骤:

  1. 停止并移除 docker 容器
  2. 删除 Docker 镜像
  3. npm uninstall -g模块
  4. rm -rf ~/.composer移除 v0.16 版本的卡片
  5. 删除文件夹和内容(如果是旧版本,fabric-dev-servers可能会调用它)fabric-tools
  6. 下载新版本的fabric-dev-servers,并运行downloadFabric.sh 脚本
  7. 检查 Fabric 容器的版本docker ps

然后,您应该可以返回“安装”文档和开发人员教程。


推荐阅读