Hyperledger fabric 直接将数据存储到Hyperledger结构中,无需链码

Hyperledger fabric 直接将数据存储到Hyperledger结构中,无需链码,hyperledger-fabric,hyperledger,hyperledger-composer,Hyperledger Fabric,Hyperledger,Hyperledger Composer,我可以直接将数据存储到数据库中,而不必在Hyperledger结构中使用链码。我可以在Hyperledger composer中直接调用我声明的资产的API(composer REST SERVER)来实现这一点 我在某个地方读到,链码拥有数据库,这意味着它不能直接存储,hyperledger composer实际上在某种程度上克服了这一点。我说得对吗?谁能澄清一下我遗漏了什么。作曲家在织物上跑步。它在后台使用一些通用链码,这些链码使用模型/事务文件从数据库中放置和获取数据 要使用Fabric存

我可以直接将数据存储到数据库中,而不必在Hyperledger结构中使用链码。我可以在Hyperledger composer中直接调用我声明的资产的API(composer REST SERVER)来实现这一点


我在某个地方读到,链码拥有数据库,这意味着它不能直接存储,hyperledger composer实际上在某种程度上克服了这一点。我说得对吗?谁能澄清一下我遗漏了什么。

作曲家在织物上跑步。它在后台使用一些通用链码,这些链码使用模型/事务文件从数据库中放置和获取数据

要使用Fabric存储数据,您必须编写一个简单的链码。幸运的是,在Hyperledger Fabric提供的示例文件中,您可以找到正确的方法。
请参见大理石:

链码是织物的强制性组件的一部分。当您从应用程序调用REST服务器查询或向分类账添加新信息时,Fabric需要使用链码来执行该命令

如果没有链码,您的Fabric网络将不会有任何“业务逻辑”(例如,seller1向buyer2提供最少XItems和最多YItems的资产)。此外,将变更纳入区块链的工作流要求作为第一步,每个对等方使用链码签署交易提案,这意味着==>无链码=交易提案无背书=区块链无变更(勾选“阶段1:提案”->)

结构网络中的任何人是否可以在不执行链码的情况下更改分类账,这意味着任何人都可以包含不适合您的业务模型/逻辑的数据


Composer及其组件只是结构顶部的一个可选层。composer中包含的所有组件仅与Fabric(强制/基础层)交互,如果没有链码,Fabric将无法查询或更改分类账状态,因此使用此功能的composer组件将失败

如果使用composer,则会自动使用以bna形式部署到网络的链码。那个bna是链码。composer rest server为您自动创建的API利用了该链码,并为您创建端点以访问所述链码并使用网络

您可以扩展bna,可以添加访问规则或创建事务,无论您真正需要什么。现在,您还提到了一个数据库

hyperledger的工作方式如下:

账本本身是磁盘上的文件,而不是数据库。该文件包含发生的一切,并存储每个信息块及其包含的事务。还有一个世界数据库,但该数据库只公开每项资产的当前状态,而不是每项状态更改。无论如何,直接更改该数据库是没有意义的,因为它可以而且将在需要时轻松地重新创建

<最后一件事,我的作曲家正在走出去,IBM已经宣布不再开发/维护它,所以你需要考虑其他方式:


这是否意味着hyperledger composer在结构的单个通道上运行。然而,在内部,它不仅生成一个链码,而且生成许多链码来实现Composer的业务网络存档?这是个好问题。如果您使用的是Docker,则可以连接到cli容器或对等容器,并查看设置所有composer内容后使用的链码和通道数。如果我记得清楚的话,频道名称包含在创建Composer业务网卡时必须创建的网络json文件中。参见此处第3步;composer业务网络在单个通道上的单个链码id下执行。您可以将同一业务网络部署到不同的渠道,也可以在同一渠道上运行多个业务网络