{"id":28380728,"url":"https://github.com/0xsequence/reorgme","last_synced_at":"2025-06-24T21:31:20.783Z","repository":{"id":63524229,"uuid":"391136523","full_name":"0xsequence/reorgme","owner":"0xsequence","description":"Ethereum local test chain with block reorg on-demand","archived":false,"fork":false,"pushed_at":"2022-12-06T03:24:54.000Z","size":490,"stargazers_count":34,"open_issues_count":2,"forks_count":4,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-06-06T03:40:52.758Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xsequence.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-30T16:58:32.000Z","updated_at":"2024-12-09T20:28:31.000Z","dependencies_parsed_at":"2023-01-24T08:45:46.945Z","dependency_job_id":null,"html_url":"https://github.com/0xsequence/reorgme","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0xsequence/reorgme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsequence%2Freorgme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsequence%2Freorgme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsequence%2Freorgme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsequence%2Freorgme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xsequence","download_url":"https://codeload.github.com/0xsequence/reorgme/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsequence%2Freorgme/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261759092,"owners_count":23205494,"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":"2025-05-30T03:09:09.517Z","updated_at":"2025-06-24T21:31:20.772Z","avatar_url":"https://github.com/0xsequence.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reorgme \n\n[![Tests](https://github.com/0xsequence/reorgme/actions/workflows/test.yml/badge.svg)](https://github.com/0xsequence/reorgme/actions/workflows/test.yml)\n\nReorgme is a simple tool for creating private geth networks for reorg testing purposes, it uses Docker to generate a private network composed by 3 mining nodes using PoW. The tool allows for easily disconnecting a node from the other two, making it fork away from the chain, the node can be later reconnected to the other two nodes, this causes the node to experience a reorg.\n\n\u003e Disclaimer: This is alpha software and currently a work in progress, expect bugs!\n\n## Start a chain\n\nThis command downloads the docker images for alpine and geth, then it proceeds to create 3 docker containers for the 3 nodes.\n\n```\n$ reorgme start\n```\n\n### Start multiple chains at the same time\n\nThe `--id` flag can be use to interact with any of the blockchain instances.\n\n```\n$ reorgme start --id 0\n$ reorgme start --id 1\n```\n\n## Fork the chain\n\nThis is the first step for triggering a reorg.\n\n```\n$ reorgme fork\n```\n\nAfter the execution of this command the node `0` will be disconnected but it will keep minning on its own copy of the blockchain, you can proceed to send transactions to the node `0` if you want to test a reorg that doesn't include your transaction, or you can send transaction to both `0` and `1-2` if you intent to test more complex reorg scenarios.\n\n## Join the chain\n\nThis triggers the reorg.\n\n```\n$ reorgme join\n```\n\n\u003e There is no way to ensure the reorg will happen in a determined amount of time when executing the command, this software uses real PoW and real \"nodes\" for testing, those elements come with a certain level of uncertainty.\n\n## Stop the chain\n\nThis commands stops the chain and deletes the container and volumes of the nodes, docker images are not removed.\n\n```\n$ reorgme stop\n```\n\n\u003e This command can't be reverted\n\n\n# LICENSE\n\nApache-2.0\n\nCopyright (c) 2017-present Horizon Blockchain Games Inc. / https://horizon.io","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xsequence%2Freorgme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xsequence%2Freorgme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xsequence%2Freorgme/lists"}