Search code examples
corda

Is it mandatory for all the nodes in a Corda network to have the same version of Cordapp deployed?


Is it mandatory for all the nodes in a Corda network to have the same Cordapp deployed? What if some nodes are having different version? Will the nodes be able to participate in a transaction if they have different versions of Cordapp?


Solution

  • No, it is not mandatory. The version of the same CorDapp deployed in different nodes does not have to be the same, as long as the new version does not break the compatibility with the previous one, so making it impossible for the counterparty to participate to the transactions using the old version. The considerations to make are listed in the doc, but I report them here as well:

    • Flow versioning
    • State and contract versioning
    • State and state schema versioning
    • Serialisation of custom types

    For example, if the new version of the CorDapp change things like the order of some send() and receive(), or the object type passed to the Responder flow, etc the transaction will fail.