Rialto Bridge Workshop Recap | Extending Multi-chain, Scalable Privacy with Findora
In W20, we sat down with Dylan from Bridge Builder DAO and Charlie (👑Chancellor of Code) for a developer workshop on the Findora Rialto Bridge. Check out our summary to learn more about the bridge and how to use it to export Findora’s privacy solutions to your ecosystem.
❗️W20 Rialto Bridge workshop delves into how the bridge works and how developers can deploy it
❗️The Rialto Bridge exports Findora’s privacy solutions to Ethereum and its network ecosystems
❗️All gas fees on the Rialto Bridge (mainnet) are eligible for reimbursement by the Findora Foundation
❗️The bridge is currently live on BNB Mainnet and Ethereum testnet. To help test, start here.
❗️Developer instructions for deploying the bridge are included below
Build Bridges, Not Walls
In the 12th century, the city of Venice built the Rialto Bridge which helped link its marketplaces to the broader Mediterranean world. Because of the strength of its trade, Venice would grow into a thriving Republic and a significant European power for much of the Middle Ages and into the Renaissance.
In the same way, the Rialto Bridge to Findora will let Findora “export its privacy solutions” to the rest of Web3. Currently linking Findora to BNB Chain mainnet and Ethereum testnet, the Rialto Bridge serves as the cornerstone from which Findora can eventually connect to Polkadot, Solana, and Cosmos ecosystems as well.
The Bridge to DeFi Privacy
By being interoperable, Findora acts like a zero-knowledge oracle — like Cosmos, it uses Tendermint consensus mechanism and can integrate with Ethereum, Solana, and Polkdot via its EVM extension and the substrate SDK. Developers will have the tools necessary to build privacy-preserving dApps in all these ecosystems.
Currently, The Rialto Bridge will link Findora to Ethereum-compatible ecosystems. Crossing now will take you to DAPPs using Findora like FairySwap or Yellow Submarine. FairySwap is a DEX that is front-running resistant because it shields memepool data, and Yellow Submarine provides private transactions across all Ethereum chains.
Rialto links Web3 to a future of blockchain privacy created on Findora.
How It Works
Before launching on BNB Chain mainnet, the Rialto Bridge was stress-tested by the community to ensure it was ready. An optimized fork of Chainsafe’s ChainBridge, Rialto’s source code has been thoroughly audited and used for years without any bugs being discovered.
Rialto functions similarly to many other bridges. It locks liquidity on the bridge to power the transfers of tokens from a source chain to a destination chain. Locked liquidity on the bridge acts as a passport allowing tokens to cross both ways. Unlike many other bridges, however, crossing Rialto only takes a few minutes.
The code is open source, and we welcome community feedback and improvement proposals. If you have a proposal, submit it on our Discord channel. Watch our workshop with Dylan and Charlie, the Chancelor of Code, to learn more about how the Rialto Bridge works.
You can also read more about how Rialto Bridge works on the Findora Wiki page. We’ll walk developers on how to deploy the code below.
Architecture and definitions
- Client — Where the Deposit and Approver requests come from Source Chain — The beginning of a transaction
- Relayers — the message system for passing information from the south to the destination
- Destination Chain — the end chain of the transaction
Key features of the Rialto Bridge:
- Fast Finality and User-Friendly
Transactions on the Rialto Bridge can settle within a few minutes — much faster than other bridges.
- Gas Fees Reimbursed (for now)
The Findora Foundation is reimbursing gas fees incurred when crossing on the mainnet. Currently, only the path between BNB Chain and Rialto is live, but the reimbursement program will extend to Ethereum as well, which tends to have much more expensive gas. To learn more about it, join the Discord server.
- Widely Interoperable
The Rialto bridge will link Findora with any EVM chain including Polygon, Avalanche and of course Ethereum. It will be the foundation for broader interoperatbility with chains like Solana, Polkadot, and Tron.
- Tested and Secure
The code for Rialto has not only been audited but also undergoes strenuous testing from our community before being deployed on the mainnet.
Deploying Rialto Bridge to Your Ecosystem
Findora provides the documentation you need to connect your ecosystem to Findora and give access to privacy-preserving functions.
Developers can either create scripts/applications to interact with Rialto bridges or deploy their own bridges using Rialto deployment tools provided by Findora.
To create scripts and interact with Rialto bridge on Findora mainnet and Anvil testnet, please refer to Rialto contract addresses in the tables below. A good example that shows how to interact with these smart contracts is the frontend of the Rialto bridge in Findora Wiki
Rialto bridge contracts for Findora mainnet
Rialto bridge contracts for Anvil testnet
To create your own bridge that connects Findora to other networks, Findora provides a group of well polished deployment tools for developers to use. Check out Rialto bridge deployment tools to deploy your own bridge that runs fast and stable as Rialto bridge.
Deploy your first bridge contract on Anvil testnet in 4 steps:
Step-1: Compile Rialto deployment CLI tools
git clone -b v1.0.3 --depth 1 https://github.com/FindoraNetwork/chainbridge-tools&& cd cb-sol-cli&& npm install&& make install
Step-2: Set environment variables
export SRC_GATEWAY=https://prod-testnet.prod.findora.org:8545/export DST_GATEWAY=https://data-seed-prebsc-1-s2.binance.org:8545/export SRC_ADDR=”0x91F8ce92655a009024D9199d258f78D6d9Bc82ef”export SRC_PK=”d0eeba6ed367dd64dc66562a97f1b7d01e62ad15419d8c0f780bb2c581cc4f7f”export DST_ADDR=”0x91F8ce92655a009024D9199d258f78D6d9Bc82ef”export DST_PK=”553d92ba6909f965b1a8acb8b24b8ea2215321162f4dedf0e33619e4ca4cb1bc”export SRC_BRIDGE=””export SRC_HANDLER=””export SRC_TOKEN=”0x0000000000000000000000000000000000001000"export DST_BRIDGE=””export DST_HANDLER=””export DST_TOKEN=””export ROB_ADDR=”0xc21675E1DbDEDc092b43453C72b8BC6A13e53a0f”export ROB_PK=”7af87fb0d0872ed619fdd6a18d264c367fddce8fd975fbb340c5ee5c5fd1556e”
Step-3: Deploy bridge contracts on Anvil testnet using CLI tool
Before executing the command below, please get some FRA test tokens from Findora Faucet to your SRC_PK wallet to pay contract deployment gas fee on Anvil testnet.
cb-sol-cli — url $SRC_GATEWAY — privateKey $SRC_PK — gasPrice 10000000000 deploy \ — bridge — erc20Handler \ — relayers $SRC_ADDR \ — relayerThreshold 1 \ — chainId 0
The example output shows that the Bridge contract and ERC20 Handler had been successfully deployed on Anvil testnet.
Step-4: Deploy bridge contracts on BSC testnet using CLI tool
Before executing the command below, please get 1 BNB test tokens from the BNB chain faucet to your DST_PK wallet to pay the contract deployment gas fee on the BNB chain.
cb-sol-cli — url $DST_GATEWAY — privateKey $DST_PK — gasPrice 10000000000 deploy \ — erc20Name Findora \ — erc20Symbol FRA \ — bridge — erc20 — erc20Handler \ — relayers $DST_ADDR \ — relayerThreshold 1 \ — expiry 500 \ — chainId 1
The example output shows that the Bridge contract, ERC20 Handler and FRA token contract had been successfully deployed on BNB testnet.
It takes only 4 steps to deploy all essential contracts that a Rialto bridge needs to work.