簡體   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