{"id":13651219,"url":"https://github.com/paritytech/parity-bridges-common","last_synced_at":"2025-12-28T12:57:07.932Z","repository":{"id":37089727,"uuid":"237876143","full_name":"paritytech/parity-bridges-common","owner":"paritytech","description":"Collection of Useful Bridge Building Tools 🏗️","archived":false,"fork":false,"pushed_at":"2025-04-08T06:26:08.000Z","size":16912,"stargazers_count":280,"open_issues_count":77,"forks_count":131,"subscribers_count":45,"default_branch":"master","last_synced_at":"2025-04-11T23:15:38.938Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paritytech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-03T03:17:42.000Z","updated_at":"2025-04-08T06:26:11.000Z","dependencies_parsed_at":"2023-09-23T03:20:04.817Z","dependency_job_id":"2548a077-ba53-4bd8-b9f5-539a6d383dd2","html_url":"https://github.com/paritytech/parity-bridges-common","commit_stats":null,"previous_names":[],"tags_count":99,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fparity-bridges-common","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fparity-bridges-common/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fparity-bridges-common/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fparity-bridges-common/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paritytech","download_url":"https://codeload.github.com/paritytech/parity-bridges-common/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248492884,"owners_count":21113163,"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-08-02T02:00:46.684Z","updated_at":"2025-12-28T12:57:07.897Z","avatar_url":"https://github.com/paritytech.png","language":"Rust","funding_links":[],"categories":["Smart Contract Platforms","Rust","Framework Extensions"],"sub_categories":[],"readme":"# Parity Bridges Common\n\nThis is a collection of components for building bridges.\n\nThese components include Substrate pallets for syncing headers, passing arbitrary messages, as well as libraries for\nbuilding relayers to provide cross-chain communication capabilities.\n\nThree bridge nodes are also available. The nodes can be used to run test networks which bridge other Substrate chains.\n\n🚧 The bridges are currently under construction - a hardhat is recommended beyond this point 🚧\n\n## Contents\n\n- [Installation](#installation)\n- [High-Level Architecture](#high-level-architecture)\n- [Project Layout](#project-layout)\n- [Running the Bridge](#running-the-bridge)\n- [How to send a message](#how-to-send-a-message)\n- [Community](#community)\n\n## Installation\n\nTo get up and running you need both stable and nightly Rust. Rust nightly is used to build the Web Assembly (WASM)\nruntime for the node. You can configure the WASM support as so:\n\n```bash\nrustup install nightly\nrustup target add wasm32-unknown-unknown --toolchain nightly\n```\n\nOnce this is configured you can build and test the repo as follows:\n\n```\ngit clone https://github.com/paritytech/parity-bridges-common.git\ncd parity-bridges-common\ncargo build --all\ncargo test --all\n```\n\nAlso you can build the repo with [Parity CI Docker\nimage](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-unified):\n\n```bash\ndocker pull paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v20240408\nmkdir ~/cache\nchown 1000:1000 ~/cache #processes in the container runs as \"nonroot\" user with UID 1000\ndocker run --rm -it -w /shellhere/parity-bridges-common \\\n                    -v /home/$(whoami)/cache/:/cache/    \\\n                    -v \"$(pwd)\":/shellhere/parity-bridges-common \\\n                    -e CARGO_HOME=/cache/cargo/ \\\n                    -e SCCACHE_DIR=/cache/sccache/ \\\n                    -e CARGO_TARGET_DIR=/cache/target/  paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v20240408 cargo build --all\n#artifacts can be found in ~/cache/target\n```\n\nIf you want to reproduce other steps of CI process you can use the following\n[guide](https://github.com/paritytech/scripts#reproduce-ci-locally).\n\nIf you need more information about setting up your development environment [Substrate's Installation\npage](https://docs.substrate.io/main-docs/install/) is a good resource.\n\n## High-Level Architecture\n\nThis repo has support for bridging foreign chains together using a combination of Substrate pallets and external\nprocesses called relayers. A bridge chain is one that is able to follow the consensus of a foreign chain independently.\nFor example, consider the case below where we want to bridge two Substrate based chains.\n\n```\n+---------------+                 +---------------+\n|               |                 |               |\n|     Rococo    |                 |    Westend    |\n|               |                 |               |\n+-------+-------+                 +-------+-------+\n        ^                                 ^\n        |       +---------------+         |\n        |       |               |         |\n        +-----\u003e | Bridge Relay  | \u003c-------+\n                |               |\n                +---------------+\n```\n\nThe Rococo chain must be able to accept Westend headers and verify their integrity. It does this by using a runtime\nmodule designed to track GRANDPA finality. Since two blockchains can't interact directly they need an external service,\ncalled a relayer, to communicate. The relayer will subscribe to new Rococo headers via RPC and submit them to the Westend\nchain for verification.\n\nTake a look at [Bridge High Level Documentation](./docs/high-level-overview.md) for more in-depth description of the\nbridge interaction.\n\n## Project Layout\n\nHere's an overview of how the project is laid out. The main bits are the `bin`, which is the actual \"blockchain\", the\n`modules` which are used to build the blockchain's logic (a.k.a the runtime) and the `relays` which are used to pass\nmessages between chains.\n\n```\n├── modules                  // Substrate Runtime Modules (a.k.a Pallets)\n│  ├── beefy                 // On-Chain BEEFY Light Client (in progress)\n│  ├── grandpa               // On-Chain GRANDPA Light Client\n│  ├── messages              // Cross Chain Message Passing\n│  ├── parachains            // On-Chain Parachains Light Client\n│  ├── relayers              // Relayer Rewards Registry\n│  ├── xcm-bridge-hub        // Multiple Dynamic Bridges Support\n│  ├── xcm-bridge-hub-router // XCM Router that may be used to Connect to XCM Bridge Hub\n├── primitives               // Code shared between modules, runtimes, and relays\n│  └──  ...\n├── relays                   // Application for sending finality proofs and messages between chains\n│  └──  ...\n└── scripts                  // Useful development and maintenance scripts\n```\n\n## Running the Bridge\n\nApart from live Rococo \u003c\u003e Westend bridge, you may spin up local networks and test see how it works locally. More\ndetails may be found in\n[this document](https://github.com/paritytech/polkadot-sdk/tree/master//cumulus/parachains/runtimes/bridge-hubs/README.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fparity-bridges-common","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparitytech%2Fparity-bridges-common","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fparity-bridges-common/lists"}