{"id":15956092,"url":"https://github.com/jsign/fraudproofsim","last_synced_at":"2025-10-27T05:06:37.436Z","repository":{"id":74719298,"uuid":"168885904","full_name":"jsign/fraudproofsim","owner":"jsign","description":"Fraud-Proof network simulation tool","archived":false,"fork":false,"pushed_at":"2019-02-20T22:54:26.000Z","size":9,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T07:41:59.905Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsign.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":"2019-02-02T22:36:29.000Z","updated_at":"2022-11-10T11:53:34.000Z","dependencies_parsed_at":"2023-02-27T02:16:23.386Z","dependency_job_id":null,"html_url":"https://github.com/jsign/fraudproofsim","commit_stats":null,"previous_names":["jsign/fraudproofsimulation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jsign/fraudproofsim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Ffraudproofsim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Ffraudproofsim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Ffraudproofsim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Ffraudproofsim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsign","download_url":"https://codeload.github.com/jsign/fraudproofsim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Ffraudproofsim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281216687,"owners_count":26463033,"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-10-27T02:00:05.855Z","response_time":61,"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-10-07T13:28:25.598Z","updated_at":"2025-10-27T05:06:37.419Z","avatar_url":"https://github.com/jsign.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fraud-Proof Blockchain Simulator\n\n## Motivation\nThis is the repo corresponding to [Simulating a fraud-proof blockchain\n](https://medium.com/@jsign.uy/simulating-fraud-proof-blockchain-network-24bc55b1237c) article. \n\n## CLI\n```\n$ go run main.go\nIt permits to compare, solve and verify fraud-proof networks.\nUsage:\n  fraudproofsim [command]\nAvailable Commands:\n  compare     Compares the Standard and Enhanced models\n  help        Help about any command\n  solve       Solves c for k, s and p\n  verifypaper Verifies setups calculated in the paper\nFlags:\n      --enhanced   run an Enhanced Model\n  -h, --help       help for fraudproofsim\n      --n int      number of iterations to run per instance (default 500)\nUse \"fraudproofsim [command] --help\" for more information about a command.\n```\n\n### _verifypaper_ command\n```\n$ go run main.go help solve\nIt solves c for k, s and p (p, within a threshold)\nUsage:\n  fraudproofsim solve [k] [s] [p] [threshold?] [flags]\nFlags:\n  -h, --help   help for solve\nGlobal Flags:\n      --enhanced   run an Enhanced Model\n      --n int      number of iterations to run per instance (default 500)\n$ go run main.go verifypaper\nk=16, s=50, c=28 =\u003e p=1 37ms\nk=16, s=20, c=69 =\u003e p=0.994 28ms\nk=16, s=10, c=138 =\u003e p=0.988 37ms\nk=16, s=5, c=275 =\u003e p=0.986 37ms\nk=16, s=2, c=690 =\u003e p=0.99 63ms\nk=32, s=50, c=112 =\u003e p=0.996 137ms\nk=32, s=20, c=280 =\u003e p=0.994 131ms\nk=32, s=10, c=561 =\u003e p=0.988 136ms\nk=32, s=5, c=1122 =\u003e p=0.992 143ms\nk=32, s=2, c=2805 =\u003e p=0.994 175ms\nk=64, s=50, c=451 =\u003e p=0.996 464ms\nk=64, s=20, c=1129 =\u003e p=0.996 536ms\nk=64, s=10, c=2258 =\u003e p=0.992 510ms\nk=64, s=5, c=4516 =\u003e p=0.988 527ms\nk=64, s=2, c=11289 =\u003e p=0.996 679ms\nk=128, s=50, c=1811 =\u003e p=0.992 2193ms\nk=128, s=20, c=4500 =\u003e p=0.702 2068ms\nexit status 2\n```\n\n### _solve_ command\n```\n$ go run main.go help solve\nIt solves c for k, s and p (p, within a threshold)\nUsage:\n  fraudproofsim solve [k] [s] [p] [threshold?] [flags]\nFlags:\n  -h, --help   help for solve\nGlobal Flags:\n      --enhanced   run an Enhanced Model\n      --n int      number of iterations to run per instance (default 500)\n      \n$ go run main.go solve 64 10 .99 0.005\nSolving for (k:64, s:10, p:0.99, threshold:0.005)\n[1, 16384]: c=8192 p=1\n[1, 8192]: c=4096 p=1\n[1, 4096]: c=2048 p=0\n[2048, 4096]: c=3072 p=1\n[2048, 3072]: c=2560 p=1\n[2048, 2560]: c=2304 p=1\n[2048, 2304]: c=2176 p=0.002\n[2176, 2304]: c=2240 p=0.902\n[2240, 2304]: c=2272 p=1\n[2240, 2272]: c=2256 p=0.994\nSolution c=2256 with p=0.994 (4900ms)\n```\n\n### _compare_ command\n```\n$ go run main.go help compare\nCompares Standard and Enhanced model to understand their impact on soundness\nUsage:\n  fraudproofsim compare [k] [s] [#points] [flags]\nFlags:\n  -h, --help   help for compare\nGlobal Flags:\n      --enhanced   run an Enhanced Model\n      --n int      number of iterations to run per instance (default 500)\n      \n$ go run main.go compare 64 10 25\nSolving c for (k: 64, s: 10) with precision .99+-.005:\n[1, 16384]: c=8192 p=1\n[1, 8192]: c=4096 p=1\n[1, 4096]: c=2048 p=0\n[2048, 4096]: c=3072 p=1\n[2048, 3072]: c=2560 p=1\n[2048, 2560]: c=2304 p=1\n[2048, 2304]: c=2176 p=0\n[2176, 2304]: c=2240 p=0.896\n[2240, 2304]: c=2272 p=0.998\n[2240, 2272]: c=2256 p=0.99\nFound solution c=2256, now generating 25 points in [.50*c,1.5*c]=[1128, 3384]:\n0%\n3%\n7%\n11%\n15%\n19%\n23%\n27%\n31%\n35%\n39%\n43%\n47%\n51%\n55%\n59%\n63%\n67%\n71%\n75%\n79%\n83%\n87%\n91%\n95%\n99%\nPlotted in plot.png\n```\nOutput .png file:\n\u003cdl\u003e\n\u003cimg src=\"https://cdn-images-1.medium.com/max/800/1*ezgV1GyG9Lnss7zFhQ5JLw.png\"\u003e\u003c/src\u003e\n\u003c/dl\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsign%2Ffraudproofsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsign%2Ffraudproofsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsign%2Ffraudproofsim/lists"}