2017-02-28 97 views
1

有一種方法來的鏈代碼(即世界狀態,鑰匙,其他人屬性?)不同方面從一個鏈碼複製到另一個?我正在嘗試這一點,但我可以預見一個場景,我需要更改一些代碼&部署。hyperledger織物塊複製

部署基本上會創建具有自身狀態的新chaincode。假設我想訪問前一個鏈式代碼中的鍵。我需要跟蹤織物中以前的所有鏈代碼ID嗎?有沒有辦法將所有密鑰合併到新部署的鏈接代碼中?

回答

1

Fabric 1.0有兩個功能可以幫助您。

1)Chaincode upgrade。假設第一個鏈式代碼是版本1.如果您的新鏈式代碼具有相同的名稱,但您只需增加版本號,則在實例化時,新鏈式代碼將繼承第一個鏈式代碼的完整狀態。第一個鏈代碼將不再是可調用的。

2)Chaincode到chaincode調用。第二個鏈碼可以使用InvokeChaincode() API來調用第一個鏈碼。 這可以在實例化時在新鏈代碼的Init()函數中完成,以從第一鏈代碼讀取所有相關狀態並在第二鏈代碼中創建關聯狀態。或者,第二鏈代碼可以在傳統調用期間根據需要調用第一鏈代碼,以引用或複製特定事務所需的任何狀態。

當然,利用的解決方案#2,那麼你需要在第一chaincode提供正確的查詢功能。如果你沒有這些,那麼你可以使用綜合解決方案。首先,使用解決方案#1升級第一個鏈式代碼以添加所需的正確查詢函數,然後使用解決方案#2從全新的鏈式代碼調用這些新的查詢函數。