Corda with Corda
We will demonstrate asset exchange of a tokens in Corda_Network with tokens on Corda_Network2. Here PartyA (CORDA_PORT=10006) and PartyB (CORDA_PORT=10009) in Corda_Network correspond to PartyA (CORDA_PORT=30006) and PartyB (CORDA_PORT=30009) in Corda_Network2 respectively. Following are the step-by-step asset exchange process:
| Notes |
|---|
The hash used in following steps can be replaced by any valid SHA256 hash. |
- Navigate to the
weaver/samples/corda/corda-simple-applicationfolder in your clone of the Cacti repository. - Run the following to verify the status of the tokens owned by
PartyAandPartyBin theCorda_NetworkandCorda_Network2: - Generate Secret-Hash Pair using following command (prints hash in base64):
- Run the following to trigger
PartyAlocking30units of token typet1forPartyBinCorda_Networkfor 60 mins:Note theCORDA_PORT=10006 ./clients/build/install/clients/bin/clients lock-asset --fungible --hashBase64=ivHErp1x4bJDKuRo6L5bApO/DdoyD/dG0mAZrzLZEIs= --timeout=3600 --recipient="O=PartyB,L=London,C=GB" --param=t1:30contract-iddisplayed after successful execution of the command, will be used in next steps. The output containingcontract-idwould like this:contract-idis the alphanumeric text (with underscore and hyphens) afterb=within parenthesis. Let's denote it<contract-id-1>. - Run the following to verify
PartyA's lock (can be verified by both parties): - Run the following to trigger
PartyBlocking50units of token typet2forPartyAinCorda_Network2for 30 mins:Note theCORDA_PORT=30009 ./clients/build/install/clients/bin/clients lock-asset --fungible --hashBase64=ivHErp1x4bJDKuRo6L5bApO/DdoyD/dG0mAZrzLZEIs= --timeout=1800 --recipient="O=PartyA,L=London,C=GB" --param=t2:50contract-iddisplayed after successful execution of the command, will be used in next steps. Let's denote it<contract-id-2>. - Run the following to verify
PartyB's lock (can be verified by both parties): - Run the following to trigger
PartyA's claim for50units of token typet2locked byPartyBinCorda_Network2:CORDA_PORT=30006 ./clients/build/install/clients/bin/clients claim-asset --secret=secrettext --contract-id=<contract-id-2>PartyBcan see its node's logs to get the revealed hash preimage, and use it to claim the bond in the Fabric network. - Run the following to trigger
PartyB's claim for30units of token typet1locked byPartyAinCorda_Network: - Run the following to verify the status of the tokens owned by
PartyAandPartyBin theCorda_NetworkandCorda_Network2:
The above steps complete a successful asset exchange between two Corda networks. In addition to the above commands, following commands can be run if specified timeout has expired and the locked asset remains unclaimed.
- If
PartyAwants to unlock the tokent1:30asset, run the following to triggerPartyA's re-claim inCorda_Network: - If
PartyBwants to unlock the tokent2:50asset, run the following to triggerPartyB's re-claim inCorda_Network2: