0
votes

When building on open source Corda how can I make changes to the project in way that the Corda node will continue to be interoperable with nodes built on standard open source Corda?

The concern is that by forking Corda I may inadvertently change the Corda protocol such that my node can no longer communicate with other nodes. For example: changing serialization could break the p2p messaging between nodes.

In addition: does the network the Corda node run in affect how much I can modify a forked version of Corda? For example:

  1. What if the forked nodes are running in a private network where all nodes are under my control.
  2. What if the forked nodes are running in the Corda Network where other nodes are using standard versions of Corda.
1

1 Answers

1
votes

If you run in the Corda Network then the relevant policy is this one:

https://corda.network/policy/protocol-definition.html

Zone members agree that their nodes will understand the Corda protocol as defined by the open source reference implementation, of at least the version specified in the network parameters’ minPlatformVersion field or higher.

So you can modify your node as long as it still understands how to speak with other nodes. This is a fairly lax definition. You can change a lot without breaking that requirement. But it sounds like you already know what to watch out for - changing serialisable types, mostly. It's up to you to ensure you don't deviate from the protocol.

In your own networks you can of course do whatever you like. It's open source after all.