Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EXTENT-2019: Testing in the Fast Chain

Exactpro
September 17, 2019

EXTENT-2019: Testing in the Fast Chain

Testing in the Fast Chain
Moray Grieve, Head of QA, R3

EXTENT-2019
17 September 2019, London

At EXTENT-2019, Moray Grieve, Head of QA, R3 gave a brief overview of R3’s Corda platform and shared his insights into the particulars of testing DLT systems.
Follow the link to watch the video: https://youtu.be/Jnm-a5sQzfA

To learn more about Exactpro, visit our website https://exactpro.com/
EXTENT Conference website: https://extent.exactpro.com/
Follow us on
LinkedIn https://www.linkedin.com/company/exactpro-systems-llc
Twitter https://twitter.com/exactpro
Facebook https://www.facebook.com/exactpro/
Instagram https://www.instagram.com/exactpro/

Subscribe to Exactpro YouTube channel https://www.youtube.com/c/exactprosystems

Exactpro

September 17, 2019
Tweet

More Decks by Exactpro

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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)
  8. 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
  9. 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
  10. 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