Blockchain 每个资产在Fabric中是否应该有自己的链码?

Blockchain 每个资产在Fabric中是否应该有自己的链码?,blockchain,hyperledger-fabric,Blockchain,Hyperledger Fabric,仅使用一个链码 我也知道,前面的教程使用了一个名为simpleaset的链码 这是否意味着一项资产需要1个链码?如果我的应用程序涉及多种资产类型(例如小部件和小工具),那么最好的做法是使用单独的链码管理每种资产类型的生命周期吗?或者一个链码?可以使用一个链码来管理多个资产。关于如何将资产映射到链码,没有固定的规则,但我发现一些有用的指导原则是: 如果资产是紧密耦合的,我更喜欢使用单个链码来管理它们,特别是如果一个资产的生命周期取决于另一个资产的lyfe周期 如果您期望特定资产的逻辑和生命周期发

仅使用一个链码

我也知道,前面的教程使用了一个名为
simpleaset
的链码


这是否意味着一项资产需要1个链码?如果我的应用程序涉及多种资产类型(例如小部件和小工具),那么最好的做法是使用单独的链码管理每种资产类型的生命周期吗?或者一个链码?

可以使用一个链码来管理多个资产。关于如何将资产映射到链码,没有固定的规则,但我发现一些有用的指导原则是:

  • 如果资产是紧密耦合的,我更喜欢使用单个链码来管理它们,特别是如果一个资产的生命周期取决于另一个资产的lyfe周期

  • 如果您期望特定资产的逻辑和生命周期发生变化,那么最好将其隔离在自己的链码中。其想法是将很少改变其行为的资产与需要不时更改其链码的资产分开

  • 尽量保持你的链码小。这主要是个人偏好,但也与前一点有关

  • 如果您有少量的资产,并且没有太多的逻辑,那么使用单个链码可能是有意义的


希望你觉得这很有用。

有一件事需要记住。一旦要在单个链码命名空间中维护所有资产,就需要能够以某种方式区分不同类型的资产,这样,您将能够根据其ID搜索特定类型的资产。这最终将迫使您扩展文档模型,以包含类型信息或将该知识合并到密钥中,从而更容易区分资产/文档的类型

现在,考虑到这一点,这在某种意义上与将资产管理拆分为单独的链码具有相同的效果。此外,将不同类型资产的管理或维护与不同的分类将有助于更好地分离关注点,这通常会更好地设计实践

进行小型PoC或玩弄平台将所有内容都放在一个链码中是很有意义的,从长远来看,请记住,您最终需要支持自己的链码库,我建议在有意义的时候拆分链码,我认为管理多个资产是一个很好的选择