考虑到合同升级,将每个州和合同拆分为自己的cordapp /模块是否更好,以便在部署时存在于自己的jar中?
因此,在升级期间,我们只能升级受影响的状态 - 而不是在一个shared-cordapp中具有N个状态,并且当仅升级一个状态时,我们也必须升级所有其他状态。
答案 0 :(得分:0)
假设您最初在节点上部署以下CorDapp:
OldState1
,OldState2
,OldContract1
,OldContract2
OldState3
,OldState4
,OldContract3
,OldContract4
运行节点一段时间后,您需要将OldState1
升级到NewState1
,将OldContract1
升级到NewContract1
。
为此,您需要创建一个包含NewState1
和NewContract1
的新CorDapp JAR,并在您的节点上进行部署。然后,您可以启动升级过程,使用OldState1
将OldContract1
实例转换为使用NewState1
的{{1}}个实例。
换句话说,虽然您的原始CorDapp包含两个州和两个合同,但包含升级的CorDapp只需要包含一个州和一个合同。因此,如您所述,将每个合同和州分成其自己的CorDapp是没有优势的。