{"id":37363819,"url":"https://github.com/frequency-chain/frequency","last_synced_at":"2026-01-16T04:49:06.794Z","repository":{"id":37072633,"uuid":"475035363","full_name":"frequency-chain/frequency","owner":"frequency-chain","description":"Frequency: A Polkadot Parachain","archived":false,"fork":false,"pushed_at":"2026-01-12T22:50:02.000Z","size":183341,"stargazers_count":56,"open_issues_count":82,"forks_count":24,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-01-13T00:15:58.376Z","etag":null,"topics":["blockchain","parachain","polkadot","rust","substrate"],"latest_commit_sha":null,"homepage":"https://www.frequency.xyz","language":"Rust","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/frequency-chain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-03-28T14:19:18.000Z","updated_at":"2026-01-12T21:25:17.000Z","dependencies_parsed_at":"2023-12-29T00:25:19.631Z","dependency_job_id":"c9f4bd57-467e-4d40-8f9e-322116490967","html_url":"https://github.com/frequency-chain/frequency","commit_stats":{"total_commits":764,"total_committers":25,"mean_commits":30.56,"dds":0.8337696335078534,"last_synced_commit":"0b333e3c6abcaab227e55d2a87047c2ed0c531bc"},"previous_names":["libertydsnp/frequency"],"tags_count":161,"template":false,"template_full_name":null,"purl":"pkg:github/frequency-chain/frequency","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequency-chain%2Ffrequency","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequency-chain%2Ffrequency/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequency-chain%2Ffrequency/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequency-chain%2Ffrequency/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frequency-chain","download_url":"https://codeload.github.com/frequency-chain/frequency/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequency-chain%2Ffrequency/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["blockchain","parachain","polkadot","rust","substrate"],"created_at":"2026-01-16T04:49:06.730Z","updated_at":"2026-01-16T04:49:06.788Z","avatar_url":"https://github.com/frequency-chain.png","language":"Rust","readme":"\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n\n[![Release][release-shield]][release-url]\n[![Docker][docker-shield]][docker-url]\n[![Issues][issues-shield]][issues-url]\n[![Codecov][codecov-shield]][codecov-url]\n\nFrequency is a [Polkadot](https://www.parity.io/technologies/polkadot) parachain for data distribution protocols such\nas [DSNP](https://www.dsnp.org).\n\n# Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Prerequisites](#prerequisites)\n    - [Hardware](#hardware)\n- [Build](#build)\n    - [Local Desktop](#local-desktop)\n        - [asdf Support](#asdf-support)\n    - [Remote Instance such as AWS EC2](#remote-instance-such-as-aws-ec2)\n        - [Ubuntu](#ubuntu)\n- [Run](#run)\n    - [1. Collator Node without a Relay Chain](#1-collator-node-without-a-relay-chain)\n        - [Manual Sealing](#manual-sealing)\n        - [Instant Sealing](#instant-sealing)\n        - [Interval Sealing](#interval-sealing)\n    - [2. Collator Node with Local Relay Chain](#2-collator-node-with-local-relay-chain)\n        - [Mixed Terminal/Docker](#mixed-terminaldocker)\n            - [Stop and Clean Environment](#stop-and-clean-environment)\n        - [All in Docker Container](#all-in-docker-container)\n    - [Run Tests](#run-tests)\n        - [E2E Tests](#e2e-tests)\n    - [Run Benchmarks](#run-benchmarks)\n    - [Run with offchain features](#run-with-offchain-features)\n- [Format, Lint and Audit Source Code](#format-lint-and-audit-source-code)\n- [Runtime](#runtime)\n    - [Verify Runtime](#verify-runtime)\n    - [Local Runtime Upgrade](#local-runtime-upgrade)\n        - [Local Relay Chain](#local-relay-chain)\n        - [Standalone Chain (No Relay)](#standalone-chain-no-relay)\n- [Contributing](#contributing)\n- [Security Issue Reporting](#security-issue-reporting)\n- [Additional Resources](#additional-resources)\n- [Miscellaneous](#miscellaneous)\n\n# Prerequisites\n\n1. [Docker Engine](https://docs.docker.com/engine/install/)\\*\n1. [Docker Compose](https://docs.docker.com/compose/install/)\n\n---\n\n- For Mac users, [Docker Desktop](https://docs.docker.com/desktop/mac/install/) engine also installs docker compose\n  environment, so no need to install it separately.\n\n## Hardware\n\nBenchmarks are run on an AWS `m6id.2xlarge` and recommend collators have generally the\nsame [reference hardware specified by Parity for Validators](https://docs.polkadot.com/infrastructure/running-a-validator/requirements/#minimum-hardware-requirements).\n\nNon-Collator nodes may have less power, but low memory configurations may lead to out of memory errors.\n\n# Build\n\n## Local Desktop\n\n1. Install Rust using the [official instructions](https://www.rust-lang.org/tools/install).\n2. Check out this repository\n3. `rust-toolchain.toml` specifies the standard toolchain to use. If you have `rustup` installed, it will automatically\n   install the correct toolchain when you run any cargo command.\n4. Running `make check` will run cargo checks for all Frequency features. This is the recommended way to check your code\n   before committing. Alternatively, you can run following for specific features:\n\n   ```sh\n   make check-no-relay\n   make check-local\n   make check-testnet\n   make check-mainnet\n   ```\n\n5. Build [Wasm](https://webassembly.org) and native code.\n\n   _Note, if you get errors complaining about missing\n   dependencies (protobuf, cmake, yarn, node, jq, etc.) install them with your favorite package\n   manager(e.g. [Homebrew](https://brew.sh/) on macOS) and re-run the command again._\n\n   ```sh\n   rustup update\n   cargo clean\n   make build\n   ```\n\n   Above will build Frequency with all features. Alternatively you may run following command to build with specific\n   features:\n\n   ```sh\n   make build-no-relay\n   make build-local\n   make build-testnet\n   make build-mainnet\n   ```\n\n   To build local, paseo (testnet) or mainnet features respectively.\n\n   At this point you should have `./target/debug` directory generated locally with compiled project files. (or\n   `./target/release` for `make build-*-release`)\n\n\n6. Build [Wasm](https://webassembly.org) only\n\n   To build only the `Wasm` runtime, use the following commands:\n   ```sh\n   make build-runtime-local\n   make build-runtime-westend-testnet\n   make build-runtime-bridging-testnet\n   make build-runtime-paseo-testnet\n   make build-runtime-mainnet\n   ```\n   Any of the above commands can optionally include `FEATURES=no-host-functions` to build a runtime that can be used to\n   build blocks in a [Chopsticks](https://github.com/AcalaNetwork/chopsticks) environment, as in:\n   ```sh\n   make FEATURES=no-custom-host-functions build-runtime-paseo-testnet\n   ```\n\n### asdf Support\n\nFrequency optionally supports [asdf](https://asdf-vm.com) for managing dependencies of the following tools:\nInstall the required plugins for [asdf](https://asdf-vm.com):\nPlease note that if you use rustup, asdf may conflict and cause issues. It is recommended to use one or the other, but\nnot both for rust.\n\n```sh\nasdf plugin-add rust\nasdf plugin-add make\nasdf plugin-add cmake https://github.com/srivathsanmurali/asdf-cmake.git\n```\n\nInstall the dependency versions declared in `.tool-versions`\n\n```sh\nasdf install\n```\n\nNOTE: asdf does not support clang and it needs to be installed separately.\n\n## Remote Instance such as AWS EC2\n\nFor remote instances running Linux, if you want to check out and build such as on\nan [AWS EC2](https://aws.amazon.com/ec2) instance, the process is slightly different to what is in\nthe [Substrate documentation](https://docs.substrate.io/main-docs/install/linux/).\n\n### Ubuntu\n\n1. Upgrade the instance and install missing packages with `apt`:\n\n```bash\nsudo apt upgrade\nsudo apt upgrade git\nsudo apt install —-assume-yes build-essential\nsudo apt install --assume-yes clang curl libssl-dev cmake\n```\n\n2. Follow [official instructions to install Rust](https://www.rust-lang.org/tools/install), but select\n   `3. customize the installation`, then reply **n** to `Modify PATH variable? (Y/n)`\n3. Follow steps 6-10 at [Substrate: Linux development](https://docs.substrate.io/main-docs/install/linux/)\n4. Proceed with checking out and building Frequency as above.\n\n# Run\n\nThere are 2 options to run the chain locally:\n\n_Note, Running Frequency via following options does not require binary to be built or chain specs to be generated\nseparately, and is programmed within the scripts for simplicity._\n\n1. Collator Node without a relay chain (in manual/instant/interval sealing mode)\n2. Collator Node with a local relay chain\n\n## 1. Collator Node without a Relay Chain\n\n![](docs/images/local-dev-env-option-1.jpg)\n\nThis option runs just one collator node without the need for a relay chain.\n\nThis preloads into genesis all the schemas from mainnet.\nUse `make genesis-schemas` if the genesis is out of date.\n\n### Manual Sealing\n\na. Blocks can be triggered by calling the `engine_createBlock` RPC\n\n```sh\ncurl http://localhost:9944 -H \"Content-Type:application/json;charset=utf-8\" -d   '{ \\\n    \"jsonrpc\":\"2.0\", \\\n    \"id\":1, \\\n    \"method\":\"engine_createBlock\", \\\n    \"params\": [true, true] \\\n    }'\n```\n\nb. Use the \"start-manual\" make target to call the RPC\nGreat for testing multiple items in the same block or other block formation tests.\n\n```sh\nmake start-manual\n```\n\n### Instant Sealing\n\nSame as Manual Sealing, but will also automatically trigger the formation of a block whenever a transaction is added to\nthe validated transaction pool.\nGreat for most testing.\n\n```sh\nmake start\n```\n\nAlso available as a Docker image: [\n`frequencychain/standalone-node`](https://hub.docker.com/r/frequencychain/standalone-node)\n\n```sh\ndocker run --rm -p 9944:9944 frequencychain/standalone-node\n```\n\nTo stop running chain hit [Ctrl+C] in terminal where the chain was started.\n\n| **Node**                |     **Ports**     | **Explorer URL**                                                                          |\n|-------------------------|:-----------------:|-------------------------------------------------------------------------------------------|\n| Frequency Collator Node | ws and rpc:`9944` | [127.0.0.1:9944](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer) |\n\n### Interval Sealing\n\nThis sealing mode will automatically trigger the formation of a block at a specified interval (default is every 12\nseconds.)\n\n```sh\nmake start-interval\n```\n\n## 2. Collator Node with Local Relay Chain\n\n![](docs/images/local-dev-env-option-2.jpg)\n\n### Mixed Terminal/Docker\n\nThis option runs two collator nodes as local host processes and two relay chain validator nodes, each in its own docker\ncontainer.\n\n1. Start relay chain validator nodes.\n\n   ```sh\n   make start-paseo-relay\n   ```\n\n   ALERT: You likely need to manually set the scheduling lookahead. `sudo(configuration.setSchedulingLookahead(3))` and\n   wait for it to apply.\n\n1. Register a new parachain slot (parachain id) for Frequency. _Note, if parachain was\n   previously registered on a running relay chain and no new registration is required,\n   then you can skip the above step._\n\n   ```sh\n   make register\n   ```\n\n1. Start Frequency as parachain with a single collator.\n\n   ```sh\n   make start-paseo-collator-alice\n   ```\n   ```sh\n   make start-paseo-collator-bob\n   ```\n\n1. Generate genesis/wasm and onboard Frequency to the relay chain.\n   ```sh\n   make onboard\n   ```\n\n#### Stop and Clean Environment\n\n1. Off-board Frequency from relay chain: `make offboard`\n2. To stop Frequency running in the terminal: `[Ctrl+C] `\n3. Stop the relay chain. `make stop-relay`\n4. Run to remove unused volumes. `make docker-prune`\n5. Clean up temporary directory to avoid any conflicts with next onboarding:\n   `rm -fr /tmp/frequency`\n\n### All in Docker Container\n\nThis option runs one collator node and two relay chain validator nodes, each in its own docker container.\n\nStart:\n\n```sh\nmake run-frequency-docker\n```\n\nStop:\n\n```sh\nmake stop-frequency-docker\n```\n\nor:\n\n```sh\nmake stop-frequency-docker-prune # to remove associated Docked volumes\n```\n\n| **Node**             | **Ports**                       | **Explorer URL**                                                                          |\n|----------------------|---------------------------------|-------------------------------------------------------------------------------------------|\n| Frequency Relay Node | ws and rpc: `9944`, p2p:`30333` | [127.0.0.1:9944](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer) |\n| Alice Relay Node     | ws and rpc: `9946`, p2p:`30335` | [127.0.0.1:9946](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9946#/explorer) |\n| Bob Relay Node       | ws and rpc: `9947`, p2p:`30336` | [127.0.0.1:9947](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9947#/explorer) |\n\n## Run Tests\n\n```sh\n# Run all the tests\nmake test\n# Activate selected features\ncargo test --features frequency\n```\n\n### E2E Tests\n\nTo run the end-to-end tests, run `make e2e-tests`.\n\n## Run Benchmarks\n\n```sh\nmake benchmarks\n```\n\n## Run with offchain features\n\n```sh\nmake start-frequency-with-offchain\n```\n\n# Format, Lint and Audit Source Code\n\n- Format code with `make format` according to style guidelines and configurations in `rustfmt.toml`.\n- Lint code with `make lint` to catch common mistakes and improve your [Rust](https://github.com/rust-lang/rust) code.\n\n  \\_Note, if you get errors complaining about the wasm build, then you may need to install\n  the wasm target for rust. You can do this with `rustup target add wasm32v1-none`\n\n- Alternatively, run `make format-lint` to run both at the same time.\n- Run `make lint-audit` to audit `Cargo.lock` files with `cargo-deny` for crates with security vulnerabilities reported\n  to\n  the [RustSec Advisory Database](https://rustsec.org). [See cargo-deny installation instructions](https://github.com/EmbarkStudios/cargo-deny)\n\n# Runtime\n\n## Verify Runtime\n\n1. Check out the commit at which the runtime was built.\n2. Use [srtool](https://github.com/paritytech/srtool) and [srtool-cli](https://github.com/chevdor/srtool-cli) to verify\n   the runtime:\n   ```sh\n   SRTOOL_TAG=\"1.90.0\" srtool build \\\n           --build-opts=\"'--features on-chain-release-build,no-metadata-docs,frequency'\" \\\n           --profile=release \\\n           --package=frequency-runtime \\\n           --root\n   ```\n\n## Local Runtime Upgrade\n\nTo upgrade the runtime, run the following command:\n\n### Local Relay Chain\n\n```sh\nmake upgrade-local\n```\n\n### Standalone Chain (No Relay)\n\n```sh\nmake upgrade-no-relay\n```\n\n# Contributing\n\nInterested in contributing?\nWonderful!\nPlease check out [the information here](./CONTRIBUTING.md).\n\n# Security Issue Reporting\n\nDo you know of an on-chain vulnerability (or possible one) that can lead to economic loss, privacy loss, or instability\nof the network?\nPlease report it by following the steps mentioned in [here](./SECURITY.md).\n\n# Additional Resources\n\n- [Cumulus Project](https://github.com/paritytech/cumulus)\n- [Cumulus Tutorials](https://docs.substrate.io/tutorials/)\n- [Prep Substrate environment for development](https://docs.substrate.io/install/)\n\n# Miscellaneous\n\n```sh\n# Clean up local docker resources\nmake docker-prune\n\n# View all listening ports\nlsof -i -P | grep -i \"listen\"\n\n# View ports Frequency node is listening on\nlsof -i -P | grep -i \"listen\" | grep frequency\n```\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[issues-shield]: https://img.shields.io/github/issues/frequency-chain/frequency.svg?style=for-the-badge\n\n[issues-url]: https://github.com/frequency-chain/frequency/issues\n\n[codecov-shield]: https://img.shields.io/codecov/c/github/frequency-chain/frequency?style=for-the-badge\n\n[codecov-url]: https://app.codecov.io/gh/frequency-chain/frequency\n\n[release-shield]: https://img.shields.io/github/v/release/frequency-chain/frequency?style=for-the-badge\n\n[release-url]: https://github.com/frequency-chain/frequency/releases\n\n[docker-shield]: https://img.shields.io/docker/v/frequencychain/parachain-node-mainnet/latest?color=1c90ed\u0026label=Docker\u0026style=for-the-badge\n\n[docker-url]: https://hub.docker.com/u/frequencychain\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrequency-chain%2Ffrequency","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrequency-chain%2Ffrequency","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrequency-chain%2Ffrequency/lists"}