Slide 1

Slide 1 text

1  1  Testing in the fast chain Dr. Moray Grieve, Head of QA

Slide 2

Slide 2 text

Enterprise grade blockchain platform enabling distrusting parties to form and maintain consensus about the existence, status and evolution of a set of shared facts. 2

Slide 3

Slide 3 text

Key Concepts States States are immutable objects that represent shared facts such as a financial agreement or contract at a specific point in time Transactions Transactions consume input states and create output states. Newly created output states replace the input states which are marked as historic Contracts Contracts control the evolution of states by allowing relevant participants to check for transaction validity Flows Flows are light-weight processes used to coordinate interactions required for peers to create and agree transactions

Slide 4

Slide 4 text

The Ledger The ledger from each peer’s point of view is the union of all intersections with other network peers Numbered circles represent unique shared facts 4

Slide 5

Slide 5 text

Transactions TxHash:f70f5… Index: 2 TRANSACTION Hash = 95fd065cb0… TxHash:8031d… Index: 0 New State 1 New State 2 TxHash:95fd0… Index: 1 TRANSACTION Hash = 1ba0ce7a71… TxHash: 0dbfc… Index: 0 New State 1 TxHash:5600d… Index: 3 TRANSACTION Hash = 0dbfcf6665… TxHash:047dd… Index: 0 New State 1 New State 2 HISTORIC HISTORIC • Transactions are proposals to update the ledger • A transaction will only be committed if • It doesn’t contain double spends • It is contractually valid • It is signed by all required parties • State references link together transactions over time, forming transaction chains

Slide 6

Slide 6 text

Flows ALICE BOB 1. Alice creates a new transaction proposal and signs it 2. Alice sends the proposal and her signature to Bob 3. Bob inspects the proposal, verifies it and then signs it 4. Bob sends back the transaction and his signature to Alice 5. Alice verifies the transaction and checks Bob’s signature Uninvolved peers do not receive any of Alice’s or Bob’s transactions

Slide 7

Slide 7 text

What it is What it does Trust Root The single, long-term cryptographic key which all network‘s identity (X509) certificates root back to It provides the basis of trust in the provenance of data, recognised by participants Identity Manager Admits new members onto the network via granting an identity certificate Performs 3 checks on new certificate requests and grants based on passing the checks Network Map A list of IP addresses and legal entity names of each participant on the network, which all participants can access Acts as a Corda Network ‘phone directory’ Notary Node or cluster of notary nodes Prevents double-spend of input states nodes notary A Corda Network The Network Permissioned network with public identities allowing nodes to communicate directly with each other

Slide 8

Slide 8 text

Testing challenges • Platform technology (build CorDapps to test the full API) • Highly distributed (complexity in test automation) • Heterogeneous networks (combinatorial explosion) • Highly secure (cryptography, ledger consistency is everything) • Eventually consistent (transaction flows can be complex) • Evolutionary lifecycle (platform and CorDapp upgrades) • Highly available (resiliency testing) • Temporal (performance testing)

Slide 9

Slide 9 text

Heterogenous networks 9 Corda OS 4.0 Corda ENT 4.0 Corda ENT 4.1 Corda ENT 4.1 CorDapp 1.1 / 1.3 Corda OS 4.0 CorDapp 1.1 / 1.2 / 1.3 Operating Systems JVMs HSMs Databases Corda Tokens SDK Corda Accounts SDK 1.0, 1.1 1.0 Corda Enterprise 4.0 can be used in mixed-version networks seamlessly transacting with nodes running on a minimum platform version of 4

Slide 10

Slide 10 text

Combinatorial testing 1 0 The number of unique connections in a network is n*(n-1)/2 • 6 Corda versions (3 Open Source, 3 Enterprise) • 3 Token SDK versions, 2 Account SDK versions • 5 CorDapps, each with 2 versions • 4 Operating systems, 2 JVMs, 5 HSMs, 5 databases • 14,400 Node configurations, 103,672,800 connections, ~1 billion testcases • If 1 min to run a clean test, time to execute ~2,000 years • Pairwise testing reduces to 34 configurations, 561 connections, ~4 days • Two or more differences across Corda parameters reduces network density by 10% • Parallelize across 20 machines to reduce to ~4 hours • Bring up as a single network and run dirty tests

Slide 11

Slide 11 text

London 2 London Wall Place, London, EC2Y 5AU Hong Kong Bonham Strand, 7F Office 18-121 Hong Kong www.r3.com Thank you Brazil Av. Angélica, 2529 - Bela Vista 6th Floor São Paulo - SP, 01153-000, Brazil New York 11 West 42nd Street, 8th Floor New York, NY 10036 Singapore 18 Robinson Road, Level #14-02 Singapore, 048547