chess replacement project · asx chess replacement 4 steps required to connect directly with csp 1....

45
CHESS Replacement Project Connectivity & Integration Working Group 1 st May 2019

Upload: others

Post on 18-Mar-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

CHESS Replacement Project

Connectivity & Integration Working Group

1st May 2019

2 |

Important Information – Competition Law Policy

Working group members are reminded to have regard to their obligations under competition law. In particular, please note recent changes to the Competition and Consumer Act to prohibit a corporation from engaging with one or more persons in a concerted practice that has the purpose, effect or likely effect of substantially lessening competition.

ASX CHESS Replacement

3 |

Agenda

CDE Updates

Digital Asset & DAML updates

Direct Connectivity – Ledger API

Questions

ASX CHESS Replacement

CDE Update

5 |

CDE Key Updates

• CDE1 is now available for connectivity and functional testing.

• ASX will be contacting all participants and vendors who have submitted Subscriber Technical Application and OrderForms within the next couple of days to configure their connectivity choice(s).

• Application forms available for those that wishing to apply via the Technical Documentation website.

• Technical Documentation has also been updated on the 30th April, key updates;

• Direct Ledger Connectivity

• Known issues / limitations

• Forward Release Plan

• For CDE1, ASX chosen not to implement TLS certificates;

• AMQP requires additional step of adding username/password

• Direct Connectivity requires install of a certificate (available via sFTP)

ASX CHESS Replacement

6 |

CDE Function Availability

ASX CHESS Replacement

Function Drop 1 (April’19) Drop 2 (June’19) Drop 3 (Aug’19) Drop 4 (Oct’19)

Unilateral Demand Transfers x x X x

Bilateral Demand Transfers x x x x

Bilateral Demand Settlement Instructions x x x x

Settlement Locks x x x x

Payment Facilities x x x

Market Trade (Capture, Registration, Novation) x x x

Netting x x

CHESS to / from Issuer Sponsored Transfer x x

CHESS to / from Issuer Sponsored Conversion x X

Unilateral Settlement Instruction X

Bilateral Settlement Instruction X

Batch Settlement X

* Account opening - TBC

Digital Asset and DAML Updates

8 |

Digital Asset & DAML - Updates

ASX CHESS Replacement

DAML (Digital Asset Modelling Language) is the functional programming language designed specifically for use in multi-party business processes, and the language ASX CSP (Clearing and Settlement Platform is being developed in)

April 2019, Digital Asset announced DAML language, runtime and Software Development Kit (SDK) is now freely available under an Apache 2.0 open source license at https://daml.com

- DAML SDK contains two key components;

- DAML (the programming language to develop applications)

- Ledger API (used to connect to applications)

- The ASX CSP is being developed in DAML, participants or vendors are only required to use the Ledger API to connect to CSP (if they chose this connectivity option)

- ASX DLT Solutions allows organisations to develop and host their own applications in DAML independently of CSP.

9 |

Digital Asset & DAML – Updates continued

ASX CHESS Replacement

- ISDA

Digital Asset also recently announced the release of the International Swaps and Derivatives Association’s (ISDA) Common Domain Model (CDM) in DAML. The ISDA CDM provides a hierarchical representation of workflows, events and portfolios, and allows for users to automate their processing.

- DAML multi-platform support

Digital Asset have also announced additional platform support for DAML, including VMWare and Hyperledger, providing a greater choice of technology options and interoperability.

Press releases available daml.com

Direct ConnectivityOverview

11 |

Direct Connectivity – Key Features

ASX CHESS Replacement

Direct Connectivity provides the following features:

• Provides the ability to transact and stream directly against the ledger

• Access to golden shared source data

• Data permissioned at a party level (UIC or BIC)

• Allows applications to connect to CSP solution without a messaging gateway

• Supports multiple concurrent connections

• Can be used as the only method to connect to CSP or in conjunction with to AMQP and/or SWIFTNet

• New non-Clearing and Settlement features may only accessible only via direct

• Workflow defined by ASX for day 1 but scope for participants to develop their own multi-party workflow post go-live.

12 |

Multiple Connectivity options- Examples

ASX CHESS Replacement

Direct ConnectivityTechnical

14 |

Direct Connectivity - Key Terms

Ledger API (Session)

• Ledger provides an API to receive data from and send data to the ledger, called the Ledger API. The Ledger APIis defined using Google Protocol Buffers and gRPC

• Initial focus on JAVA to provide client tools/binding to abstract development in gRPC

• The Ledger API is structured into multiple services that cover various aspects of the ledger, e.g. submittingcommands or reading events

Command

• A command is the exercise of a choice on the participant’s Master Contract, e.g., a command to transfer stock.

ASX CHESS Replacement

15 |

Direct Connectivity - Key Terms

Event

• An event is the resulting contract(s) creation(s)/archival(s) as a consequence of a command submission. All contracts from the time a party was on-boarded to CSP are streamed to the participant node. This ensures that the participant always has access to current state of the ledger.

Master Contract

• Provides choices for business workflows that the party is permissioned to participate in

Active Contracts

• View all entitled active contracts present on the ledger at the time of query. The participant can also apply appropriate filters to ensure they retrieve only contracts of interest

ASX CHESS Replacement

16 |

Connect - Ledger API

ASX CHESS Replacement

Client Application

CommandService

Ledger Configuration

Service

Ledger Identity Service

Package ServiceCommand Submission

Service

Command Completion

Service

Application ServicesLayer

Transaction Service

Ledger ServicesLayer

Command Service

Active ContractService

17 |

Ledger API - Services

• Ledger Services

ASX CHESS Replacement

Ledger Administration

Ledger Identity Service Retrieves the Ledger ID of the ledger the application is connected to.

Ledger Configuration Service Retrieves some dynamic properties of the ledger, like minimum and maximum TTL for commands.

Ledger Metadata Exchange

Package Service Queries the DAML packages deployed to the ledger.

Ledger Data Exchange

Command Submission Service Submits commands to the ledger.

Command Completion Service Tracks the status of submitted commands.

Transaction Service Retrieves transactions of events from the ledger.

• Application Services

Ledger Data Exchange

Command Service Combines command submission and command completion into a single service.

Active Contract Service

Bootstraps an application with active contracts. It eliminates the necessity to read from the beginning

of the ledger and to process create events for contracts that have already been archived.

Building a Client Application

19 |

Direct Connectivity - Getting Started

ASX CHESS Replacement

Key steps required to connect directly with CSP

1. Connecting to the Ledger

Client Application with a Ledger Client library to connect to the ASX CSP

2. Identify Master Ingress Contract

Entitled contracts on the ledger (Identify Master Ingress Contract)

3. Command Send commands and exercise choices on the Master Contract, using the Command Submission Service

4. Listen (Stream) Stream transactions, using the Transaction Service

20 |

Connect to the Ledger - Ledger Client Library

ASX CHESS Replacement

- Apply for the DAML SDK (daml.com)

- Apply for direct connectivity via the order form (via IPSec or ASX Net)

- Download the JAVA Classes (ASX sFTP)

- Download the JAVA Bindings (DA bintray)

21 |

Technical Documentation provides code snippets

ASX CHESS Replacement

22 |

Ledger API Services Accessible

ASX CHESS Replacement

• ActiveContractsClient

• CommandClient

• CommandCompletionClient

• CommandSubmissionClient

• LedgerIdentityClient

• LedgerConfigurationClient

• PackageClient

• TransactionsClient

• TimeClient

23 |

Connect to the Ledger

ASX CHESS Replacement

24 |

Direct Connectivity - Getting Started

ASX CHESS Replacement

4 steps required to connect directly with CSP

1. Connecting to the Ledger Client Application with a Ledger Client library to connect to the ASX CSP

2. Identify Master IngressContract

Entitled contracts on the ledger (Identify Master Ingress Contract)

3. Command Send commands and exercise choices on the Master Contract, using the Command Submission Service

4. Listen (Stream) Stream transactions, using the Transaction Service

25 |

Direct Connectivity - Getting Started

ASX CHESS Replacement

Identifying the Master Ingress contract

1. Identify the package (and Template ID) that contains the Master contract (using the Package

Service)

DA.ASX.Main.Integration.BMW.Ingress.BmwIngressMaster

2

26 |

Direct Connectivity - Getting Started

ASX CHESS Replacement

Identifying the Master Ingress contract

2. Identify the Master Ingress contract (using the Active Contract Set)

27 |

Direct Connectivity - Getting Started

ASX CHESS Replacement

4 steps required to connect directly with CSP

1. Connecting to the Ledger Client Application with a Ledger Client library to connect to the ASX CSP

2. Identify Master Ingress Contract

Entitled contracts on the ledger (Identify Master Ingress Contract)

3. Command Send commands and exercise choices on the Master Contract, using the Command Submission Service

4. Listen (Stream) Stream transactions, using the Transaction Service

28 |

Building a command – Usage Guideline

ASX CHESS Replacement

29 |

Building a command - XSD

ASX CHESS Replacement

30 |

Example

ASX CHESS Replacement

31 | ASX CHESS Replacement

Type equation here.

32 |

Building the command

ASX CHESS Replacement

33 |

Command - Source Applications

A Source Application is an application that submits commands.

There are two ways to submit a command:

1. Command Submission Service is instantaneous, but you must keep track of the submission and wait for the completion on the Completion Service

2. Command Service waits for the completion on the server. It is easier to use, but the submission result is received only after the command has been processed by the Ledger

ASX CHESS Replacement

34 |

Command Service

ASX CHESS Replacement

35 |

Command - Result of a command submission

ASX CHESS Replacement

• OK (when returned by the Command Service)Client can be sure that the command was successful.

• OK, INTERNAL, UNKNOWN (when returned by the Command Submission Service)Client should assume that the command was accepted, and wait for the resulting completion or a timeoutfrom the Command Completion Service.

• ABORTEDThe Ledger failed to record the result of the command due to a transient server side error or a time constraintviolation. The client is free to retry the submission with updated Ledger Effective Time (LET) and MaximumRecord Time (MRT) values.

• INVALID_ARGUMENTThe submission failed because of a client error. The Ledger will definitely reject resubmissions of the samecommand even with updated LET and MRT values.

• INTERNAL, UNKNOWN (when returned by the Command Service)Client should resubmit the command with the same command_id.

36 |

Direct Connectivity - Getting Started

ASX CHESS Replacement

4 steps required to connect directly with CSP

1. Connecting to the Ledger Client Application with a Ledger Client library to connect to the ASX CSP

2. Identify Master Ingress Contract

Entitled contracts on the ledger (Identify Master Ingress Contract)

3. Command Send commands and exercise choices on the Master Contract, using the Command Submission Service

4. Listen (Stream) Stream transactions, using the Transaction Service

37 |

Streaming Response - Transaction Service

ASX CHESS Replacement

38 |

Streaming Response - Transaction Services

ASX CHESS Replacement

Summary

40 |

Summary

• Direct Connectivity available now.

• To use the Ledger API directly, read both the documentation within the DAML SDK documentation and

ASX Technical document to understand what is a valid message for the server.

• Ledger Bindings and JAVA classes to provide support for using the Ledger API

• Start with connectivity testing and then a base message with command service.

• Applications can submit Ingress instructions and receive Egress events. State changes contracts will be

visible in CDE1 and we will cover these more in a subsequent session.

• Give consideration to your application, streaming, event based, message gateway etc.

ASX CHESS Replacement

Q&A

ASX AnnualCustomer Survey

43 |

Annual Customer Survey

• ASX’s Annual Customer Survey closes today

• We would appreciate your feedback to better understand your experiences and identify areas we can

improve

• If you would like to participate, please look for an email reminder from [email protected] on

Monday 29th April

ASX CHESS Replacement

Thank you.

45 |

Disclaimer

This document provides general information only and reflects matters put forward for discussion at a point in time. You should obtain independence advice before making any decisions. ASX Limited (ABN 98 008 624 691) and its related bodies corporate (“ASX”) makes no representation or warranty with respect to the accuracy, reliability or completeness of the information. To the extent permitted by law, ASX and its employees, officers and contractors shall not be liable for any loss or damage arising in any way (including by way of negligence) from or in connection with any information provided or omitted or from anyone acting or refraining to act in reliance on this information. © Copyright 2019 ASX Operations Pty Limited ABN 42 004 523 782. All rights reserved.

ASX CHESS Replacement