Impel's R3 Corda | XDC Network Bridge Architected Design
Impel's bridge platform's architectural style is classified as a Service Oriented Architecture (SOA), to which there are two main services; a user interface service and a bridge service.
A strong advantage of having decoupled application components allows for readiness to easily connect with each new component or with other types of network systems.
Using The Twelve-Factor App principles make Impel's bridge scalable, robust, clean, and easy to incorporate additions.
The main components of the architecture (Image 1) are denoted with digits from 1 to 6 and each one is explained as follows;
The architecture has four core components:
Other bridge actions;
Both the UI and Bridge service uses a Layered Pattern that helps to organize project files and folders, simplifies the entire project structure. This pattern works real well with Angular 9 concepts like service and components to which Impel's bridge uses.
Most importantly, the Adapter pattern is the chosen methodology design used, assisting the bridge service, and allows to scale the system vertically. Depending on the teleport event or if the payload includes digital assets, the appropriate adapter class is chosen to complete a successful transaction.
Other design patterns used by Impel's bridge for both UI and Bridge services include:
Components | Description |
---|---|
Core Components | Description |
---|---|
Action | Description |
---|---|
(1) Blockchain
Is the core technology where all types of XDC Network transactions are stored.
(2) Smart contract
Bridge pieces of code stored in the blockchain that helps the system to interact and manipulate data in the blockchain.
(3) UI service
A Angular 9 frontend application created for user interaction with the system functionalities.
(4) Bridge service
NodeJS backend application containing the business logic functionalities of the system.
(5) Cordite bridge node
Cordite application node instance where bridge account is stored.
(6) Cordite node
Simple Cordite node where other accounts can be stored.
(U)ser
The human user interface interactions
(S)end
Send flow system actions
(R)eceive
Receive flow system actions
(T)ransactions
Transactions query system actions
U1. User interaction
The user can send or receive XDC asset value to or from Corda accounts and further this will trigger system actions like S1 or R1.
S1. Trigger send
Calls a smart contract method to send XDC tokens further to Corda account.
S2. Process teleports
Bridge service reads contract events and sends asset value teleports that will be processed further to be sent to the Corda network.
S3. Issue assets
Get teleports from the S2 action move this to Corda bridge account and further to the account used by the user using Corda API.
R1. Trigger settle
Calls REST API from the bridge account that initiates a settlement process, data that is passed to the API contains also the user and password credentials in order to connect to the Cordite account.
R2. Settle
Bridge service calls the Cordite API where it gets the XDC asset value and sends this to an XDC account.
T1. Query transactions
In order for the UI service to display transactions in real-time the system queries the blockchain for the last transactions that are not stored in the cache and displays this to the User Interface transactions component screen.
Impel's R3 Corda | XDC Network Bridge
To access Impel's R3 Corda | XDC Network Bridge click here.
Blockchain protocols and other related distributed ledger technology platforms tend to be silos to themselves, unless a software bridge is created to connect the two platforms, so digital assets can be moved back and forth allowing for interoperability.
101 Blockchains does a deepdive into blockchain bridges with there article titled "What Are Blockchain Bridges And How Do The Work?".
The XDC Network is an enterprise-grade, EVM-compatible Layer 1 network equipped with interoperable smart contracts. A highly optimized, bespoke fork of Ethereum, the XDC Network reaches consensus through a delegated proof-of-stake (XDPoS) mechanism, which allows for two-second transaction time, near zero gas fees, and over 2,000 transactions per second (TPS). Secure, scalable, and highly efficient, the XDC Network powers a wide range of novel blockchain use cases. Learn more at https://xdc.org
Impel's CEO and Founder Troy S. Wood wrote a deepdive article called Everything you need to know about the XDC Network, a quite helpful and informative write-up that paints the big picture of the network and its ecosystem.
R3 exists to help organizations shape the future of regulated markets by leading the future of digital finance by powering multi-party solutions that deliver digital trust and unlock greater potential for regulated businesses everywhere.
The R3 team first developed Corda - a purpose-built, private DLT platform that is not only sustainable by design, but has facilitated hundreds of networks across financial services. Building on Corda’s success, we then launched Conclave, a confidential computing platform for secure, multi-party data sharing that works with or without Corda.
R3’s Corda is a scalable, permissioned peer-to-peer (P2P) distributed ledger technology (DLT) platform that enables the building of applications that foster and deliver digital trust between parties in regulated markets.
Cordite is an open source project creating open source DeFi features for Corda. Cordite continues to make leading-edge features available to the Corda community.
Impel's R3 Corda bridge connects to the Cordite CorDapp on the Corda platform.
Cordite provides decentralised economic and governance services including:
Decentralised stores and transfers of value allowing new financial instruments to be created inside the existing regulatory framework. eg. tokens, crypto-coins, digital cash, virtual currency, distributed fees, micro-billing
Decentralised forms of governance allowing new digital autonomous organisations to be created using existing legal entities eg. digital mutual societies or digital joint stock companies
Decentralised consensus in order to remove the need for a central operator, owner or authority. Allowing Cordite to be more resilient, cheaper, agile and private than incumbent market infrastructure
Cordite is open source, regulatory friendly, enterprise ready and finance grade.
Cordite is built on Corda, a finance grade distributed ledger technology, meeting the highest standards of the banking industry, yet it is applicable to any commercial scenario. The outcome of over two years of intense research and development by over 80 of the world’s largest financial institutions.
Impel’s R3 Corda bridge provides not only interoperability, but a settlement vehicle for making payments on contracts and settling debt obligations. Rather than using traditional banking systems that take much longer to process payments, entities can settle in seconds using digital assets via Impel's bridge to Corda's CorDapps (Corda Distributed Applications).
The bridge allows digital assets "cryptocurrency" such as a stablecoin like Fluent Finance's US+ or other digital assets like XDC, the native coin to the XDC Network to move from the XDC Network's public blockchain to R3's private DLT platform.
With this unique bridging technology, data can be recorded privately on the Corda platform, while limited data sets are transferred to the public XDC Network's blockchain DLT, thereby mitigating institutional risk, and turning Corda into a hybrid network. By extension, this shared ledger will connect the XDC coin and XRC-20 tokens (Layer 2 projects) with every other Corda CorDapp on their private network platform.
To access Impel's R3 Corda | XDC Network Bridge click here.
Step-by-step guide on how to use Impel's R3 Corda | XDC Network Bridge
Impel's bridge allows digital assets "cryptocurrency" such as XDC, the native coin on the XDC Network, or XRC-20 tokens, which are Layer 2 projects built upon the XDC Networks blockchain, such as Fluent Finance's US+ stablecoin to be moved from the public XDC Network's blockchain to R3 Corda's private DLT platform, specifically to CorDapps like Codite or others.
Digital assets moving from the XDC Network need to be located in a digital asset wallet, such as the XDCPay wallet, which is a browser extension plugin.
First, confirm that the XDCPay wallet has been installed on the device you want to use to process the transactions.
(Step #2) Be sure that XDCPay wallet has been installed and logged into an XDCPay account (Image 1).
(Step #3) Ensure that the XDCPay wallet is connected to "XDC Mainnet" (Image 2).
(Step #4) Select which XDCPay wallet account to send/receive digital assets from. Note: Example in Image 2 shows "Account 3" as the selected "active" account that is associated to the proper XDC Network wallet address (i.e. xdc53e3...cb3e shown below in Image 2).
After you choose the settings for XDCPay, click the CONNECT WALLET button (Image 1).
(Step #5) Access the Send tab by clicking on "Send", allowing for digital assets to be sent to a Corda CorDapp. (Image 3)
Enter the required information into the following text fields:
Digital Asset - Select the desired asset (currently, supports XDC coin)
Amount of Digital Asset - Amount of digital asset to be sent to a CorDapp
Destination CorDapp - Destination to where the digital asset is going to on the Corda platform
Destination Address - The specific CorDapp's account address. Example: Cordite account address (e.q account-1@OU=xinfin, O=xinfin, L=London, C=GB)
Reason for Transfer (optional) - Transaction details for clarity
(Step #6) Once all data has been entered correctly, the Send button is activated. Once clicked, a successful transaction confirmation message will appear, else a notification of failure will be displayed.
(Step #7) View transaction history for both sent and received digital assets, access the Transactions tab (Image 4).
There are two types of transactions, the first transaction type has an arrow-up icon and is called a teleport transaction and the second that has an arrow-down is called a settlement transaction.
Teleport transaction - Transactions moving digitalassets from an XDC wallet address to an R3 Corda CorDapp account.
Settlement transaction - Transactions moving digital assets from an R3 Corda CorDapp account to a wallet address on the XDC Network's public blockchain.
(Step #8) Click on each transaction to view its specific details. To view the blockchain transaction details on an XDC Network Block Explorer, click the "View on Blockscan" link towards the bottom . (Image 5).
(Step #9) Receive digital assets from an R3 Corda CorDapp and send them to an XDC Network wallet address (Image 6).
Digital Asset - Select the desired asset (currently, supports XDC coin)
Amount of Digital Asset - Amount of digital asset to be sent to a CorDapp
CordaApp URL - CorDapp node HTTP URL address
Username - CorDapp node credential
Password - CorDapp node credential
Origin CorDapp - The CorDApp where the asset will be requested from
Origin Address - The CorDapp's address. In this case, the Cordite CorDapp's account address (e.q account-1@OU=xinfin, O=xinfin, L=London, C=GB)
Reason for Transfer (optional) - Transaction details for clarity
(Step #10) Once all data has been entered correctly, the Send button is activated. Once clicked, a successful transaction confirmation message will appear, else a notification of failure will be displayed.
(Step #11) Refer back to (Step #7) to view transaction history and transaction details.
A video walkthrough demonstration of Impel's R3 Corda | XDC Network Bridge
Learn more about the XDCPay wallet .
Download the XDCPay wallet .
(Step #1) Access the R3 Corda | XDC Network Bridge by clicking
Note: Currently only authorized "whitelisted" wallet address are eligible to connect to Impel's R3 Corda bridge. For access, contact Impel's team to request access .
To access Impel's R3 Corda | XDC Network Bridge click .