Search code examples
javaperformancejmeterblockchaincorda

Does a Corda node communication with Notary is same as in case of another peer node?


TLS connections Corda uses TLS to encrypt the peer to peer connections between nodes. It can be shown that the maximal throughput that is achievable with the JVM TLS layer can limit the node throughput for flows that need to send sufficient amount of data between peers. This is e.g. the case for the CashIssueAndPayment flow in the performance test CorDapp.

Ref: https://docs.r3.com/en/platform/corda/4.9/enterprise/node/operating/optimizing.html#tls-connections

I hope this is same in case of Communication with Notary as well, if so does this connection establish (like handshaking) only on the first flow execution or it happens along with node restart?

I am trying to correlate facts for the significant time taken while calling a flow after the node is up and running when compared to succeeding ones.

Another related question: Corda Jmeter Performance testing takes more time for first sampler inside Thread group (all are Java Request Samplers)


Solution

  • This also applies to the connection to the notary, technically that is just a peer 2 peer connection like to any other node.

    However, I think you misunderstood the bit from the documentation you quoted here. The limitation mentioned there is not on establishing a connection - it refers to the fact that the SSL implementation in Java 1.8 that Corda 4.x uses limits how fast data can be en-/decrypted, so has an impact on the steady stream throughput.