Hyperledger Composer Playground

游乐场教程

在本分步教程中,我们将介绍如何设置业务网络,定义资产,参与者和交易,以及通过创建一些参与者和资产来测试我们的网络,以及提交交易以将资产的所有权从一个更改为另一个。本教程旨在使用在线游乐场环境作为Hyperledger Composer概念的介绍。

第一步:打开Hyperledger Composer Playground

Open Composer Playground(注意,此链接将带您进入Web Composer Playground - 如果您已经安装了开发环境,也可以使用本地版本)。

您应该会看到“ 我的业务网络”屏幕。“ 我的业务网络”页面显示了可以连接到的业务网络的摘要,以及可用于连接到它们的身份。暂时不要太担心这一点,因为我们要创建自己的网络。

第二步:创建一个新的业务网络

接下来,我们想从头开始创建一个新的业务网络。业务网络有几个定义属性; 名称和可选说明。您还可以选择在现有模板上建立新的业务网络,或导入您自己的模板。

  1. 单击“Web浏览器”标题下的“ 部署新业务网络 ”以开始使用。

  2. 新的业务网络需要一个名称,让我们称之为tutorial-network

  3. (可选)您可以输入业务网络的说明。

  4. 接下来我们必须选择一个基于我们的业务网络,因为我们想要从头开始构建网络,点击空业务网络

  5. 现在我们的网络已定义,请单击“ 部署”

注意:如果您在本地使用游乐场并连接到真正的 Fabric,请参阅本教程底部的其他说明。

 

第三步:连接到业务网络

现在我们已经创建并部署了业务网络,您应该在钱包中看到一个名为admin的新业务网卡,用于我们的业务网络教程网络。钱包可以包含业务网卡以连接到多个部署的业务网络。

连接到外部区块链时,业务网卡代表连接到业务网络所需的一切。它们包括连接详细信息,身份验证材料和元数据。

要连接到我们的业务网络,请单击我们的业务网卡下的立即连接

 

第四步:添加模型文件

如您所见,我们现在位于“ 定义”选项卡中,此选项卡是您在部署它们并使用“ 测试”选项卡测试它们之前创建和编辑构成业务网络定义的文件的位置。

当我们选择空的业务网络模板时,我们需要修改提供的模板文件。第一步是更新模型文件。模型文件定义业务网络中的资产,参与者,事务和事件。

有关我们的建模语言的更多信息,请查看我们的文档

  1. 单击模型文件以查看它。

  2. 删除模型文件中的代码行并将其替换为:

     

    复制
    /**
     * My commodity trading network
     */
    namespace org.example.mynetwork
    asset Commodity identified by tradingSymbol {
        o String tradingSymbol
        o String description
        o String mainExchange
        o Double quantity
        --> Trader owner
    }
    participant Trader identified by tradeId {
        o String tradeId
        o String firstName
        o String lastName
    }
    transaction Trade {
        --> Commodity commodity
        --> Trader newOwner
    }
    

     

    此域模型定义单个资产类型Commodity和单个参与者类型Trader以及Trade用于修改商品所有者的单个事务类型。

第五步:添加事务处理器脚本文件

现在已经定义了域模型,我们可以为业务网络定义事务逻辑。Composer使用JavaScript函数表达业务网络的逻辑。提交事务进行处理时,将自动执行这些功能。

有关编写事务处理器函数的更多信息,请查看我们的文档

  1. 单击“ 添加文件”按钮。

  2. 单击脚本文件,然后单击“ 添加”

  3. 删除脚本文件中的代码行,并将其替换为以下代码:

     

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

     

    此功能仅owner根据newOwner传入Trade事务的属性更改商品的属性。然后它将修改Commodity后的内容保留在资产注册表中,用于存储Commodity实例。

     

第六步:访问控制

访问控制文件定义业务网络的访问控制规则。我们的网络很简单,因此默认的访问控制文件不需要编辑。基本文件为当前参与者networkAdmin提供对业务网络和系统级操作的完全访问权限。

虽然您可以拥有多个模型或脚本文件,但在任何业务网络中只能有一个访问控制文件。

有关访问控制文件的更多信息,请查看我们的文档

第七步:部署更新的业务网络

现在我们有模型,脚本和访问控制文件,我们需要部署和测试我们的业务网络。

单击“ 部署更改”以升级业务网络。

注意:如果您在本地使用游乐场并连接到真正的 Fabric,请参阅本教程底部的其他说明。

 

第八步:测试业务网络定义

接下来,我们需要通过创建一些参与者(在本例中为交易者),创建资产(商品),然后使用我们的交易交易来更改商品的所有权来测试我们的业务网络。

单击“ 测试”选项卡开始。

 

第九步:创建参与者

我们应该向业务网络添加的第一件事是两个参与者。

  1. 确保您在左侧选择了“ 交易者”选项卡,然后单击右上角的“ 创建新参与者 ”。

  2. 您可以看到的是交易者参与者的数据结构。我们想要一些容易识别的数据,所以删除那里的代码并粘贴以下内容:

     

    复制
    {
      "$class": "org.example.mynetwork.Trader",
      "tradeId": "TRADER1",
      "firstName": "Jenny",
      "lastName": "Jones"
    }
    

     

  3. 单击“ 新建”以创建参与者。

  4. 您应该能够看到您创建的新交易者参与者。我们需要另一个交易者测试我们的交易交易,所以创建另一个交易者,但这一次,使用以下数据:

     

    复制
    {
      "$class": "org.example.mynetwork.Trader",
      "tradeId": "TRADER2",
      "firstName": "Amy",
      "lastName": "Williams"
    }
    

     

在继续之前确保两个参与者都存在于交易者视图中!

 

第十步:创建资产

现在我们有两个交易员参与者,我们需要一些东西供他们交易。创建资产与创建参与者非常相似。我们正在创建的商品将拥有一个所有者属性,表明它属于Trader,其tradeIdTRADER1

  1. 单击“ 资产”下的“ 商品”选项卡,然后单击“ 创建新资产”

  2. 删除资产数据并将其替换为以下内容:

     

    复制
    {
      "$class": "org.example.mynetwork.Commodity",
      "tradingSymbol": "ABC",
      "description": "Test commodity",
      "mainExchange": "Euronext",
      "quantity": 72.297,
      "owner": "resource:org.example.mynetwork.Trader#TRADER1"
    }
    

     

  3. 创建此资产后,您应该可以在“ 商品”标签中看到它。

 

第十一步:在参与者之间转移商品

现在我们有两个交易商和一个商品在他们之间进行交易,我们可以测试我们的交易交易。

事务是Hyperledger Composer业务网络中所有更改的基础,如果您想在本教程之后尝试自己的事务,请尝试从“ 我的业务网络”屏幕创建另一个业务网络并使用更高级的业务网络模板。

要测试交易交易:

  1. 单击左侧的“ 提交事务”按钮。

  2. 确保交易类型为交易

  3. 用以下内容替换事务数据,或者只更改详细信息:

     

    复制
    {
      "$class": "org.example.mynetwork.Trade",
      "commodity": "resource:org.example.mynetwork.Commodity#ABC",
      "newOwner": "resource:org.example.mynetwork.Trader#TRADER2"
    }
    

     

  4. 点击提交

  5. 检查我们的资产已经改变所有权从TRADER1TRADER2,通过扩大资产数据部分。您应该看到所有者列为resource:org.example.mynetwork.Trader#TRADER2

  6. 要查看我们的业务网络的完整交易历史记录,请单击左侧的所有交易。以下是提交时每笔交易的清单。您可以看到我们使用UI执行的某些操作(如创建交易者参与者和商品资产)被记录为交易,即使它们未在我们的业务网络模型中定义为交易。这些事务称为“系统事务”,对所有业务网络都是通用的,并在Hyperledger Composer Runtime中定义。

 

退出业务网络

现在交易已成功运行,我们应该退出业务网络,最后到我们开始的“ 我的业务网络”屏幕。

  1. 在屏幕的右上方是一个标有admin的按钮。这将列出您当前的身份,要注销,单击管理员以打开下拉菜单,然后单击我的业务网络

将业务网络部署到真正的Fabric。

在本地使用Playground,您可以使用连接到浏览器本地存储中的“Web浏览器”,或者您可以使用连接到名为“hlfv1”的组中的真实 Fabric

如果您要连接到真正的 Fabric,那么您可能已经创建了一个具有PeerAdmin和ChannelAdmin角色身份的卡 - 这通常称为PeerAdmin。这是用于使用Composer部署和更新网络的卡。

当您将网络部署到真实结构时,在单击“ 部署”按钮之前还有其他字段需要完成- 您需要提供网络管理员的详细信息。

滚动到“部署”屏幕的底部以查找“网络管理员的信誉”。对于简单的开发结构和许多测试网络,您可以提供ID和密钥。注册ID - admin注册秘密 - adminpw

指定ID和密钥后,可以单击“ 部署”按钮并在第3步中继续教程。

如果您使用的是自定义或生产结构 - 请联系您的结构管理员以获取网络管理员的详细信息。

连接到真实结构时更新业务网络

当您使用真正的 Fabric并单击Deploy Changes时,您将看到一个额外的弹出对话框,要求您从下拉列表中指定安装卡和升级卡。通常,您指定与用于部署初始网络的PeerAdmin卡相同。如果您不确定,请联系您的Fabric管理员。

选择卡片,然后单击“ 升级”按钮。请注意,在真正的Fabric上,这可能需要几分钟才能完成。

在第八步恢复教程。

接下来是什么?

您可能想要尝试使用完整开发环境(包括在IDE中开发,生成REST API和骨架Web应用程序)的Developer Tutorial。如果您还没有,则需要在遵循本教程之前安装开发环境

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值