{"id":19358629,"url":"https://github.com/paritytech/chaoscope","last_synced_at":"2026-03-02T11:33:38.095Z","repository":{"id":38329959,"uuid":"425316070","full_name":"paritytech/chaoscope","owner":"paritytech","description":"Substrate RPC Instrumentation toolkit for pallet-chaos","archived":false,"fork":false,"pushed_at":"2023-01-20T23:33:10.000Z","size":371,"stargazers_count":2,"open_issues_count":5,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-08-02T00:54:15.895Z","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":"agpl-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":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-06T18:15:38.000Z","updated_at":"2023-07-25T14:51:16.000Z","dependencies_parsed_at":"2023-02-12T06:35:12.099Z","dependency_job_id":null,"html_url":"https://github.com/paritytech/chaoscope","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/paritytech/chaoscope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fchaoscope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fchaoscope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fchaoscope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fchaoscope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paritytech","download_url":"https://codeload.github.com/paritytech/chaoscope/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fchaoscope/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268657554,"owners_count":24285526,"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","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-10T07:12:30.847Z","updated_at":"2026-03-02T11:33:38.060Z","avatar_url":"https://github.com/paritytech.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Substrate Chaoscope\n\n**Substrate Chaoscope** is a [subxt](https://github.com/paritytech/subxt) based RPC Instrumentation toolkit for [pallet-chaos](https://github.com/paritytech/pallet-chaos).\n\nChaoscope makes Substrate Runtimes behave in ways that they're not supposed to, with the following goals: \n- Explore Runtime edge cases. \n- Explore Extrinsic weights and their economic implications.\n- Expose Runtime Attack Vectors.\n- Raise awareness about Benchmarking and Weight Design.\n\n# Similar Projects\n- [PolPatrol – Validator for Polkadot Runtimes](https://chainsecurity.com/polpatrol-validator-for-polkadot-runtimes/)\n\n# Runtime Attack Surfaces\n\n## Economic Vectors\n\nSubstrate Runtimes can be seen as Distributed Virtual Machines (DVM), even when they’re not necessarily executing Smart Contracts. The difference is that Smart Contract-free Runtimes represent DVMs with static logic, and not really programmable via Smart Contracts bytecode. Such DVMs can however go through Runtime Upgrades, essentially upgrading DVM OpCodes.\n\nWhenever the DVM needs to execute its State Transition Functions, there’s a specific cost attributed to the virtual computational resources allocated for such transformation. Such cost is covered in the form of fees charged to the user, so that the system can function in a sustainable manner.\n\nThe relationship between fees and computational resources allocated from the DVM is critical to the economical safety of the system. Poorly designed fees leave room for wide Denial of Service (DoS) attack surfaces. An attacker can flood the system with resource-expensive but economically-cheap operations, effectively denying service from a significant number of users, while only spending a small amount of tokens.\n\nWhile Ethereum introduced the concept of Gas as a correlation between EVM resource consumption and economical fees, Substrate uses Weights so that Runtime Engineers can attribute appropriate fees for each extrinsic operation of their pallets. Properly engineered transaction fees are a fundamental property of a attack-resistant pallet.\n\n# Instructions\n\n1. To deploy a test setup:\n```sh\n$ git clone https://github.com/paritytech/chaoscope.git\n$ cd chaoscope\n$ bash chaoscope.sh\n```\n\nThe script will deploy a `substrate-node-template` with `pallet-chaos`, fire extrinsics to it and report the resutls.\n\n# Roadmap\n\n- [x] `overflow_adder` extrinsic implementation\n- [x] `overflow_adder` subxt RPC\n- [x] `clear_adder` extrinsic implementation\n- [x] `clear_adder` subxt RPC\n- [x] `drag_block_unit_weight` extrinsic implementation\n- [x] `drag_block_unit_weight` subxt RPC\n- [x] `substrate-node-chaos` (`substrate-node-chaos`+`pallet-chaos`)\n- [x] `chaoscope.sh`\n- [ ] Relay Chain support on `chaoscope.sh` (`polkadot`+[`cumulus`+`pallet-chaos`])\n\n# License\n\n\u003csup\u003e\nThe entire code within this repository is licensed under the \u003ca href=\"LICENSE\"\u003eAGPLv3\u003c/a\u003e.\nPlease \u003ca href=\"https://www.parity.io/contact/\"\u003econtact us\u003c/a\u003e if you have questions about the licensing of our\n products.\n\u003c/sup\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fchaoscope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparitytech%2Fchaoscope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fchaoscope/lists"}