代码之家  ›  专栏  ›  技术社区  ›  Adrian

您是否可以在不经过升级过程的情况下更改状态?

  •  1
  • Adrian  · 技术社区  · 6 年前

    如果我将contract和state类放在两个不同的cordapp jar中。

    我相信如果我改为更改合同,旧状态对象通过哈希引用旧合同附件将抛出一个错误 ContractConstraintRejection

    但如果情况正好相反,当我更改状态时,即添加一个新参数。这会影响到任何事情吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Cais Manai    6 年前

    有趣的问题。

    一旦与您进行交易的节点接收到该事务,它确实会影响该事务。

    这是因为您的状态在两个节点上仍然具有相同的类名,并且当另一个节点收到修改后的状态时,它将不知道如何反序列化修改后的状态并引发异常。