Open Vishwas1 opened 2 years ago
Remittance | IBC | |
---|---|---|
Source Country | Source Blockchain | |
Destination Country | Destination Blockchain | |
Bank Account | Wallets | |
Amount | Amount | |
Providers (western union) | Relayers | |
SWIFT / FedWire | Channel | |
Sending USD to US bank account | Locking coins in Source chain | |
Receiving INR from Indian bank account | Minting vouchers at destination chain |
Relayers Implementations
Modules communicate with each other by sending packets over IBC channels.
IBC packets contains
{
destinationPortId,
destinationChannelId,
sourcePortId,
sourceChannelId,
TimeoutTimestamp,
TimeoutHeight,
Data [] byte
}
Data []byte
field of the IBC packet.Data
field of packets. Data
back to the original application data.proof-of-packet
timeout can be submitted to the original chain which can then perform application-specific logic to timeout the packet, perhaps by rolling back the packet send changes (refunding senders any locked funds, and so on).So because of
TimeoutTimestamp
field in packets, there is no worry of loosing funds. Since in case any mishaps happens during IBC, like relayer going offline or something, post timeout, the funds will be any way unlocked at the source chain.
One questions - as a IBC app developer, I do not have to worry about any of the concepts of IBC like connections, channels etc, Its being abstracted out to us. All I should care about, a) what goes into Data field of the packet - specific to my usecase b) IBC callback - what I would do once the success full IBC transfer happens. Is that correct ?
IBC handles the creation of a handshake based connection and the authentication, transport, and ordering (TAO) of opaque data packets relayed between modules on separate ledgers. Ledgers can be run on solo machines, replicated by many nodes running a consensus algorithm, or constructed by any process whose state can be verified. The protocol is designed for safe simultaneous use between any number of modules on any number of ledgers connected in arbitrary topologies.