繁体   English   中英

每个资产在Fabric中都有自己的链码吗?

[英]Should each asset have its own chaincode in Fabric?

Chaincode for Developers教程仅使用一个链码。

我知道也支持多个链代码 ,上述教程使用名为SimpleAsset的链SimpleAsset

这是否意味着期望1个资产拥有1个链码? 如果我的应用程序涉及多种资产类型(例如小部件和小工具),那么最佳做法是使用单独的链代码来管理每种资产类型的生命周期吗? 还是单个链码?

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

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

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

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

  • 如果你有少量没有太多逻辑的资产,那么拥有一个链码可能是有意义的。

希望您觉得这个有帮助。

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

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

做一些小型PoC或在平台上玩游戏将一切都放在一个链码中是很有意义的,同时长期说话并记住你最终需要支持你自己的链码代码库,我建议每当分割链码时它是有道理的,我认为管理几个资产是一个很好的候选人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM