{"id":18300002,"url":"https://github.com/chorusone/wormhole-bridge","last_synced_at":"2025-04-09T09:25:30.095Z","repository":{"id":103108167,"uuid":"279717740","full_name":"ChorusOne/wormhole-bridge","owner":"ChorusOne","description":"Wormhole Bridge Project Demo","archived":false,"fork":false,"pushed_at":"2020-08-26T03:12:52.000Z","size":160,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-02-15T03:29:41.390Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChorusOne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-14T23:51:41.000Z","updated_at":"2023-04-12T18:10:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef776aeb-dc4c-4fbc-b317-1389a6c89169","html_url":"https://github.com/ChorusOne/wormhole-bridge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChorusOne%2Fwormhole-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChorusOne%2Fwormhole-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChorusOne%2Fwormhole-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChorusOne%2Fwormhole-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChorusOne","download_url":"https://codeload.github.com/ChorusOne/wormhole-bridge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248010192,"owners_count":21032864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T15:11:06.058Z","updated_at":"2025-04-09T09:25:30.075Z","avatar_url":"https://github.com/ChorusOne.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wormhole: A Cosmos-Substrate bridge\n\n## What is Wormhole?\nWormhole is a bridge to connect a Substrate-based blockchain to a Cosmos-SDK based blockchain. Specifically it connects\nsubstrate light client running inside cosmos chain to substrate chain and cosmos light client running inside substrate chain to cosmos chain.\n \n\n## Architecture\nThe Wormhole bridge, comprises three major components, with two light clients as subcomponents:\n  - [A fork of Gaia](https://github.com/ChorusOne/gaia), with an additional module to allow execution of wasm-based light clients.\n  - [Wormhole](https://github.com/ChorusOne/wormhole), a Substrate-based chain, including a tendermint-client pallet.\n  - [Quantum-tunnel](https://github.com/ChorusOne/quantum-tunnel), a simple relayer, written in rust.\n  - [Tendermint light client](https://github.com/ChorusOne/tendermint_light_client), light client for tendermint based chain, written in rust, referenced by tendermint-client pallet in Wormhole.\n  - [Substrate light client](https://github.com/ChorusOne/substrate-ibc-client), light client for substrate based chain, written in rust as CosmWasm contract. Its wasm bytecode need to be uploaded to Gaia fork as part of bridge setup.\n  \n![Architecture](architecture.png)\n\n## Demo\nIn order to run the demo, clone this repository, and run following command:\n```\n# Fetches submodules\ngit submodule init \ngit submodule update\n\n# Cleans data directory and shuts down any stray docker containers.\nmake clean\n\n# Builds docker images, could take a while.\nmake build\n\n# Configure data directory\nmake config\n\n# Runs a demo\nmake run\n```\n\n## Integration tests\nBefore running integration test, docker images are needed to be built with `make build`.\nThere are five integration test variants you can run:\n\n### Live\nBoth chains are live. To run this variant you need to execute `make test_live` in project directory.\nNote that this test will not terminate automatically, which provides tester opportunity to check both chain's status.\n\n### Simulated cosmos\nCosmos chain is simulated with a text file and headers are fed into cosmos light client running in substrate chain. To run this variant you need to execute `make test_simulated_cosmos`. If the test is successful, docker compose will exit with zero exit code.\n\n### Simulated substrate\nSubstrate chain is simulated with a text file and headers are fed into substrate light client running in cosmos chain. To run this variant you need to execute `make test_simulated_substrate`. If the test is successful, docker compose will exit with zero exit code.\n\n### Faulty simulated cosmos\nSame as simulated cosmos but with faulty data to test failure scenario. To run this variant you need to execute `make test_faulty_simulated_substrate`. If the test is successful, docker compose will exit with zero exit code.\n\n### Faulty simulated substrate\nSame as simulated substrate but with faulty data to test failure scenario. To run this variant you need to execute `make test_faulty_simulated_cosmos`. If the test is successful, docker compose will exit with zero exit code.\n\n\n## Credit and Attribution\n- Substrate - Web3 Foundation, Parity\n- Cosmos-SDK - All in Bits, Tendermint Inc., Interchain.io, Interchain Foundation\n- Cosmwasm - Confio, Ethan Frey and Simon Warta\n- Tendermint-rs - Informal Systems\n- Concept of Wasm-based light client - Zaki Manian, Iqclusion\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchorusone%2Fwormhole-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchorusone%2Fwormhole-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchorusone%2Fwormhole-bridge/lists"}