[{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35725","id":4057275604,"node_id":"PR_kwDOABII587x1RzU","html_url":"https://github.com/bitcoin/bitcoin/pull/35725","diff_url":"https://github.com/bitcoin/bitcoin/pull/35725.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35725.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35725","number":35725,"state":"open","locked":false,"title":"test: discover functional tests by scanning the test directory","user":{"login":"jml6m","id":5168718,"node_id":"MDQ6VXNlcjUxNjg3MTg=","avatar_url":"https://avatars.githubusercontent.com/u/5168718?v=4","gravatar_id":"","url":"https://api.github.com/users/jml6m","html_url":"https://github.com/jml6m","followers_url":"https://api.github.com/users/jml6m/followers","following_url":"https://api.github.com/users/jml6m/following{/other_user}","gists_url":"https://api.github.com/users/jml6m/gists{/gist_id}","starred_url":"https://api.github.com/users/jml6m/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jml6m/subscriptions","organizations_url":"https://api.github.com/users/jml6m/orgs","repos_url":"https://api.github.com/users/jml6m/repos","events_url":"https://api.github.com/users/jml6m/events{/privacy}","received_events_url":"https://api.github.com/users/jml6m/received_events","type":"User","user_view_type":"public","site_admin":false},"body":" `test/functional/test_runner.py` kept a large, manually ordered list of the\r\n  functional test scripts (`BASE_SCRIPTS`). Adding a test meant editing that list\r\n  and guessing a run-time position for it, and the shared, hand-ordered list was a\r\n  recurring source of merge conflicts.\r\n\r\n  This replaces the list with `get_base_scripts()`, which discovers the default\r\n  tests by scanning the functional test directory.\r\n\r\n  **Result**\r\n  - Adding a test is just adding the file — a correctly named `*.py` is picked up\r\n    automatically; no list entry, no run-time bucket to guess.\r\n  - No more merge conflicts on a shared, hand-ordered array.\r\n  - Behavior is unchanged: the discovered set of test invocations is identical to\r\n    the previous list, so which tests run (and how) is the same.\r\n\r\n  **Kept explicit** (cannot be derived from the filesystem)\r\n  - `TEST_PARAMS` — tests invoked multiple times with different arguments\r\n    (e.g. `rpc_bind.py --ipv4/--ipv6/--nonloopback`).\r\n  - `EXTENDED_SCRIPTS` — extended-only tests.\r\n  - `LONGEST_BASE_SCRIPT` — the longest test, scheduled first so parallel runtime\r\n    is unaffected.\r\n\r\n  `test/functional/README.md` is updated with the simpler instructions for adding a\r\n  test.","created_at":"2026-07-15T02:32:52Z","updated_at":"2026-07-15T03:37:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fb055f4ff378742d9ab053151c881c4480dc2d2f","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":62963516,"node_id":"MDU6TGFiZWw2Mjk2MzUxNg==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Tests","name":"Tests","color":"d4c5f9","default":false,"description":null}],"milestone":null,"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35725/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35725/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35725/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/215ffa0bece518c43e063e5e8ba1fbb4a2fd342a","head":{"label":"jml6m:test-runner-discover-scripts","ref":"test-runner-discover-scripts","sha":"215ffa0bece518c43e063e5e8ba1fbb4a2fd342a","user":{"login":"jml6m","id":5168718,"node_id":"MDQ6VXNlcjUxNjg3MTg=","avatar_url":"https://avatars.githubusercontent.com/u/5168718?v=4","gravatar_id":"","url":"https://api.github.com/users/jml6m","html_url":"https://github.com/jml6m","followers_url":"https://api.github.com/users/jml6m/followers","following_url":"https://api.github.com/users/jml6m/following{/other_user}","gists_url":"https://api.github.com/users/jml6m/gists{/gist_id}","starred_url":"https://api.github.com/users/jml6m/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jml6m/subscriptions","organizations_url":"https://api.github.com/users/jml6m/orgs","repos_url":"https://api.github.com/users/jml6m/repos","events_url":"https://api.github.com/users/jml6m/events{/privacy}","received_events_url":"https://api.github.com/users/jml6m/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1279796301,"node_id":"R_kgDOTEgkTQ","name":"bitcoin","full_name":"jml6m/bitcoin","private":false,"owner":{"login":"jml6m","id":5168718,"node_id":"MDQ6VXNlcjUxNjg3MTg=","avatar_url":"https://avatars.githubusercontent.com/u/5168718?v=4","gravatar_id":"","url":"https://api.github.com/users/jml6m","html_url":"https://github.com/jml6m","followers_url":"https://api.github.com/users/jml6m/followers","following_url":"https://api.github.com/users/jml6m/following{/other_user}","gists_url":"https://api.github.com/users/jml6m/gists{/gist_id}","starred_url":"https://api.github.com/users/jml6m/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jml6m/subscriptions","organizations_url":"https://api.github.com/users/jml6m/orgs","repos_url":"https://api.github.com/users/jml6m/repos","events_url":"https://api.github.com/users/jml6m/events{/privacy}","received_events_url":"https://api.github.com/users/jml6m/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/jml6m/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/jml6m/bitcoin","forks_url":"https://api.github.com/repos/jml6m/bitcoin/forks","keys_url":"https://api.github.com/repos/jml6m/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jml6m/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jml6m/bitcoin/teams","hooks_url":"https://api.github.com/repos/jml6m/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/jml6m/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/jml6m/bitcoin/events","assignees_url":"https://api.github.com/repos/jml6m/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/jml6m/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/jml6m/bitcoin/tags","blobs_url":"https://api.github.com/repos/jml6m/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jml6m/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jml6m/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/jml6m/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jml6m/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/jml6m/bitcoin/languages","stargazers_url":"https://api.github.com/repos/jml6m/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/jml6m/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/jml6m/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/jml6m/bitcoin/subscription","commits_url":"https://api.github.com/repos/jml6m/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/jml6m/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/jml6m/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/jml6m/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/jml6m/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/jml6m/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jml6m/bitcoin/merges","archive_url":"https://api.github.com/repos/jml6m/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jml6m/bitcoin/downloads","issues_url":"https://api.github.com/repos/jml6m/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/jml6m/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/jml6m/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/jml6m/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jml6m/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/jml6m/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/jml6m/bitcoin/deployments","created_at":"2026-06-25T02:53:19Z","updated_at":"2026-06-25T02:53:19Z","pushed_at":"2026-07-15T02:54:08Z","git_url":"git://github.com/jml6m/bitcoin.git","ssh_url":"git@github.com:jml6m/bitcoin.git","clone_url":"https://github.com/jml6m/bitcoin.git","svn_url":"https://github.com/jml6m/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319701,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"70d9ec7f3d452789d04dce81dc02db0b3b778bb5","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35725"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35725"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35725"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35725/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35725/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35725/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/215ffa0bece518c43e063e5e8ba1fbb4a2fd342a"}},"author_association":"NONE","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35724","id":4055951488,"node_id":"PR_kwDOABII587xwOiA","html_url":"https://github.com/bitcoin/bitcoin/pull/35724","diff_url":"https://github.com/bitcoin/bitcoin/pull/35724.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35724.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35724","number":35724,"state":"open","locked":false,"title":"cmpctblock: Improve logging of `cmpctblock` message reconstruction statistics [part of prefill series]","user":{"login":"davidgumberg","id":2257631,"node_id":"MDQ6VXNlcjIyNTc2MzE=","avatar_url":"https://avatars.githubusercontent.com/u/2257631?v=4","gravatar_id":"","url":"https://api.github.com/users/davidgumberg","html_url":"https://github.com/davidgumberg","followers_url":"https://api.github.com/users/davidgumberg/followers","following_url":"https://api.github.com/users/davidgumberg/following{/other_user}","gists_url":"https://api.github.com/users/davidgumberg/gists{/gist_id}","starred_url":"https://api.github.com/users/davidgumberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidgumberg/subscriptions","organizations_url":"https://api.github.com/users/davidgumberg/orgs","repos_url":"https://api.github.com/users/davidgumberg/repos","events_url":"https://api.github.com/users/davidgumberg/events{/privacy}","received_events_url":"https://api.github.com/users/davidgumberg/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Split from #35558, this makes it easier to observe compact block reconstruction performance by:\r\n\r\n- At debuglevel=trace logging all missing TX's in a CMPCTBLOCK, and all missing TX's requested from us.\r\n- Logging the sizes and counts of tx's used from the prefill, mempool, and extrapool.\r\n- Logging the sizes and sources of redundant transactions in the prefill section of received `CMPCTBLOCK`s. ","created_at":"2026-07-14T21:33:43Z","updated_at":"2026-07-14T21:34:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"15d22ddbe985a761d5a852392705c06bab1ddf55","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35724/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35724/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35724/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/cef79baeb237a0ec054f0f187e52688219246d33","head":{"label":"davidgumberg:2026-07-14-cb-logging","ref":"2026-07-14-cb-logging","sha":"cef79baeb237a0ec054f0f187e52688219246d33","user":{"login":"davidgumberg","id":2257631,"node_id":"MDQ6VXNlcjIyNTc2MzE=","avatar_url":"https://avatars.githubusercontent.com/u/2257631?v=4","gravatar_id":"","url":"https://api.github.com/users/davidgumberg","html_url":"https://github.com/davidgumberg","followers_url":"https://api.github.com/users/davidgumberg/followers","following_url":"https://api.github.com/users/davidgumberg/following{/other_user}","gists_url":"https://api.github.com/users/davidgumberg/gists{/gist_id}","starred_url":"https://api.github.com/users/davidgumberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidgumberg/subscriptions","organizations_url":"https://api.github.com/users/davidgumberg/orgs","repos_url":"https://api.github.com/users/davidgumberg/repos","events_url":"https://api.github.com/users/davidgumberg/events{/privacy}","received_events_url":"https://api.github.com/users/davidgumberg/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":529442895,"node_id":"R_kgDOH46oTw","name":"bitcoin","full_name":"davidgumberg/bitcoin","private":false,"owner":{"login":"davidgumberg","id":2257631,"node_id":"MDQ6VXNlcjIyNTc2MzE=","avatar_url":"https://avatars.githubusercontent.com/u/2257631?v=4","gravatar_id":"","url":"https://api.github.com/users/davidgumberg","html_url":"https://github.com/davidgumberg","followers_url":"https://api.github.com/users/davidgumberg/followers","following_url":"https://api.github.com/users/davidgumberg/following{/other_user}","gists_url":"https://api.github.com/users/davidgumberg/gists{/gist_id}","starred_url":"https://api.github.com/users/davidgumberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidgumberg/subscriptions","organizations_url":"https://api.github.com/users/davidgumberg/orgs","repos_url":"https://api.github.com/users/davidgumberg/repos","events_url":"https://api.github.com/users/davidgumberg/events{/privacy}","received_events_url":"https://api.github.com/users/davidgumberg/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/davidgumberg/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/davidgumberg/bitcoin","forks_url":"https://api.github.com/repos/davidgumberg/bitcoin/forks","keys_url":"https://api.github.com/repos/davidgumberg/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/davidgumberg/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/davidgumberg/bitcoin/teams","hooks_url":"https://api.github.com/repos/davidgumberg/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/davidgumberg/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/davidgumberg/bitcoin/events","assignees_url":"https://api.github.com/repos/davidgumberg/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/davidgumberg/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/davidgumberg/bitcoin/tags","blobs_url":"https://api.github.com/repos/davidgumberg/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/davidgumberg/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/davidgumberg/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/davidgumberg/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/davidgumberg/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/davidgumberg/bitcoin/languages","stargazers_url":"https://api.github.com/repos/davidgumberg/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/davidgumberg/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/davidgumberg/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/davidgumberg/bitcoin/subscription","commits_url":"https://api.github.com/repos/davidgumberg/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/davidgumberg/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/davidgumberg/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/davidgumberg/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/davidgumberg/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/davidgumberg/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/davidgumberg/bitcoin/merges","archive_url":"https://api.github.com/repos/davidgumberg/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/davidgumberg/bitcoin/downloads","issues_url":"https://api.github.com/repos/davidgumberg/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/davidgumberg/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/davidgumberg/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/davidgumberg/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/davidgumberg/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/davidgumberg/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/davidgumberg/bitcoin/deployments","created_at":"2022-08-27T00:44:27Z","updated_at":"2026-06-18T02:28:38Z","pushed_at":"2026-07-14T23:34:37Z","git_url":"git://github.com/davidgumberg/bitcoin.git","ssh_url":"git@github.com:davidgumberg/bitcoin.git","clone_url":"https://github.com/davidgumberg/bitcoin.git","svn_url":"https://github.com/davidgumberg/bitcoin","homepage":"https://bitcoincore.org/en/download","size":278827,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":8,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":8,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"7bff765d514e0bdc8e6b2d156d3de0dd3800ab1d","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35724"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35724"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35724"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35724/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35724/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35724/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/cef79baeb237a0ec054f0f187e52688219246d33"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35722","id":4052878590,"node_id":"PR_kwDOABII587xkgT-","html_url":"https://github.com/bitcoin/bitcoin/pull/35722","diff_url":"https://github.com/bitcoin/bitcoin/pull/35722.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35722.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35722","number":35722,"state":"open","locked":false,"title":"ci: cache BSD sdk sources separately","user":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Sometimes CI jobs need to (re)download *BSD SDK archives, and these downloads can delay or fail the job, as has been happening recently.\r\n\r\nThe SDKs are currently downloaded and extracted _while building the CI image itself_; this means that when the relevant image-build cache is missed or invalidated, the SDK archives are downloaded again, which is unnecessary.\r\n\r\nInstead, cache the BSD SDK archives separately and mount them into the runtime container. Move the BSD SDK setup out of `01_base_install.sh` and run it after the container starts, so it is no longer part of the image build and the BSD SDKs are no longer part of the image build cache/layers.\r\n\r\nThis means rebuilding the BSD images no longer relies on pulling the SDK archives, reducing reliance and load we have on archive servers in many cases.\r\n\r\nWhile touching 02_run_container.py and adding new paths to it, unify path handling for all caches a bit more.","created_at":"2026-07-14T13:38:44Z","updated_at":"2026-07-14T16:14:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0cebdefedc46b5d7f2e62e70191fc48eb20218a7","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":62963516,"node_id":"MDU6TGFiZWw2Mjk2MzUxNg==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Tests","name":"Tests","color":"d4c5f9","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35722/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35722/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35722/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/cd4b34c58dfcea8b5906d4bd397d0611c50e11c9","head":{"label":"willcl-ark:depends-sdk-sources","ref":"depends-sdk-sources","sha":"cd4b34c58dfcea8b5906d4bd397d0611c50e11c9","user":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":164122552,"node_id":"MDEwOlJlcG9zaXRvcnkxNjQxMjI1NTI=","name":"bitcoin","full_name":"willcl-ark/bitcoin","private":false,"owner":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/willcl-ark/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/willcl-ark/bitcoin","forks_url":"https://api.github.com/repos/willcl-ark/bitcoin/forks","keys_url":"https://api.github.com/repos/willcl-ark/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/willcl-ark/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/willcl-ark/bitcoin/teams","hooks_url":"https://api.github.com/repos/willcl-ark/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/willcl-ark/bitcoin/events","assignees_url":"https://api.github.com/repos/willcl-ark/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/willcl-ark/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/willcl-ark/bitcoin/tags","blobs_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/willcl-ark/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/willcl-ark/bitcoin/languages","stargazers_url":"https://api.github.com/repos/willcl-ark/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/willcl-ark/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/willcl-ark/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/willcl-ark/bitcoin/subscription","commits_url":"https://api.github.com/repos/willcl-ark/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/willcl-ark/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/willcl-ark/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/willcl-ark/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/willcl-ark/bitcoin/merges","archive_url":"https://api.github.com/repos/willcl-ark/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/willcl-ark/bitcoin/downloads","issues_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/willcl-ark/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/willcl-ark/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/willcl-ark/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/willcl-ark/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/willcl-ark/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/willcl-ark/bitcoin/deployments","created_at":"2019-01-04T15:17:29Z","updated_at":"2026-06-21T12:55:41Z","pushed_at":"2026-07-14T15:07:42Z","git_url":"git://github.com/willcl-ark/bitcoin.git","ssh_url":"git@github.com:willcl-ark/bitcoin.git","clone_url":"https://github.com/willcl-ark/bitcoin.git","svn_url":"https://github.com/willcl-ark/bitcoin","homepage":"https://bitcoincore.org/en/download","size":317459,"stargazers_count":5,"watchers_count":5,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":14,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":2,"open_issues":14,"watchers":5,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"2d4065d1fe4d9ad802e7c2b996d6cb12d66677a2","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35722"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35722"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35722"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35722/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35722/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35722/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/cd4b34c58dfcea8b5906d4bd397d0611c50e11c9"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35721","id":4051946955,"node_id":"PR_kwDOABII587xg83L","html_url":"https://github.com/bitcoin/bitcoin/pull/35721","diff_url":"https://github.com/bitcoin/bitcoin/pull/35721.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35721.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35721","number":35721,"state":"open","locked":false,"title":"lint: drop most remaining default Ruff rule ignores","user":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Follows up on #34547 by dropping (and fixing) most remaining default Ruff rule ignores:\r\n\r\n- [E712](https://docs.astral.sh/ruff/rules/true-false-comparison/) avoids noisy `== True/False` comparisons and makes boolean intent clearer.\r\n- [E731](https://docs.astral.sh/ruff/rules/lambda-assignment/) named `def` helpers are easier to debug, trace, type-check, and extend than assigned lambdas.\r\n\r\nDropping the rules means these issues cannot be re-introduced.\r\n\r\nE501 remains as this has 8909 callsites to fix, and IMO it's not clear that having an arbitrary-line length improves anything about the codebase, or for developers.\r\n\r\nE741 remains based on review feedback that it's unnecessary to enforce.","created_at":"2026-07-14T11:16:59Z","updated_at":"2026-07-14T15:07:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fbc870d804c9355d36febb55bef0c0851f299206","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":62963516,"node_id":"MDU6TGFiZWw2Mjk2MzUxNg==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Tests","name":"Tests","color":"d4c5f9","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35721/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35721/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35721/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/e864d2e1b4cfd103a14551ec9c789ab583ef3496","head":{"label":"willcl-ark:drop-ruff-ignores","ref":"drop-ruff-ignores","sha":"e864d2e1b4cfd103a14551ec9c789ab583ef3496","user":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":164122552,"node_id":"MDEwOlJlcG9zaXRvcnkxNjQxMjI1NTI=","name":"bitcoin","full_name":"willcl-ark/bitcoin","private":false,"owner":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/willcl-ark/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/willcl-ark/bitcoin","forks_url":"https://api.github.com/repos/willcl-ark/bitcoin/forks","keys_url":"https://api.github.com/repos/willcl-ark/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/willcl-ark/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/willcl-ark/bitcoin/teams","hooks_url":"https://api.github.com/repos/willcl-ark/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/willcl-ark/bitcoin/events","assignees_url":"https://api.github.com/repos/willcl-ark/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/willcl-ark/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/willcl-ark/bitcoin/tags","blobs_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/willcl-ark/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/willcl-ark/bitcoin/languages","stargazers_url":"https://api.github.com/repos/willcl-ark/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/willcl-ark/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/willcl-ark/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/willcl-ark/bitcoin/subscription","commits_url":"https://api.github.com/repos/willcl-ark/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/willcl-ark/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/willcl-ark/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/willcl-ark/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/willcl-ark/bitcoin/merges","archive_url":"https://api.github.com/repos/willcl-ark/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/willcl-ark/bitcoin/downloads","issues_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/willcl-ark/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/willcl-ark/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/willcl-ark/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/willcl-ark/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/willcl-ark/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/willcl-ark/bitcoin/deployments","created_at":"2019-01-04T15:17:29Z","updated_at":"2026-06-21T12:55:41Z","pushed_at":"2026-07-14T15:07:42Z","git_url":"git://github.com/willcl-ark/bitcoin.git","ssh_url":"git@github.com:willcl-ark/bitcoin.git","clone_url":"https://github.com/willcl-ark/bitcoin.git","svn_url":"https://github.com/willcl-ark/bitcoin","homepage":"https://bitcoincore.org/en/download","size":317459,"stargazers_count":5,"watchers_count":5,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":14,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":2,"open_issues":14,"watchers":5,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"2d4065d1fe4d9ad802e7c2b996d6cb12d66677a2","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35721"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35721"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35721"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35721/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35721/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35721/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/e864d2e1b4cfd103a14551ec9c789ab583ef3496"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35716","id":4048795507,"node_id":"PR_kwDOABII587xU7dz","html_url":"https://github.com/bitcoin/bitcoin/pull/35716","diff_url":"https://github.com/bitcoin/bitcoin/pull/35716.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35716.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35716","number":35716,"state":"open","locked":false,"title":"wallet: Replace mapWallet and wtxOrdered with a boost::multi_index","user":{"login":"achow101","id":3782274,"node_id":"MDQ6VXNlcjM3ODIyNzQ=","avatar_url":"https://avatars.githubusercontent.com/u/3782274?v=4","gravatar_id":"","url":"https://api.github.com/users/achow101","html_url":"https://github.com/achow101","followers_url":"https://api.github.com/users/achow101/followers","following_url":"https://api.github.com/users/achow101/following{/other_user}","gists_url":"https://api.github.com/users/achow101/gists{/gist_id}","starred_url":"https://api.github.com/users/achow101/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/achow101/subscriptions","organizations_url":"https://api.github.com/users/achow101/orgs","repos_url":"https://api.github.com/users/achow101/repos","events_url":"https://api.github.com/users/achow101/events{/privacy}","received_events_url":"https://api.github.com/users/achow101/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"The wallet needs to access transactions both by txid, and by insertion order into the wallet. `mapWallet` was the main container for the wallet transactions, and it was keyed by txid. `wtxOrdered` was a secondary container which was keyed by order, and held pointers to the `CWalletTx` objects stored in `mapWallet`. These are replaced by a new boost multi index which indexes on txid and insertion order, allowing us to get rid of the 2 separate containers, and holding raw pointers to `CWalletTx`.\r\n\r\nThis depends on #35501 for the `CWalletTx` constructor changes that are necessary for this.","created_at":"2026-07-14T00:33:37Z","updated_at":"2026-07-14T22:03:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7d00e538c032be9097ef39dbc4e751dd1bdb9628","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":149424,"node_id":"MDU6TGFiZWwxNDk0MjQ=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Wallet","name":"Wallet","color":"08a781","default":false,"description":null},{"id":5334691551,"node_id":"LA_kwDOABII588AAAABPfju3w","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/CI%20failed","name":"CI failed","color":"cccccc","default":false,"description":""}],"milestone":null,"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35716/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35716/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35716/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/45d280323b41a9c98ccbd920061abdca6a2c979b","head":{"label":"achow101:wallet-mapwallet-multiindex","ref":"wallet-mapwallet-multiindex","sha":"45d280323b41a9c98ccbd920061abdca6a2c979b","user":{"login":"achow101","id":3782274,"node_id":"MDQ6VXNlcjM3ODIyNzQ=","avatar_url":"https://avatars.githubusercontent.com/u/3782274?v=4","gravatar_id":"","url":"https://api.github.com/users/achow101","html_url":"https://github.com/achow101","followers_url":"https://api.github.com/users/achow101/followers","following_url":"https://api.github.com/users/achow101/following{/other_user}","gists_url":"https://api.github.com/users/achow101/gists{/gist_id}","starred_url":"https://api.github.com/users/achow101/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/achow101/subscriptions","organizations_url":"https://api.github.com/users/achow101/orgs","repos_url":"https://api.github.com/users/achow101/repos","events_url":"https://api.github.com/users/achow101/events{/privacy}","received_events_url":"https://api.github.com/users/achow101/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":45006379,"node_id":"MDEwOlJlcG9zaXRvcnk0NTAwNjM3OQ==","name":"bitcoin","full_name":"achow101/bitcoin","private":false,"owner":{"login":"achow101","id":3782274,"node_id":"MDQ6VXNlcjM3ODIyNzQ=","avatar_url":"https://avatars.githubusercontent.com/u/3782274?v=4","gravatar_id":"","url":"https://api.github.com/users/achow101","html_url":"https://github.com/achow101","followers_url":"https://api.github.com/users/achow101/followers","following_url":"https://api.github.com/users/achow101/following{/other_user}","gists_url":"https://api.github.com/users/achow101/gists{/gist_id}","starred_url":"https://api.github.com/users/achow101/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/achow101/subscriptions","organizations_url":"https://api.github.com/users/achow101/orgs","repos_url":"https://api.github.com/users/achow101/repos","events_url":"https://api.github.com/users/achow101/events{/privacy}","received_events_url":"https://api.github.com/users/achow101/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/achow101/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/achow101/bitcoin","forks_url":"https://api.github.com/repos/achow101/bitcoin/forks","keys_url":"https://api.github.com/repos/achow101/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/achow101/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/achow101/bitcoin/teams","hooks_url":"https://api.github.com/repos/achow101/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/achow101/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/achow101/bitcoin/events","assignees_url":"https://api.github.com/repos/achow101/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/achow101/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/achow101/bitcoin/tags","blobs_url":"https://api.github.com/repos/achow101/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/achow101/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/achow101/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/achow101/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/achow101/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/achow101/bitcoin/languages","stargazers_url":"https://api.github.com/repos/achow101/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/achow101/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/achow101/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/achow101/bitcoin/subscription","commits_url":"https://api.github.com/repos/achow101/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/achow101/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/achow101/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/achow101/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/achow101/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/achow101/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/achow101/bitcoin/merges","archive_url":"https://api.github.com/repos/achow101/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/achow101/bitcoin/downloads","issues_url":"https://api.github.com/repos/achow101/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/achow101/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/achow101/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/achow101/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/achow101/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/achow101/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/achow101/bitcoin/deployments","created_at":"2015-10-27T00:20:28Z","updated_at":"2026-07-08T18:28:13Z","pushed_at":"2026-07-14T17:56:12Z","git_url":"git://github.com/achow101/bitcoin.git","ssh_url":"git@github.com:achow101/bitcoin.git","clone_url":"https://github.com/achow101/bitcoin.git","svn_url":"https://github.com/achow101/bitcoin","homepage":"https://bitcoin.org/en/download","size":334289,"stargazers_count":42,"watchers_count":42,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":11,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":11,"open_issues":0,"watchers":42,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"2d4065d1fe4d9ad802e7c2b996d6cb12d66677a2","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35716"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35716"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35716"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35716/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35716/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35716/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/45d280323b41a9c98ccbd920061abdca6a2c979b"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35714","id":4047250075,"node_id":"PR_kwDOABII587xPCKb","html_url":"https://github.com/bitcoin/bitcoin/pull/35714","diff_url":"https://github.com/bitcoin/bitcoin/pull/35714.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35714.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35714","number":35714,"state":"open","locked":false,"title":"validation: stop writes after flush failure","user":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"**Problem:** When `FlushChainstateBlockFile()` fails, shutdown is requested, but `FlushStateToDisk()` still writes block-index metadata and coins data, then advances `m_last_flushed_block`.\r\nThose writes can record a block even though its block or undo data may not be durable.\r\n\r\n**Fix:** Return the flush error before those writes, leaving `m_last_flushed_block` at the last successfully flushed block.\r\n\r\n**History:**\r\n* [#27866](https://github.com/bitcoin/bitcoin/pull/27866#discussion_r1256378064) proposed returning here to avoid writing metadata for block data that failed to flush, but review requested a test and caller audit before changing behavior, so it was [deferred](https://github.com/bitcoin/bitcoin/pull/27866#discussion_r1297313148) as the current [TODO](https://github.com/bitcoin/bitcoin/pull/27866#issuecomment-1702186979); this PR now resolves it.\r\n* [#34897](https://github.com/bitcoin/bitcoin/pull/34897) later introduced `m_last_flushed_block` to prevent persistent indexes from advancing past flushed chainstate; this fix keeps it at the last successful flush.\r\n</details>\r\n","created_at":"2026-07-13T19:37:29Z","updated_at":"2026-07-14T19:32:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"57329013cd136e53d51ac278e0dfdd793f20f869","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":118379652,"node_id":"MDU6TGFiZWwxMTgzNzk2NTI=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Validation","name":"Validation","color":"6060aa","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35714/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35714/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35714/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/e1a337ee961db4308697de7cddcf4aad9684c7f1","head":{"label":"l0rinc:l0rinc/flush-state-failure-boundary","ref":"l0rinc/flush-state-failure-boundary","sha":"e1a337ee961db4308697de7cddcf4aad9684c7f1","user":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":674169038,"node_id":"R_kgDOKC8Azg","name":"bitcoin","full_name":"l0rinc/bitcoin","private":false,"owner":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/l0rinc/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/l0rinc/bitcoin","forks_url":"https://api.github.com/repos/l0rinc/bitcoin/forks","keys_url":"https://api.github.com/repos/l0rinc/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/l0rinc/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/l0rinc/bitcoin/teams","hooks_url":"https://api.github.com/repos/l0rinc/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/l0rinc/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/l0rinc/bitcoin/events","assignees_url":"https://api.github.com/repos/l0rinc/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/l0rinc/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/l0rinc/bitcoin/tags","blobs_url":"https://api.github.com/repos/l0rinc/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/l0rinc/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/l0rinc/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/l0rinc/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/l0rinc/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/l0rinc/bitcoin/languages","stargazers_url":"https://api.github.com/repos/l0rinc/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/l0rinc/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/l0rinc/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/l0rinc/bitcoin/subscription","commits_url":"https://api.github.com/repos/l0rinc/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/l0rinc/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/l0rinc/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/l0rinc/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/l0rinc/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/l0rinc/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/l0rinc/bitcoin/merges","archive_url":"https://api.github.com/repos/l0rinc/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/l0rinc/bitcoin/downloads","issues_url":"https://api.github.com/repos/l0rinc/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/l0rinc/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/l0rinc/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/l0rinc/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/l0rinc/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/l0rinc/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/l0rinc/bitcoin/deployments","created_at":"2023-08-03T09:49:12Z","updated_at":"2026-07-14T18:55:55Z","pushed_at":"2026-07-15T02:58:25Z","git_url":"git://github.com/l0rinc/bitcoin.git","ssh_url":"git@github.com:l0rinc/bitcoin.git","clone_url":"https://github.com/l0rinc/bitcoin.git","svn_url":"https://github.com/l0rinc/bitcoin","homepage":"https://bitcoincore.org/en/download","size":314388,"stargazers_count":4,"watchers_count":4,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":108,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":1,"open_issues":108,"watchers":4,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"d18fec892e22530c79bbba0080af288a61512c9a","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35714"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35714"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35714"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35714/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35714/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35714/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/e1a337ee961db4308697de7cddcf4aad9684c7f1"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35713","id":4045170355,"node_id":"PR_kwDOABII587xHGaz","html_url":"https://github.com/bitcoin/bitcoin/pull/35713","diff_url":"https://github.com/bitcoin/bitcoin/pull/35713.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35713.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35713","number":35713,"state":"open","locked":false,"title":"Remove boost as a unit test runner","user":{"login":"rustaceanrob","id":102320249,"node_id":"U_kgDOBhlIeQ","avatar_url":"https://avatars.githubusercontent.com/u/102320249?v=4","gravatar_id":"","url":"https://api.github.com/users/rustaceanrob","html_url":"https://github.com/rustaceanrob","followers_url":"https://api.github.com/users/rustaceanrob/followers","following_url":"https://api.github.com/users/rustaceanrob/following{/other_user}","gists_url":"https://api.github.com/users/rustaceanrob/gists{/gist_id}","starred_url":"https://api.github.com/users/rustaceanrob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustaceanrob/subscriptions","organizations_url":"https://api.github.com/users/rustaceanrob/orgs","repos_url":"https://api.github.com/users/rustaceanrob/repos","events_url":"https://api.github.com/users/rustaceanrob/events{/privacy}","received_events_url":"https://api.github.com/users/rustaceanrob/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Continued from #35587. tl;dr: Make an equivalent test runner to boost with simpler macros and tighter coupling to bitcoin-specific code.\r\n### Motivation\r\nThere are a number of problems with using dependencies in general. Bugs must either be promptly upstreamed or patched, projects may be abandoned, and they are not tailored to a particular use case. This PR removes boost for writing and running unit tests. In the case of Boost.Test, there are a number of issues which are listed below.\r\n\r\n### My problems with Boost.Test\r\n\r\n#### Macros\r\nWhen using boost, there are 3 ways of writing the same thing, each with different outcomes\r\n- `BOOST_CHECK(expr1 == expr2)`: failures show the expression, but no values for `expr1` and `expr2`\r\n- `BOOST_CHECK_EQUAL(expr1, expr2)`: failures show the expression and values, but requires developers remember `CHECK_EQUAL` and does not use usual operands\r\n- `BOOST_TEST(expr1 == expr2)`: failures show the expression and values, and developers may use familiar operands (`==`, `!=`)\r\n\r\nAll three are preserved to maintain backwards compatibility - presumably, but this results in all 3 being used throughout the repository. As a bonus there is a 4th way, with added context\r\n- `BOOST_CHECK_MESSAGE(expr1 == expr2, \"the context\")`:  failures show the expression and message, but no values for `expr1` and `expr2`\r\n\r\nTo make debugging and review easier, all of these should be unified to a single macro. Test sites use operands, print helpful messages - values are always included, and do not vary in approach (deciding between `BOOST_TEST`, `CHECK`, and `BOOST_CHECK_EQUAL` is unintuitive)\r\n\r\n<details>\r\n<summary>Example boost outputs</summary>\r\n\r\n```cpp\r\nBOOST_AUTO_TEST_CASE(mustfail)\r\n{\r\n    auto a{1};\r\n    auto b{2};\r\n    BOOST_CHECK(a == b);\r\n    BOOST_CHECK_EQUAL(a, b);\r\n    BOOST_TEST(a == b);\r\n    COutPoint outpoint_1{Txid{\"0000000000000000000000000000000000000000000000000000000000000100\"}, 0};\r\n    COutPoint outpoint_2{Txid{\"0000000000000000000000000000000000000000000000000000000000000100\"}, 1};\r\n    BOOST_CHECK(outpoint_1 == outpoint_2);\r\n    // Doesn't even compile\r\n    // BOOST_TEST(outpoint_1 == outpoint_2);\r\n    // BOOST_CHECK_EQUAL(outpoint_1, outpoint_2);\r\n}\r\n```\r\n\r\n```\r\nRunning 1 test case...\r\ntest/argsman_tests.cpp(31): error: in \"argsman_tests/mustfail\": check a == b has failed\r\ntest/argsman_tests.cpp(32): error: in \"argsman_tests/mustfail\": check a == b has failed [1 != 2]\r\ntest/argsman_tests.cpp(33): error: in \"argsman_tests/mustfail\": check a == b has failed [1 != 2]\r\ntest/argsman_tests.cpp(36): error: in \"argsman_tests/mustfail\": check outpoint_1 == outpoint_2 has failed\r\n```\r\n</details>\r\n\r\n<details>\r\n<summary>New outputs</summary>\r\n\r\n```cpp\r\nTEST_CASE(mustfail)\r\n{\r\n    auto a{1};\r\n    auto b{2};\r\n    CHECK(a == b);\r\n    COutPoint outpoint_1{Txid{\"0000000000000000000000000000000000000000000000000000000000000100\"}, 0};\r\n    COutPoint outpoint_2{Txid{\"0000000000000000000000000000000000000000000000000000000000000100\"}, 1};\r\n    CHECK(outpoint_1 == outpoint_2);\r\n}\r\n```\r\n\r\n```\r\nRunning 1 test cases...\r\n[FAIL]: test/argsman_tests.cpp:30: CHECK(a == b)\r\n1 == 2\r\n\r\n[FAIL]: test/argsman_tests.cpp:33: CHECK(outpoint_1 == outpoint_2)\r\nCOutPoint(0000000000, 0) == COutPoint(0000000000, 1)\r\n\r\n[FAIL] mustfail (2/2 checks failed)\r\n```\r\n</details>\r\n\r\n#### No repository context\r\n\r\nMany types implement `ToString`, but boost has no way of meaningfully using these representations (will change w/ future `std::format`). With a repository-specific test runner we can use these today. See example above.\r\n\r\n#### Not extensible\r\n\r\nWith the test runner in this repository we can add things such as #35139, implement string representations for more types, and implement ideas from #8670. \r\n\r\n#### Other issues\r\n\r\nMore issues with boost are raised in #34666, #8670. This PR does not resolve all of them, but one it does address immediately is banning comparisons of integers with different signs, previously allowed by boost. Using a test runner within the source also makes IWYU easier to work with.\r\n\r\n### High level changes\r\n\r\nFor those running tests, not a tremendous amount has changed in this PR. For instance, the [doc page](https://github.com/bitcoin/bitcoin/tree/master/src/test) remains valid. Changes to the runner options include anything that is not `help, run_test, log_level, list_content`. This includes `catch_system_errors` which is always no. The `log_levels` have been reduced to 5 levels.\r\n\r\n### Changes in writing tests\r\n\r\n- `CHECK` to compare two values with any `==`, `!=`, `>`, etc\r\n- `CHECK(a == b, \"my message\")` to append a message\r\n- `REQUIRE`, same as `CHECK`, but will fail the test immediately\r\n- `CHECK_EQUAL_RANGES(it1, it2)` to compare two ranges\r\n- `TEST_CASE(name)` to add a test\r\n- `FIXTURE_TEST_CASE(name, Fixture)` to add a test with a fixture\r\n- `TEST_SUITE_BEGIN/END` to declare a suite, optionally with fixture for each test in the suite\r\n\r\n### Migration\r\n\r\n`Boost.Test` is removed in this PR, but the macros are aliased by `BOOST_*` counterparts so there are no merge conflicts. The idea would be to migrate test files to the new macros when there are no/low number of conflicts on that file.\r\n\r\n### Commits\r\n\r\n**The addition of the framework:**\r\n- test: Add header-only framework to util\r\n\r\n**Migration script (majority of the file changes):**\r\n- scripted-diff: Migrate tests to header-only framework\r\n\r\n**Low usage count macro removals:**\r\n- test: Remove use of `BOOST_FAIL`\r\n- test: Remove use of `BOOST_TEST_INFO_*`\r\n- test: Remove use of `BOOST_CHECK_CLOSE`\r\n\r\n**Required for expression decomposition:**\r\n- crypto: Use constexpr to define output size\r\n- util: Use constexpr in LockedPool definitions\r\n- net: Make AddressPosition comparitor const\r\n- test: Unroll `&&` conditions in macros\r\n- test: Wrap `||` expressions in macros\r\n- test: Wrap bitwise `&` expressions in macros\r\n\r\n**To pass CI**\r\n- test: Use lambda for CRecipient to avoid gcc12 uninitialized warning\r\n- test: Include memory in result_tests for IWYU\r\n\r\n**Build and config**\r\n- depends: drop test from Boost libraries\r\n- cmake: drop vcpkg Boost Test check\r\n- vcpkg: drop boost-test dependency","created_at":"2026-07-13T14:23:22Z","updated_at":"2026-07-14T14:53:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d1c3bec569948fc50bfbae40d8ec2a0f74f387e8","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35713/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35713/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35713/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/16926e7daed10ad09dc36332e4f7f4feab5e6b8f","head":{"label":"rustaceanrob:remove-boost-test","ref":"remove-boost-test","sha":"16926e7daed10ad09dc36332e4f7f4feab5e6b8f","user":{"login":"rustaceanrob","id":102320249,"node_id":"U_kgDOBhlIeQ","avatar_url":"https://avatars.githubusercontent.com/u/102320249?v=4","gravatar_id":"","url":"https://api.github.com/users/rustaceanrob","html_url":"https://github.com/rustaceanrob","followers_url":"https://api.github.com/users/rustaceanrob/followers","following_url":"https://api.github.com/users/rustaceanrob/following{/other_user}","gists_url":"https://api.github.com/users/rustaceanrob/gists{/gist_id}","starred_url":"https://api.github.com/users/rustaceanrob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustaceanrob/subscriptions","organizations_url":"https://api.github.com/users/rustaceanrob/orgs","repos_url":"https://api.github.com/users/rustaceanrob/repos","events_url":"https://api.github.com/users/rustaceanrob/events{/privacy}","received_events_url":"https://api.github.com/users/rustaceanrob/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":849046112,"node_id":"R_kgDOMptqYA","name":"bitcoin","full_name":"rustaceanrob/bitcoin","private":false,"owner":{"login":"rustaceanrob","id":102320249,"node_id":"U_kgDOBhlIeQ","avatar_url":"https://avatars.githubusercontent.com/u/102320249?v=4","gravatar_id":"","url":"https://api.github.com/users/rustaceanrob","html_url":"https://github.com/rustaceanrob","followers_url":"https://api.github.com/users/rustaceanrob/followers","following_url":"https://api.github.com/users/rustaceanrob/following{/other_user}","gists_url":"https://api.github.com/users/rustaceanrob/gists{/gist_id}","starred_url":"https://api.github.com/users/rustaceanrob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustaceanrob/subscriptions","organizations_url":"https://api.github.com/users/rustaceanrob/orgs","repos_url":"https://api.github.com/users/rustaceanrob/repos","events_url":"https://api.github.com/users/rustaceanrob/events{/privacy}","received_events_url":"https://api.github.com/users/rustaceanrob/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/rustaceanrob/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/rustaceanrob/bitcoin","forks_url":"https://api.github.com/repos/rustaceanrob/bitcoin/forks","keys_url":"https://api.github.com/repos/rustaceanrob/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rustaceanrob/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rustaceanrob/bitcoin/teams","hooks_url":"https://api.github.com/repos/rustaceanrob/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/rustaceanrob/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/rustaceanrob/bitcoin/events","assignees_url":"https://api.github.com/repos/rustaceanrob/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/rustaceanrob/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/rustaceanrob/bitcoin/tags","blobs_url":"https://api.github.com/repos/rustaceanrob/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rustaceanrob/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rustaceanrob/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/rustaceanrob/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rustaceanrob/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/rustaceanrob/bitcoin/languages","stargazers_url":"https://api.github.com/repos/rustaceanrob/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/rustaceanrob/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/rustaceanrob/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/rustaceanrob/bitcoin/subscription","commits_url":"https://api.github.com/repos/rustaceanrob/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/rustaceanrob/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/rustaceanrob/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/rustaceanrob/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/rustaceanrob/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/rustaceanrob/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rustaceanrob/bitcoin/merges","archive_url":"https://api.github.com/repos/rustaceanrob/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rustaceanrob/bitcoin/downloads","issues_url":"https://api.github.com/repos/rustaceanrob/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/rustaceanrob/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/rustaceanrob/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/rustaceanrob/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rustaceanrob/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/rustaceanrob/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/rustaceanrob/bitcoin/deployments","created_at":"2024-08-28T22:00:36Z","updated_at":"2026-07-09T11:47:13Z","pushed_at":"2026-07-14T19:18:30Z","git_url":"git://github.com/rustaceanrob/bitcoin.git","ssh_url":"git@github.com:rustaceanrob/bitcoin.git","clone_url":"https://github.com/rustaceanrob/bitcoin.git","svn_url":"https://github.com/rustaceanrob/bitcoin","homepage":"https://bitcoincore.org/en/download","size":276816,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"54e1a95a12e7d96e1207f9b558a9fc71d774c046","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35713"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35713"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35713"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35713/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35713/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35713/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/16926e7daed10ad09dc36332e4f7f4feab5e6b8f"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35712","id":4045047752,"node_id":"PR_kwDOABII587xGofI","html_url":"https://github.com/bitcoin/bitcoin/pull/35712","diff_url":"https://github.com/bitcoin/bitcoin/pull/35712.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35712.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35712","number":35712,"state":"open","locked":false,"title":"mining: add getInfo() IPC method","user":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"This lets IPC clients fetch information relevant to the next block, without having to generate a template.\r\n\r\nSimilar to the `getmininginfo` RPC, but with a minimal set of fields based on known needs for the Stratum v2 Job Declarator Server Role[^0], including `minTime` and `time` which the RPC doesn't provide. Can easily be expanded later for other use cases.\r\n\r\nIt echos the tip so clients can check for race conditions, e.g. when they call `getInfo()` immediately after `waitTipChanged()`.\r\n\r\nBased on discussion in https://github.com/stratum-mining/sv2-apps/issues/268. Two alternative solutions to that issue:\r\n1. add `min_time` to the `getmininginfo` RPC\r\n2. call `createNewBlock(mempool: false)` followed by `getBlockHeader()` on the empty block to get `nBits`, but for `minTime` you need `getblocktemplate` (which returns a full block)\r\n\r\n\r\n[^0]: https://stratumprotocol.org/specification/06-job-declaration-protocol/","created_at":"2026-07-13T14:06:45Z","updated_at":"2026-07-14T21:03:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ec0be37d85095279de3c4523acb750517dc20670","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":118378960,"node_id":"MDU6TGFiZWwxMTgzNzg5NjA=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Mining","name":"Mining","color":"c7def8","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35712/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35712/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35712/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/d3798cb4f024a0c702c4040126580734a48528d4","head":{"label":"Sjors:2026/07/mining-info","ref":"2026/07/mining-info","sha":"d3798cb4f024a0c702c4040126580734a48528d4","user":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":92390696,"node_id":"MDEwOlJlcG9zaXRvcnk5MjM5MDY5Ng==","name":"bitcoin","full_name":"Sjors/bitcoin","private":false,"owner":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Sjors/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/Sjors/bitcoin","forks_url":"https://api.github.com/repos/Sjors/bitcoin/forks","keys_url":"https://api.github.com/repos/Sjors/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Sjors/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Sjors/bitcoin/teams","hooks_url":"https://api.github.com/repos/Sjors/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/Sjors/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/Sjors/bitcoin/events","assignees_url":"https://api.github.com/repos/Sjors/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/Sjors/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/Sjors/bitcoin/tags","blobs_url":"https://api.github.com/repos/Sjors/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Sjors/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Sjors/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/Sjors/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Sjors/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/Sjors/bitcoin/languages","stargazers_url":"https://api.github.com/repos/Sjors/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/Sjors/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/Sjors/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/Sjors/bitcoin/subscription","commits_url":"https://api.github.com/repos/Sjors/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/Sjors/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/Sjors/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/Sjors/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/Sjors/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/Sjors/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Sjors/bitcoin/merges","archive_url":"https://api.github.com/repos/Sjors/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Sjors/bitcoin/downloads","issues_url":"https://api.github.com/repos/Sjors/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/Sjors/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/Sjors/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/Sjors/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Sjors/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/Sjors/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/Sjors/bitcoin/deployments","created_at":"2017-05-25T10:05:54Z","updated_at":"2026-07-11T08:50:12Z","pushed_at":"2026-07-13T13:56:44Z","git_url":"git://github.com/Sjors/bitcoin.git","ssh_url":"git@github.com:Sjors/bitcoin.git","clone_url":"https://github.com/Sjors/bitcoin.git","svn_url":"https://github.com/Sjors/bitcoin","homepage":"https://bitcoin.org/en/download","size":299619,"stargazers_count":17,"watchers_count":17,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":10,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":8,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":10,"open_issues":8,"watchers":17,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"d18fec892e22530c79bbba0080af288a61512c9a","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35712"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35712"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35712"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35712/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35712/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35712/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/d3798cb4f024a0c702c4040126580734a48528d4"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35710","id":4044581839,"node_id":"PR_kwDOABII587xE2vP","html_url":"https://github.com/bitcoin/bitcoin/pull/35710","diff_url":"https://github.com/bitcoin/bitcoin/pull/35710.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35710.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35710","number":35710,"state":"open","locked":false,"title":"[30.x] More Backports","user":{"login":"fanquake","id":863730,"node_id":"MDQ6VXNlcjg2MzczMA==","avatar_url":"https://avatars.githubusercontent.com/u/863730?v=4","gravatar_id":"","url":"https://api.github.com/users/fanquake","html_url":"https://github.com/fanquake","followers_url":"https://api.github.com/users/fanquake/followers","following_url":"https://api.github.com/users/fanquake/following{/other_user}","gists_url":"https://api.github.com/users/fanquake/gists{/gist_id}","starred_url":"https://api.github.com/users/fanquake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fanquake/subscriptions","organizations_url":"https://api.github.com/users/fanquake/orgs","repos_url":"https://api.github.com/users/fanquake/repos","events_url":"https://api.github.com/users/fanquake/events{/privacy}","received_events_url":"https://api.github.com/users/fanquake/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Backports:\r\n* #35691","created_at":"2026-07-13T13:01:41Z","updated_at":"2026-07-13T13:21:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4f6e4efc4d6a63811da47d9fc2dfef6d87955341","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":390024790,"node_id":"MDU6TGFiZWwzOTAwMjQ3OTA=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Backport","name":"Backport","color":"dd7200","default":false,"description":""}],"milestone":{"url":"https://api.github.com/repos/bitcoin/bitcoin/milestones/89","html_url":"https://github.com/bitcoin/bitcoin/milestone/89","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones/89/labels","id":16789906,"node_id":"MI_kwDOABII584BADGS","number":89,"title":"30.4","description":"","creator":{"login":"fanquake","id":863730,"node_id":"MDQ6VXNlcjg2MzczMA==","avatar_url":"https://avatars.githubusercontent.com/u/863730?v=4","gravatar_id":"","url":"https://api.github.com/users/fanquake","html_url":"https://github.com/fanquake","followers_url":"https://api.github.com/users/fanquake/followers","following_url":"https://api.github.com/users/fanquake/following{/other_user}","gists_url":"https://api.github.com/users/fanquake/gists{/gist_id}","starred_url":"https://api.github.com/users/fanquake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fanquake/subscriptions","organizations_url":"https://api.github.com/users/fanquake/orgs","repos_url":"https://api.github.com/users/fanquake/repos","events_url":"https://api.github.com/users/fanquake/events{/privacy}","received_events_url":"https://api.github.com/users/fanquake/received_events","type":"User","user_view_type":"public","site_admin":false},"open_issues":1,"closed_issues":0,"state":"open","created_at":"2026-07-13T13:01:16Z","updated_at":"2026-07-13T13:01:41Z","due_on":null,"closed_at":null},"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35710/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35710/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35710/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/9c2a50ea58738f8e93c638fa13f8eb1b038c58d9","head":{"label":"fanquake:more_30_x_backports","ref":"more_30_x_backports","sha":"9c2a50ea58738f8e93c638fa13f8eb1b038c58d9","user":{"login":"fanquake","id":863730,"node_id":"MDQ6VXNlcjg2MzczMA==","avatar_url":"https://avatars.githubusercontent.com/u/863730?v=4","gravatar_id":"","url":"https://api.github.com/users/fanquake","html_url":"https://github.com/fanquake","followers_url":"https://api.github.com/users/fanquake/followers","following_url":"https://api.github.com/users/fanquake/following{/other_user}","gists_url":"https://api.github.com/users/fanquake/gists{/gist_id}","starred_url":"https://api.github.com/users/fanquake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fanquake/subscriptions","organizations_url":"https://api.github.com/users/fanquake/orgs","repos_url":"https://api.github.com/users/fanquake/repos","events_url":"https://api.github.com/users/fanquake/events{/privacy}","received_events_url":"https://api.github.com/users/fanquake/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":5910539,"node_id":"MDEwOlJlcG9zaXRvcnk1OTEwNTM5","name":"bitcoin","full_name":"fanquake/bitcoin","private":false,"owner":{"login":"fanquake","id":863730,"node_id":"MDQ6VXNlcjg2MzczMA==","avatar_url":"https://avatars.githubusercontent.com/u/863730?v=4","gravatar_id":"","url":"https://api.github.com/users/fanquake","html_url":"https://github.com/fanquake","followers_url":"https://api.github.com/users/fanquake/followers","following_url":"https://api.github.com/users/fanquake/following{/other_user}","gists_url":"https://api.github.com/users/fanquake/gists{/gist_id}","starred_url":"https://api.github.com/users/fanquake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fanquake/subscriptions","organizations_url":"https://api.github.com/users/fanquake/orgs","repos_url":"https://api.github.com/users/fanquake/repos","events_url":"https://api.github.com/users/fanquake/events{/privacy}","received_events_url":"https://api.github.com/users/fanquake/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/fanquake/bitcoin","description":"Bitcoin integration/staging tree","fork":true,"url":"https://api.github.com/repos/fanquake/bitcoin","forks_url":"https://api.github.com/repos/fanquake/bitcoin/forks","keys_url":"https://api.github.com/repos/fanquake/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fanquake/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fanquake/bitcoin/teams","hooks_url":"https://api.github.com/repos/fanquake/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/fanquake/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/fanquake/bitcoin/events","assignees_url":"https://api.github.com/repos/fanquake/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/fanquake/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/fanquake/bitcoin/tags","blobs_url":"https://api.github.com/repos/fanquake/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fanquake/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fanquake/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/fanquake/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fanquake/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/fanquake/bitcoin/languages","stargazers_url":"https://api.github.com/repos/fanquake/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/fanquake/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/fanquake/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/fanquake/bitcoin/subscription","commits_url":"https://api.github.com/repos/fanquake/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/fanquake/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/fanquake/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/fanquake/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/fanquake/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/fanquake/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fanquake/bitcoin/merges","archive_url":"https://api.github.com/repos/fanquake/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fanquake/bitcoin/downloads","issues_url":"https://api.github.com/repos/fanquake/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/fanquake/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/fanquake/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/fanquake/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fanquake/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/fanquake/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/fanquake/bitcoin/deployments","created_at":"2012-09-22T05:28:42Z","updated_at":"2026-07-14T19:43:53Z","pushed_at":"2026-07-14T19:43:34Z","git_url":"git://github.com/fanquake/bitcoin.git","ssh_url":"git@github.com:fanquake/bitcoin.git","clone_url":"https://github.com/fanquake/bitcoin.git","svn_url":"https://github.com/fanquake/bitcoin","homepage":"http://www.bitcoincore.org","size":290961,"stargazers_count":23,"watchers_count":23,"language":"C++","has_issues":false,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":6,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":6,"open_issues":0,"watchers":23,"default_branch":"master"}},"base":{"label":"bitcoin:30.x","ref":"30.x","sha":"49faec4f87f5cd19c88db01a82e5c68b087c8227","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35710"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35710"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35710"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35710/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35710/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35710/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/9c2a50ea58738f8e93c638fa13f8eb1b038c58d9"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35709","id":4044295143,"node_id":"PR_kwDOABII587xDwvn","html_url":"https://github.com/bitcoin/bitcoin/pull/35709","diff_url":"https://github.com/bitcoin/bitcoin/pull/35709.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35709.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35709","number":35709,"state":"open","locked":false,"title":"depends: Update Qt to 6.8.4","user":{"login":"hebasto","id":32963518,"node_id":"MDQ6VXNlcjMyOTYzNTE4","avatar_url":"https://avatars.githubusercontent.com/u/32963518?v=4","gravatar_id":"","url":"https://api.github.com/users/hebasto","html_url":"https://github.com/hebasto","followers_url":"https://api.github.com/users/hebasto/followers","following_url":"https://api.github.com/users/hebasto/following{/other_user}","gists_url":"https://api.github.com/users/hebasto/gists{/gist_id}","starred_url":"https://api.github.com/users/hebasto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hebasto/subscriptions","organizations_url":"https://api.github.com/users/hebasto/orgs","repos_url":"https://api.github.com/users/hebasto/repos","events_url":"https://api.github.com/users/hebasto/events{/privacy}","received_events_url":"https://api.github.com/users/hebasto/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Release notes: https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.8.4/release-note.md\r\n\r\n`depends/patches/qt/qtbase_platformsupport.patch` has been dropped as the fix was backported upstream in https://github.com/qt/qtbase/commit/5afcc64fd774ba7337b688841a852d1a1a242554.","created_at":"2026-07-13T12:16:10Z","updated_at":"2026-07-14T16:07:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"62f168a03c8ed8f09db2c5c868c84d15c8ed978c","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":61889416,"node_id":"MDU6TGFiZWw2MTg4OTQxNg==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Build%20system","name":"Build system","color":"5319e7","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35709/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35709/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35709/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/226e6388b7fd5d128d3757a9fe6c7ebc44803231","head":{"label":"hebasto:260713-qt6.8.4","ref":"260713-qt6.8.4","sha":"226e6388b7fd5d128d3757a9fe6c7ebc44803231","user":{"login":"hebasto","id":32963518,"node_id":"MDQ6VXNlcjMyOTYzNTE4","avatar_url":"https://avatars.githubusercontent.com/u/32963518?v=4","gravatar_id":"","url":"https://api.github.com/users/hebasto","html_url":"https://github.com/hebasto","followers_url":"https://api.github.com/users/hebasto/followers","following_url":"https://api.github.com/users/hebasto/following{/other_user}","gists_url":"https://api.github.com/users/hebasto/gists{/gist_id}","starred_url":"https://api.github.com/users/hebasto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hebasto/subscriptions","organizations_url":"https://api.github.com/users/hebasto/orgs","repos_url":"https://api.github.com/users/hebasto/repos","events_url":"https://api.github.com/users/hebasto/events{/privacy}","received_events_url":"https://api.github.com/users/hebasto/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":143212778,"node_id":"MDEwOlJlcG9zaXRvcnkxNDMyMTI3Nzg=","name":"bitcoin","full_name":"hebasto/bitcoin","private":false,"owner":{"login":"hebasto","id":32963518,"node_id":"MDQ6VXNlcjMyOTYzNTE4","avatar_url":"https://avatars.githubusercontent.com/u/32963518?v=4","gravatar_id":"","url":"https://api.github.com/users/hebasto","html_url":"https://github.com/hebasto","followers_url":"https://api.github.com/users/hebasto/followers","following_url":"https://api.github.com/users/hebasto/following{/other_user}","gists_url":"https://api.github.com/users/hebasto/gists{/gist_id}","starred_url":"https://api.github.com/users/hebasto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hebasto/subscriptions","organizations_url":"https://api.github.com/users/hebasto/orgs","repos_url":"https://api.github.com/users/hebasto/repos","events_url":"https://api.github.com/users/hebasto/events{/privacy}","received_events_url":"https://api.github.com/users/hebasto/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/hebasto/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/hebasto/bitcoin","forks_url":"https://api.github.com/repos/hebasto/bitcoin/forks","keys_url":"https://api.github.com/repos/hebasto/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hebasto/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hebasto/bitcoin/teams","hooks_url":"https://api.github.com/repos/hebasto/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/hebasto/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/hebasto/bitcoin/events","assignees_url":"https://api.github.com/repos/hebasto/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/hebasto/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/hebasto/bitcoin/tags","blobs_url":"https://api.github.com/repos/hebasto/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hebasto/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hebasto/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/hebasto/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hebasto/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/hebasto/bitcoin/languages","stargazers_url":"https://api.github.com/repos/hebasto/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/hebasto/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/hebasto/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/hebasto/bitcoin/subscription","commits_url":"https://api.github.com/repos/hebasto/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/hebasto/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/hebasto/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/hebasto/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/hebasto/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/hebasto/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hebasto/bitcoin/merges","archive_url":"https://api.github.com/repos/hebasto/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hebasto/bitcoin/downloads","issues_url":"https://api.github.com/repos/hebasto/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/hebasto/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/hebasto/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/hebasto/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hebasto/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/hebasto/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/hebasto/bitcoin/deployments","created_at":"2018-08-01T21:59:57Z","updated_at":"2026-07-14T18:21:00Z","pushed_at":"2026-07-14T18:19:46Z","git_url":"git://github.com/hebasto/bitcoin.git","ssh_url":"git@github.com:hebasto/bitcoin.git","clone_url":"https://github.com/hebasto/bitcoin.git","svn_url":"https://github.com/hebasto/bitcoin","homepage":"https://bitcoincore.org/en/download","size":348380,"stargazers_count":27,"watchers_count":27,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":6,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin-core"],"visibility":"public","forks":6,"open_issues":0,"watchers":27,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"54e1a95a12e7d96e1207f9b558a9fc71d774c046","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35709"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35709"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35709"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35709/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35709/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35709/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/226e6388b7fd5d128d3757a9fe6c7ebc44803231"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35704","id":4040326481,"node_id":"PR_kwDOABII587w0n1R","html_url":"https://github.com/bitcoin/bitcoin/pull/35704","diff_url":"https://github.com/bitcoin/bitcoin/pull/35704.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35704.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35704","number":35704,"state":"open","locked":false,"title":"windows: replace deprecated codecvt with fs::u8path","user":{"login":"kevkevinpal","id":15950706,"node_id":"MDQ6VXNlcjE1OTUwNzA2","avatar_url":"https://avatars.githubusercontent.com/u/15950706?v=4","gravatar_id":"","url":"https://api.github.com/users/kevkevinpal","html_url":"https://github.com/kevkevinpal","followers_url":"https://api.github.com/users/kevkevinpal/followers","following_url":"https://api.github.com/users/kevkevinpal/following{/other_user}","gists_url":"https://api.github.com/users/kevkevinpal/gists{/gist_id}","starred_url":"https://api.github.com/users/kevkevinpal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevkevinpal/subscriptions","organizations_url":"https://api.github.com/users/kevkevinpal/orgs","repos_url":"https://api.github.com/users/kevkevinpal/repos","events_url":"https://api.github.com/users/kevkevinpal/events{/privacy}","received_events_url":"https://api.github.com/users/kevkevinpal/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"## Summary\r\nRemove std::wstring_convert/codecvt (deprecated in C++17, removed in C++26) in favor of fs::u8path().wstring() for UTF-8 to wide conversions.\r\n\r\nThis should be fine to remove since Bitcoin Core is now on C++20","created_at":"2026-07-12T21:19:53Z","updated_at":"2026-07-14T16:03:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"737c407ad996b183d3a06ac1c2ab32b66f298fd2","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35704/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35704/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35704/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/d8e64c1e8583a68b452b853d9b46bcda92fd7c48","head":{"label":"kevkevinpal:remove-deprecated-codecvt","ref":"remove-deprecated-codecvt","sha":"d8e64c1e8583a68b452b853d9b46bcda92fd7c48","user":{"login":"kevkevinpal","id":15950706,"node_id":"MDQ6VXNlcjE1OTUwNzA2","avatar_url":"https://avatars.githubusercontent.com/u/15950706?v=4","gravatar_id":"","url":"https://api.github.com/users/kevkevinpal","html_url":"https://github.com/kevkevinpal","followers_url":"https://api.github.com/users/kevkevinpal/followers","following_url":"https://api.github.com/users/kevkevinpal/following{/other_user}","gists_url":"https://api.github.com/users/kevkevinpal/gists{/gist_id}","starred_url":"https://api.github.com/users/kevkevinpal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevkevinpal/subscriptions","organizations_url":"https://api.github.com/users/kevkevinpal/orgs","repos_url":"https://api.github.com/users/kevkevinpal/repos","events_url":"https://api.github.com/users/kevkevinpal/events{/privacy}","received_events_url":"https://api.github.com/users/kevkevinpal/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":492307769,"node_id":"R_kgDOHVgFOQ","name":"bitcoin","full_name":"kevkevinpal/bitcoin","private":false,"owner":{"login":"kevkevinpal","id":15950706,"node_id":"MDQ6VXNlcjE1OTUwNzA2","avatar_url":"https://avatars.githubusercontent.com/u/15950706?v=4","gravatar_id":"","url":"https://api.github.com/users/kevkevinpal","html_url":"https://github.com/kevkevinpal","followers_url":"https://api.github.com/users/kevkevinpal/followers","following_url":"https://api.github.com/users/kevkevinpal/following{/other_user}","gists_url":"https://api.github.com/users/kevkevinpal/gists{/gist_id}","starred_url":"https://api.github.com/users/kevkevinpal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevkevinpal/subscriptions","organizations_url":"https://api.github.com/users/kevkevinpal/orgs","repos_url":"https://api.github.com/users/kevkevinpal/repos","events_url":"https://api.github.com/users/kevkevinpal/events{/privacy}","received_events_url":"https://api.github.com/users/kevkevinpal/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/kevkevinpal/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/kevkevinpal/bitcoin","forks_url":"https://api.github.com/repos/kevkevinpal/bitcoin/forks","keys_url":"https://api.github.com/repos/kevkevinpal/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kevkevinpal/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kevkevinpal/bitcoin/teams","hooks_url":"https://api.github.com/repos/kevkevinpal/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/kevkevinpal/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/kevkevinpal/bitcoin/events","assignees_url":"https://api.github.com/repos/kevkevinpal/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/kevkevinpal/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/kevkevinpal/bitcoin/tags","blobs_url":"https://api.github.com/repos/kevkevinpal/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kevkevinpal/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kevkevinpal/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/kevkevinpal/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kevkevinpal/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/kevkevinpal/bitcoin/languages","stargazers_url":"https://api.github.com/repos/kevkevinpal/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/kevkevinpal/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/kevkevinpal/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/kevkevinpal/bitcoin/subscription","commits_url":"https://api.github.com/repos/kevkevinpal/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/kevkevinpal/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/kevkevinpal/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/kevkevinpal/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/kevkevinpal/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/kevkevinpal/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kevkevinpal/bitcoin/merges","archive_url":"https://api.github.com/repos/kevkevinpal/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kevkevinpal/bitcoin/downloads","issues_url":"https://api.github.com/repos/kevkevinpal/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/kevkevinpal/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/kevkevinpal/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/kevkevinpal/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kevkevinpal/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/kevkevinpal/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/kevkevinpal/bitcoin/deployments","created_at":"2022-05-14T19:30:19Z","updated_at":"2026-07-12T13:17:53Z","pushed_at":"2026-07-12T13:17:15Z","git_url":"git://github.com/kevkevinpal/bitcoin.git","ssh_url":"git@github.com:kevkevinpal/bitcoin.git","clone_url":"https://github.com/kevkevinpal/bitcoin.git","svn_url":"https://github.com/kevkevinpal/bitcoin","homepage":"https://bitcoincore.org/en/download","size":312546,"stargazers_count":3,"watchers_count":3,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":269,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":269,"watchers":3,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"907e284e303ae57c9f983f0709586df0377b33d6","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35704"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35704"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35704"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35704/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35704/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35704/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/d8e64c1e8583a68b452b853d9b46bcda92fd7c48"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35699","id":4028307091,"node_id":"PR_kwDOABII587wGxaT","html_url":"https://github.com/bitcoin/bitcoin/pull/35699","diff_url":"https://github.com/bitcoin/bitcoin/pull/35699.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35699.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35699","number":35699,"state":"open","locked":false,"title":"[31.x] More Backports","user":{"login":"fanquake","id":863730,"node_id":"MDQ6VXNlcjg2MzczMA==","avatar_url":"https://avatars.githubusercontent.com/u/863730?v=4","gravatar_id":"","url":"https://api.github.com/users/fanquake","html_url":"https://github.com/fanquake","followers_url":"https://api.github.com/users/fanquake/followers","following_url":"https://api.github.com/users/fanquake/following{/other_user}","gists_url":"https://api.github.com/users/fanquake/gists{/gist_id}","starred_url":"https://api.github.com/users/fanquake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fanquake/subscriptions","organizations_url":"https://api.github.com/users/fanquake/orgs","repos_url":"https://api.github.com/users/fanquake/repos","events_url":"https://api.github.com/users/fanquake/events{/privacy}","received_events_url":"https://api.github.com/users/fanquake/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Backports:\r\n* #34873\r\n* #35406\r\n* #35678 (partial)\r\n* #35691","created_at":"2026-07-10T09:32:20Z","updated_at":"2026-07-14T06:48:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f0fa67209b1a79ca8aa3345d3c4c4dcc71406884","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":390024790,"node_id":"MDU6TGFiZWwzOTAwMjQ3OTA=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Backport","name":"Backport","color":"dd7200","default":false,"description":""}],"milestone":{"url":"https://api.github.com/repos/bitcoin/bitcoin/milestones/88","html_url":"https://github.com/bitcoin/bitcoin/milestone/88","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones/88/labels","id":16747332,"node_id":"MI_kwDOABII584A_4tE","number":88,"title":"31.2","description":"","creator":{"login":"fanquake","id":863730,"node_id":"MDQ6VXNlcjg2MzczMA==","avatar_url":"https://avatars.githubusercontent.com/u/863730?v=4","gravatar_id":"","url":"https://api.github.com/users/fanquake","html_url":"https://github.com/fanquake","followers_url":"https://api.github.com/users/fanquake/followers","following_url":"https://api.github.com/users/fanquake/following{/other_user}","gists_url":"https://api.github.com/users/fanquake/gists{/gist_id}","starred_url":"https://api.github.com/users/fanquake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fanquake/subscriptions","organizations_url":"https://api.github.com/users/fanquake/orgs","repos_url":"https://api.github.com/users/fanquake/repos","events_url":"https://api.github.com/users/fanquake/events{/privacy}","received_events_url":"https://api.github.com/users/fanquake/received_events","type":"User","user_view_type":"public","site_admin":false},"open_issues":1,"closed_issues":0,"state":"open","created_at":"2026-07-10T09:31:48Z","updated_at":"2026-07-10T09:32:20Z","due_on":null,"closed_at":null},"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35699/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35699/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35699/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/1f432b28b262fa65cce15df27dc109085f890491","head":{"label":"fanquake:more_31_x_backports","ref":"more_31_x_backports","sha":"1f432b28b262fa65cce15df27dc109085f890491","user":{"login":"fanquake","id":863730,"node_id":"MDQ6VXNlcjg2MzczMA==","avatar_url":"https://avatars.githubusercontent.com/u/863730?v=4","gravatar_id":"","url":"https://api.github.com/users/fanquake","html_url":"https://github.com/fanquake","followers_url":"https://api.github.com/users/fanquake/followers","following_url":"https://api.github.com/users/fanquake/following{/other_user}","gists_url":"https://api.github.com/users/fanquake/gists{/gist_id}","starred_url":"https://api.github.com/users/fanquake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fanquake/subscriptions","organizations_url":"https://api.github.com/users/fanquake/orgs","repos_url":"https://api.github.com/users/fanquake/repos","events_url":"https://api.github.com/users/fanquake/events{/privacy}","received_events_url":"https://api.github.com/users/fanquake/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":5910539,"node_id":"MDEwOlJlcG9zaXRvcnk1OTEwNTM5","name":"bitcoin","full_name":"fanquake/bitcoin","private":false,"owner":{"login":"fanquake","id":863730,"node_id":"MDQ6VXNlcjg2MzczMA==","avatar_url":"https://avatars.githubusercontent.com/u/863730?v=4","gravatar_id":"","url":"https://api.github.com/users/fanquake","html_url":"https://github.com/fanquake","followers_url":"https://api.github.com/users/fanquake/followers","following_url":"https://api.github.com/users/fanquake/following{/other_user}","gists_url":"https://api.github.com/users/fanquake/gists{/gist_id}","starred_url":"https://api.github.com/users/fanquake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fanquake/subscriptions","organizations_url":"https://api.github.com/users/fanquake/orgs","repos_url":"https://api.github.com/users/fanquake/repos","events_url":"https://api.github.com/users/fanquake/events{/privacy}","received_events_url":"https://api.github.com/users/fanquake/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/fanquake/bitcoin","description":"Bitcoin integration/staging tree","fork":true,"url":"https://api.github.com/repos/fanquake/bitcoin","forks_url":"https://api.github.com/repos/fanquake/bitcoin/forks","keys_url":"https://api.github.com/repos/fanquake/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fanquake/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fanquake/bitcoin/teams","hooks_url":"https://api.github.com/repos/fanquake/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/fanquake/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/fanquake/bitcoin/events","assignees_url":"https://api.github.com/repos/fanquake/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/fanquake/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/fanquake/bitcoin/tags","blobs_url":"https://api.github.com/repos/fanquake/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fanquake/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fanquake/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/fanquake/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fanquake/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/fanquake/bitcoin/languages","stargazers_url":"https://api.github.com/repos/fanquake/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/fanquake/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/fanquake/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/fanquake/bitcoin/subscription","commits_url":"https://api.github.com/repos/fanquake/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/fanquake/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/fanquake/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/fanquake/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/fanquake/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/fanquake/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fanquake/bitcoin/merges","archive_url":"https://api.github.com/repos/fanquake/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fanquake/bitcoin/downloads","issues_url":"https://api.github.com/repos/fanquake/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/fanquake/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/fanquake/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/fanquake/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fanquake/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/fanquake/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/fanquake/bitcoin/deployments","created_at":"2012-09-22T05:28:42Z","updated_at":"2026-07-14T19:43:53Z","pushed_at":"2026-07-14T19:43:34Z","git_url":"git://github.com/fanquake/bitcoin.git","ssh_url":"git@github.com:fanquake/bitcoin.git","clone_url":"https://github.com/fanquake/bitcoin.git","svn_url":"https://github.com/fanquake/bitcoin","homepage":"http://www.bitcoincore.org","size":290961,"stargazers_count":23,"watchers_count":23,"language":"C++","has_issues":false,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":6,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":6,"open_issues":0,"watchers":23,"default_branch":"master"}},"base":{"label":"bitcoin:31.x","ref":"31.x","sha":"9be056a8a72b624dae9623b2f7bded92c2a21c91","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35699"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35699"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35699"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35699/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35699/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35699/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/1f432b28b262fa65cce15df27dc109085f890491"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35696","id":4025814996,"node_id":"PR_kwDOABII587v9Q_U","html_url":"https://github.com/bitcoin/bitcoin/pull/35696","diff_url":"https://github.com/bitcoin/bitcoin/pull/35696.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35696.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35696","number":35696,"state":"open","locked":false,"title":"i2p: update leaseset encryption types","user":{"login":"jpk68","id":256658809,"node_id":"U_kgDOD0xNeQ","avatar_url":"https://avatars.githubusercontent.com/u/256658809?v=4","gravatar_id":"","url":"https://api.github.com/users/jpk68","html_url":"https://github.com/jpk68","followers_url":"https://api.github.com/users/jpk68/followers","following_url":"https://api.github.com/users/jpk68/following{/other_user}","gists_url":"https://api.github.com/users/jpk68/gists{/gist_id}","starred_url":"https://api.github.com/users/jpk68/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpk68/subscriptions","organizations_url":"https://api.github.com/users/jpk68/orgs","repos_url":"https://api.github.com/users/jpk68/repos","events_url":"https://api.github.com/users/jpk68/events{/privacy}","received_events_url":"https://api.github.com/users/jpk68/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Updates the I2P SAM leaseset parameters to `6,4` (MLKEM-768/ECIES-X25519), as is [now recommended](https://i2p.net/en/docs/api/samv3/#signature-and-encryption-types) by the I2P project. ElGamal leasesets are now considered \"legacy\" and likely should not be used anymore.","created_at":"2026-07-10T00:08:17Z","updated_at":"2026-07-14T20:05:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ccc4f6e3616bc7635b281673da8fe66ec93c69a4","assignees":[],"requested_reviewers":[{"login":"vasild","id":266751,"node_id":"MDQ6VXNlcjI2Njc1MQ==","avatar_url":"https://avatars.githubusercontent.com/u/266751?v=4","gravatar_id":"","url":"https://api.github.com/users/vasild","html_url":"https://github.com/vasild","followers_url":"https://api.github.com/users/vasild/followers","following_url":"https://api.github.com/users/vasild/following{/other_user}","gists_url":"https://api.github.com/users/vasild/gists{/gist_id}","starred_url":"https://api.github.com/users/vasild/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vasild/subscriptions","organizations_url":"https://api.github.com/users/vasild/orgs","repos_url":"https://api.github.com/users/vasild/repos","events_url":"https://api.github.com/users/vasild/events{/privacy}","received_events_url":"https://api.github.com/users/vasild/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_teams":[],"labels":[{"id":10396612919,"node_id":"LA_kwDOABII588AAAACa6-5Nw","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Needs%20Backport%20(31.x)","name":"Needs Backport (31.x)","color":"dd7200","default":false,"description":""}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35696/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35696/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35696/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/412540e18d877c4a34cf9c8fb43dfd34a603d5f5","head":{"label":"jpk68:i2p-leaseset","ref":"i2p-leaseset","sha":"412540e18d877c4a34cf9c8fb43dfd34a603d5f5","user":{"login":"jpk68","id":256658809,"node_id":"U_kgDOD0xNeQ","avatar_url":"https://avatars.githubusercontent.com/u/256658809?v=4","gravatar_id":"","url":"https://api.github.com/users/jpk68","html_url":"https://github.com/jpk68","followers_url":"https://api.github.com/users/jpk68/followers","following_url":"https://api.github.com/users/jpk68/following{/other_user}","gists_url":"https://api.github.com/users/jpk68/gists{/gist_id}","starred_url":"https://api.github.com/users/jpk68/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpk68/subscriptions","organizations_url":"https://api.github.com/users/jpk68/orgs","repos_url":"https://api.github.com/users/jpk68/repos","events_url":"https://api.github.com/users/jpk68/events{/privacy}","received_events_url":"https://api.github.com/users/jpk68/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1295878550,"node_id":"R_kgDOTT2Jlg","name":"bitcoin","full_name":"jpk68/bitcoin","private":false,"owner":{"login":"jpk68","id":256658809,"node_id":"U_kgDOD0xNeQ","avatar_url":"https://avatars.githubusercontent.com/u/256658809?v=4","gravatar_id":"","url":"https://api.github.com/users/jpk68","html_url":"https://github.com/jpk68","followers_url":"https://api.github.com/users/jpk68/followers","following_url":"https://api.github.com/users/jpk68/following{/other_user}","gists_url":"https://api.github.com/users/jpk68/gists{/gist_id}","starred_url":"https://api.github.com/users/jpk68/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpk68/subscriptions","organizations_url":"https://api.github.com/users/jpk68/orgs","repos_url":"https://api.github.com/users/jpk68/repos","events_url":"https://api.github.com/users/jpk68/events{/privacy}","received_events_url":"https://api.github.com/users/jpk68/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/jpk68/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/jpk68/bitcoin","forks_url":"https://api.github.com/repos/jpk68/bitcoin/forks","keys_url":"https://api.github.com/repos/jpk68/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jpk68/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jpk68/bitcoin/teams","hooks_url":"https://api.github.com/repos/jpk68/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/jpk68/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/jpk68/bitcoin/events","assignees_url":"https://api.github.com/repos/jpk68/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/jpk68/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/jpk68/bitcoin/tags","blobs_url":"https://api.github.com/repos/jpk68/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jpk68/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jpk68/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/jpk68/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jpk68/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/jpk68/bitcoin/languages","stargazers_url":"https://api.github.com/repos/jpk68/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/jpk68/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/jpk68/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/jpk68/bitcoin/subscription","commits_url":"https://api.github.com/repos/jpk68/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/jpk68/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/jpk68/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/jpk68/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/jpk68/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/jpk68/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jpk68/bitcoin/merges","archive_url":"https://api.github.com/repos/jpk68/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jpk68/bitcoin/downloads","issues_url":"https://api.github.com/repos/jpk68/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/jpk68/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/jpk68/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/jpk68/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jpk68/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/jpk68/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/jpk68/bitcoin/deployments","created_at":"2026-07-09T23:57:23Z","updated_at":"2026-07-14T17:43:56Z","pushed_at":"2026-07-14T17:43:32Z","git_url":"git://github.com/jpk68/bitcoin.git","ssh_url":"git@github.com:jpk68/bitcoin.git","clone_url":"https://github.com/jpk68/bitcoin.git","svn_url":"https://github.com/jpk68/bitcoin","homepage":"https://bitcoincore.org/en/download","size":274879,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"7d8137c1417b61589949b3e8b081e5310fe335f3","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35696"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35696"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35696"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35696/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35696/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35696/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/412540e18d877c4a34cf9c8fb43dfd34a603d5f5"}},"author_association":"NONE","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35694","id":4022742018,"node_id":"PR_kwDOABII587vxiwC","html_url":"https://github.com/bitcoin/bitcoin/pull/35694","diff_url":"https://github.com/bitcoin/bitcoin/pull/35694.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35694.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35694","number":35694,"state":"open","locked":false,"title":"clusterlin: minor SFL optimizations","user":{"login":"sipa","id":548488,"node_id":"MDQ6VXNlcjU0ODQ4OA==","avatar_url":"https://avatars.githubusercontent.com/u/548488?v=4","gravatar_id":"","url":"https://api.github.com/users/sipa","html_url":"https://github.com/sipa","followers_url":"https://api.github.com/users/sipa/followers","following_url":"https://api.github.com/users/sipa/following{/other_user}","gists_url":"https://api.github.com/users/sipa/gists{/gist_id}","starred_url":"https://api.github.com/users/sipa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sipa/subscriptions","organizations_url":"https://api.github.com/users/sipa/orgs","repos_url":"https://api.github.com/users/sipa/repos","events_url":"https://api.github.com/users/sipa/events{/privacy}","received_events_url":"https://api.github.com/users/sipa/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"These are a few minor and easy-to-review code changes to the SFL algorithm, which net a few % speedup (~2.6% speedup on `LinearizeOptimally*` benchmarks, ~5% on the `Historical` ones). \r\n\r\n<details><summary>LLM benchmark results:</summary>\r\n\r\n| Class             | Ratio  | 95% CI           |                                                                                                                                        \r\n|-------------------|--------|------------------|                                                                                                                                        \r\n| HistoricalTotal   | 0.9499 | [0.9312, 0.9709] |                                                                                                                                        \r\n| SyntheticTotal    | 0.9760 | [0.9597, 0.9949] |                                                                                                                                        \r\n| HistoricalPerCost | 0.9545 | [0.9238, 0.9845] |                                                                                                                                        \r\n| SyntheticPerCost  | 0.9934 | [0.9688, 1.0175] |                                                                                                                                        \r\n| **All (60)**      | **0.9737** | **[0.9563, 0.9913]** |                                                                                                                                \r\n                                                                                                                                                                                         \r\nMethology: One release-mode `bench_bitcoin` binary (GCC 15.2, `-O2`) was built for the base commit and one for the branch tip, and run as `bench_bitcoin -filter='.*LinearizeOptimally.*' -min-time=100` in 85 strictly alternating pairs of fresh process launches (170 launches, ~20 minutes total), each pinned to the same core of an otherwise idle Zen5 machine. For each of the 60 benchmarks, the per-launch ns/op values were averaged over each binary's 85 launches; the optimized/base ratios of these means were aggregated as a geometric mean per benchmark class, with 95% confidence intervals from 1000 bootstrap resamplings of the launches.\r\n\r\n</details>\r\n\r\nDisclosure: this code, comments, benchmarks, and selection of optimizations were done by Claude Fable 5. I reviewed the commits, and wrote the PR description.\r\n\r\n\r\n\r\n\r\n","created_at":"2026-07-09T14:37:44Z","updated_at":"2026-07-14T17:21:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"feb9f55e3ef6693ef2c5eaae460f7403609a1ac0","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35694/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35694/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35694/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/efb4eae33861d3f316d77788f5c83b58dad94a0a","head":{"label":"sipa:202607_sfl_opt","ref":"202607_sfl_opt","sha":"efb4eae33861d3f316d77788f5c83b58dad94a0a","user":{"login":"sipa","id":548488,"node_id":"MDQ6VXNlcjU0ODQ4OA==","avatar_url":"https://avatars.githubusercontent.com/u/548488?v=4","gravatar_id":"","url":"https://api.github.com/users/sipa","html_url":"https://github.com/sipa","followers_url":"https://api.github.com/users/sipa/followers","following_url":"https://api.github.com/users/sipa/following{/other_user}","gists_url":"https://api.github.com/users/sipa/gists{/gist_id}","starred_url":"https://api.github.com/users/sipa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sipa/subscriptions","organizations_url":"https://api.github.com/users/sipa/orgs","repos_url":"https://api.github.com/users/sipa/repos","events_url":"https://api.github.com/users/sipa/events{/privacy}","received_events_url":"https://api.github.com/users/sipa/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1458655,"node_id":"MDEwOlJlcG9zaXRvcnkxNDU4NjU1","name":"bitcoin","full_name":"sipa/bitcoin","private":false,"owner":{"login":"sipa","id":548488,"node_id":"MDQ6VXNlcjU0ODQ4OA==","avatar_url":"https://avatars.githubusercontent.com/u/548488?v=4","gravatar_id":"","url":"https://api.github.com/users/sipa","html_url":"https://github.com/sipa","followers_url":"https://api.github.com/users/sipa/followers","following_url":"https://api.github.com/users/sipa/following{/other_user}","gists_url":"https://api.github.com/users/sipa/gists{/gist_id}","starred_url":"https://api.github.com/users/sipa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sipa/subscriptions","organizations_url":"https://api.github.com/users/sipa/orgs","repos_url":"https://api.github.com/users/sipa/repos","events_url":"https://api.github.com/users/sipa/events{/privacy}","received_events_url":"https://api.github.com/users/sipa/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/sipa/bitcoin","description":"Bitcoin integration/staging tree","fork":true,"url":"https://api.github.com/repos/sipa/bitcoin","forks_url":"https://api.github.com/repos/sipa/bitcoin/forks","keys_url":"https://api.github.com/repos/sipa/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sipa/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sipa/bitcoin/teams","hooks_url":"https://api.github.com/repos/sipa/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/sipa/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/sipa/bitcoin/events","assignees_url":"https://api.github.com/repos/sipa/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/sipa/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/sipa/bitcoin/tags","blobs_url":"https://api.github.com/repos/sipa/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sipa/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sipa/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/sipa/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sipa/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/sipa/bitcoin/languages","stargazers_url":"https://api.github.com/repos/sipa/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/sipa/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/sipa/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/sipa/bitcoin/subscription","commits_url":"https://api.github.com/repos/sipa/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/sipa/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/sipa/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/sipa/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/sipa/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/sipa/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sipa/bitcoin/merges","archive_url":"https://api.github.com/repos/sipa/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sipa/bitcoin/downloads","issues_url":"https://api.github.com/repos/sipa/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/sipa/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/sipa/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/sipa/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sipa/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/sipa/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/sipa/bitcoin/deployments","created_at":"2011-03-09T10:46:59Z","updated_at":"2026-04-09T09:41:02Z","pushed_at":"2026-07-14T17:20:48Z","git_url":"git://github.com/sipa/bitcoin.git","ssh_url":"git@github.com:sipa/bitcoin.git","clone_url":"https://github.com/sipa/bitcoin.git","svn_url":"https://github.com/sipa/bitcoin","homepage":"http://www.bitcoin.org","size":328153,"stargazers_count":95,"watchers_count":95,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":22,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":15,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":22,"open_issues":15,"watchers":95,"default_branch":"lows"}},"base":{"label":"bitcoin:master","ref":"master","sha":"2d4065d1fe4d9ad802e7c2b996d6cb12d66677a2","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35694"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35694"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35694"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35694/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35694/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35694/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/efb4eae33861d3f316d77788f5c83b58dad94a0a"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35692","id":4022009783,"node_id":"PR_kwDOABII587vuv-3","html_url":"https://github.com/bitcoin/bitcoin/pull/35692","diff_url":"https://github.com/bitcoin/bitcoin/pull/35692.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35692.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35692","number":35692,"state":"open","locked":false,"title":"addrman: remove unreachable tried-collision branch","user":{"login":"brunoerg","id":19480819,"node_id":"MDQ6VXNlcjE5NDgwODE5","avatar_url":"https://avatars.githubusercontent.com/u/19480819?v=4","gravatar_id":"","url":"https://api.github.com/users/brunoerg","html_url":"https://github.com/brunoerg","followers_url":"https://api.github.com/users/brunoerg/followers","following_url":"https://api.github.com/users/brunoerg/following{/other_user}","gists_url":"https://api.github.com/users/brunoerg/gists{/gist_id}","starred_url":"https://api.github.com/users/brunoerg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brunoerg/subscriptions","organizations_url":"https://api.github.com/users/brunoerg/orgs","repos_url":"https://api.github.com/users/brunoerg/repos","events_url":"https://api.github.com/users/brunoerg/events{/privacy}","received_events_url":"https://api.github.com/users/brunoerg/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"`ResolveCollisions_()` had a fallback for the case where a pending tried collision no longer collided because the destination tried slot became empty.\r\n\r\nUnder current addrman invariants this cannot happen: once an entry is added to `m_tried_collisions`, the corresponding tried slot remains occupied until the collision is resolved. The only other valid outcomes are that the pending new entry disappears or becomes invalid, both of which are already handled.\r\n\r\nRemove the dead branch and replace the implicit assumption with assertions in `ResolveCollisions_()` and `SelectTriedCollision_()`.\r\n\r\nIt came to my mind when taking a look at the fuzz coverage report for the addrman harness. After years (?) of fuzzing, I was trying to understand if it was a fault on the harness or a dead branch.\r\n","created_at":"2026-07-09T12:44:58Z","updated_at":"2026-07-10T22:55:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"df17f1bb014debcb083b9dc68301e8093fc4d657","assignees":[],"requested_reviewers":[{"login":"mzumsande","id":48763452,"node_id":"MDQ6VXNlcjQ4NzYzNDUy","avatar_url":"https://avatars.githubusercontent.com/u/48763452?v=4","gravatar_id":"","url":"https://api.github.com/users/mzumsande","html_url":"https://github.com/mzumsande","followers_url":"https://api.github.com/users/mzumsande/followers","following_url":"https://api.github.com/users/mzumsande/following{/other_user}","gists_url":"https://api.github.com/users/mzumsande/gists{/gist_id}","starred_url":"https://api.github.com/users/mzumsande/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mzumsande/subscriptions","organizations_url":"https://api.github.com/users/mzumsande/orgs","repos_url":"https://api.github.com/users/mzumsande/repos","events_url":"https://api.github.com/users/mzumsande/events{/privacy}","received_events_url":"https://api.github.com/users/mzumsande/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_teams":[],"labels":[{"id":98298007,"node_id":"MDU6TGFiZWw5ODI5ODAwNw==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/P2P","name":"P2P","color":"006b75","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35692/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35692/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35692/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/bc7d9050467fb387c01a73d59cdb914c839964fc","head":{"label":"brunoerg:2026-07-addrman-dead-code","ref":"2026-07-addrman-dead-code","sha":"bc7d9050467fb387c01a73d59cdb914c839964fc","user":{"login":"brunoerg","id":19480819,"node_id":"MDQ6VXNlcjE5NDgwODE5","avatar_url":"https://avatars.githubusercontent.com/u/19480819?v=4","gravatar_id":"","url":"https://api.github.com/users/brunoerg","html_url":"https://github.com/brunoerg","followers_url":"https://api.github.com/users/brunoerg/followers","following_url":"https://api.github.com/users/brunoerg/following{/other_user}","gists_url":"https://api.github.com/users/brunoerg/gists{/gist_id}","starred_url":"https://api.github.com/users/brunoerg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brunoerg/subscriptions","organizations_url":"https://api.github.com/users/brunoerg/orgs","repos_url":"https://api.github.com/users/brunoerg/repos","events_url":"https://api.github.com/users/brunoerg/events{/privacy}","received_events_url":"https://api.github.com/users/brunoerg/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":267841305,"node_id":"MDEwOlJlcG9zaXRvcnkyNjc4NDEzMDU=","name":"bitcoin","full_name":"brunoerg/bitcoin","private":false,"owner":{"login":"brunoerg","id":19480819,"node_id":"MDQ6VXNlcjE5NDgwODE5","avatar_url":"https://avatars.githubusercontent.com/u/19480819?v=4","gravatar_id":"","url":"https://api.github.com/users/brunoerg","html_url":"https://github.com/brunoerg","followers_url":"https://api.github.com/users/brunoerg/followers","following_url":"https://api.github.com/users/brunoerg/following{/other_user}","gists_url":"https://api.github.com/users/brunoerg/gists{/gist_id}","starred_url":"https://api.github.com/users/brunoerg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brunoerg/subscriptions","organizations_url":"https://api.github.com/users/brunoerg/orgs","repos_url":"https://api.github.com/users/brunoerg/repos","events_url":"https://api.github.com/users/brunoerg/events{/privacy}","received_events_url":"https://api.github.com/users/brunoerg/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/brunoerg/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/brunoerg/bitcoin","forks_url":"https://api.github.com/repos/brunoerg/bitcoin/forks","keys_url":"https://api.github.com/repos/brunoerg/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brunoerg/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brunoerg/bitcoin/teams","hooks_url":"https://api.github.com/repos/brunoerg/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/brunoerg/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/brunoerg/bitcoin/events","assignees_url":"https://api.github.com/repos/brunoerg/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/brunoerg/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/brunoerg/bitcoin/tags","blobs_url":"https://api.github.com/repos/brunoerg/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brunoerg/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brunoerg/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/brunoerg/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brunoerg/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/brunoerg/bitcoin/languages","stargazers_url":"https://api.github.com/repos/brunoerg/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/brunoerg/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/brunoerg/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/brunoerg/bitcoin/subscription","commits_url":"https://api.github.com/repos/brunoerg/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/brunoerg/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/brunoerg/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/brunoerg/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/brunoerg/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/brunoerg/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brunoerg/bitcoin/merges","archive_url":"https://api.github.com/repos/brunoerg/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brunoerg/bitcoin/downloads","issues_url":"https://api.github.com/repos/brunoerg/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/brunoerg/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/brunoerg/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/brunoerg/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brunoerg/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/brunoerg/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/brunoerg/bitcoin/deployments","created_at":"2020-05-29T11:30:10Z","updated_at":"2026-07-13T23:51:59Z","pushed_at":"2026-07-15T00:34:58Z","git_url":"git://github.com/brunoerg/bitcoin.git","ssh_url":"git@github.com:brunoerg/bitcoin.git","clone_url":"https://github.com/brunoerg/bitcoin.git","svn_url":"https://github.com/brunoerg/bitcoin","homepage":"https://bitcoincore.org/en/download","size":300167,"stargazers_count":6,"watchers_count":6,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":1,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"b6becf3534c7b7f1b4d356a8f6113d62b6dd05bf","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35692"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35692"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35692"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35692/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35692/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35692/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/bc7d9050467fb387c01a73d59cdb914c839964fc"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35688","id":4018047647,"node_id":"PR_kwDOABII587vfoqf","html_url":"https://github.com/bitcoin/bitcoin/pull/35688","diff_url":"https://github.com/bitcoin/bitcoin/pull/35688.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35688.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35688","number":35688,"state":"open","locked":false,"title":"crypto: accept empty HMAC keys","user":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"**Problem:** `CHMAC_SHA256` and `CHMAC_SHA512` use `memcpy` to copy key bytes.\r\nEmpty vectors can provide a null `data()` pointer, which triggers a UBSan null-pointer warning even for zero-length copies and forces the crypto fuzz target to avoid empty inputs.\r\n\r\n**Fix:** Use [`std::copy`](https://godbolt.org/z/fzsP1jf17), which has defined semantics for empty ranges, add empty-key HMAC test vectors, and let the crypto fuzz target pass empty byte vectors directly.\r\nRemove the stale `eval_script` empty-input guard in a separate commit because `ConsumeRemainingBytes()` already returns before copying when no bytes remain.","created_at":"2026-07-08T22:46:49Z","updated_at":"2026-07-09T19:48:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7d9e4a77d3d6a6c0e2a60786ed239b01fec32381","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":241832923,"node_id":"MDU6TGFiZWwyNDE4MzI5MjM=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Utils/log/libs","name":"Utils/log/libs","color":"5319e7","default":false,"description":""}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35688/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35688/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35688/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/dc67c4cc39062875c6571f9188abc83cfc6e6b90","head":{"label":"l0rinc:l0rinc/crypto-empty-input-hashing","ref":"l0rinc/crypto-empty-input-hashing","sha":"dc67c4cc39062875c6571f9188abc83cfc6e6b90","user":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":674169038,"node_id":"R_kgDOKC8Azg","name":"bitcoin","full_name":"l0rinc/bitcoin","private":false,"owner":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/l0rinc/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/l0rinc/bitcoin","forks_url":"https://api.github.com/repos/l0rinc/bitcoin/forks","keys_url":"https://api.github.com/repos/l0rinc/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/l0rinc/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/l0rinc/bitcoin/teams","hooks_url":"https://api.github.com/repos/l0rinc/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/l0rinc/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/l0rinc/bitcoin/events","assignees_url":"https://api.github.com/repos/l0rinc/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/l0rinc/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/l0rinc/bitcoin/tags","blobs_url":"https://api.github.com/repos/l0rinc/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/l0rinc/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/l0rinc/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/l0rinc/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/l0rinc/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/l0rinc/bitcoin/languages","stargazers_url":"https://api.github.com/repos/l0rinc/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/l0rinc/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/l0rinc/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/l0rinc/bitcoin/subscription","commits_url":"https://api.github.com/repos/l0rinc/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/l0rinc/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/l0rinc/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/l0rinc/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/l0rinc/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/l0rinc/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/l0rinc/bitcoin/merges","archive_url":"https://api.github.com/repos/l0rinc/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/l0rinc/bitcoin/downloads","issues_url":"https://api.github.com/repos/l0rinc/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/l0rinc/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/l0rinc/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/l0rinc/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/l0rinc/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/l0rinc/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/l0rinc/bitcoin/deployments","created_at":"2023-08-03T09:49:12Z","updated_at":"2026-07-14T18:55:55Z","pushed_at":"2026-07-15T02:58:25Z","git_url":"git://github.com/l0rinc/bitcoin.git","ssh_url":"git@github.com:l0rinc/bitcoin.git","clone_url":"https://github.com/l0rinc/bitcoin.git","svn_url":"https://github.com/l0rinc/bitcoin","homepage":"https://bitcoincore.org/en/download","size":314388,"stargazers_count":4,"watchers_count":4,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":108,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":1,"open_issues":108,"watchers":4,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"81405fc7abbd1889f3978b8924e7acbe12b3403b","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35688"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35688"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35688"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35688/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35688/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35688/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/dc67c4cc39062875c6571f9188abc83cfc6e6b90"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35686","id":4016902645,"node_id":"PR_kwDOABII587vbRH1","html_url":"https://github.com/bitcoin/bitcoin/pull/35686","diff_url":"https://github.com/bitcoin/bitcoin/pull/35686.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35686.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35686","number":35686,"state":"open","locked":false,"title":"lint: have git-subtree-check warn about backportability","user":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"A subtree update PR is easier to backport when its merge commit is stacked on the previous subtree merge instead of on master.\r\n\r\nHave `git-subtree-check.sh` warn when the latest subtree merge does not follow that structure. This is not always practical, so it's a warning, not a failure.\r\n\r\nExample without warning:\r\n\r\n```sh\r\ntest/lint/git-subtree-check.sh src/ipc/libmultiprocess 66b4e30e\r\n```\r\n\r\n```sh\r\nExample with warning:\r\ntest/lint/git-subtree-check.sh src/ipc/libmultiprocess 02afa661\r\n```sh\r\n\r\nThe check only runs when the commit (`COMMIT`, or `HEAD`) is the subtree merge itself. Since CI performs a merge with master, it skips this check.\r\n","created_at":"2026-07-08T19:01:44Z","updated_at":"2026-07-10T16:49:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1a0d19a911b63f3830a7ac029b3847692d8e7108","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":62963516,"node_id":"MDU6TGFiZWw2Mjk2MzUxNg==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Tests","name":"Tests","color":"d4c5f9","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35686/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35686/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35686/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/4ace058d85b9e7d005b39c31ed5d4eab71afc350","head":{"label":"Sjors:2026/07/subtree-lint","ref":"2026/07/subtree-lint","sha":"4ace058d85b9e7d005b39c31ed5d4eab71afc350","user":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":92390696,"node_id":"MDEwOlJlcG9zaXRvcnk5MjM5MDY5Ng==","name":"bitcoin","full_name":"Sjors/bitcoin","private":false,"owner":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Sjors/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/Sjors/bitcoin","forks_url":"https://api.github.com/repos/Sjors/bitcoin/forks","keys_url":"https://api.github.com/repos/Sjors/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Sjors/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Sjors/bitcoin/teams","hooks_url":"https://api.github.com/repos/Sjors/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/Sjors/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/Sjors/bitcoin/events","assignees_url":"https://api.github.com/repos/Sjors/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/Sjors/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/Sjors/bitcoin/tags","blobs_url":"https://api.github.com/repos/Sjors/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Sjors/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Sjors/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/Sjors/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Sjors/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/Sjors/bitcoin/languages","stargazers_url":"https://api.github.com/repos/Sjors/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/Sjors/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/Sjors/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/Sjors/bitcoin/subscription","commits_url":"https://api.github.com/repos/Sjors/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/Sjors/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/Sjors/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/Sjors/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/Sjors/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/Sjors/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Sjors/bitcoin/merges","archive_url":"https://api.github.com/repos/Sjors/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Sjors/bitcoin/downloads","issues_url":"https://api.github.com/repos/Sjors/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/Sjors/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/Sjors/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/Sjors/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Sjors/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/Sjors/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/Sjors/bitcoin/deployments","created_at":"2017-05-25T10:05:54Z","updated_at":"2026-07-11T08:50:12Z","pushed_at":"2026-07-13T13:56:44Z","git_url":"git://github.com/Sjors/bitcoin.git","ssh_url":"git@github.com:Sjors/bitcoin.git","clone_url":"https://github.com/Sjors/bitcoin.git","svn_url":"https://github.com/Sjors/bitcoin","homepage":"https://bitcoin.org/en/download","size":299619,"stargazers_count":17,"watchers_count":17,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":10,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":8,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":10,"open_issues":8,"watchers":17,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"f0da26cfc8a42e917fb8144530c03fbb2f319d8c","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35686"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35686"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35686"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35686/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35686/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35686/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/4ace058d85b9e7d005b39c31ed5d4eab71afc350"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35683","id":4014062060,"node_id":"PR_kwDOABII587vQbns","html_url":"https://github.com/bitcoin/bitcoin/pull/35683","diff_url":"https://github.com/bitcoin/bitcoin/pull/35683.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35683.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35683","number":35683,"state":"open","locked":false,"title":"[nomerge] test warp 4x windows runner","user":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"GHA free windows runners are 2vCPU instances, and are our longest-running jobs most of the time now.\r\n\r\nTest using Warp's 4x windows runners to get a feel for runtime improvements and whether it might be worth migrating.\r\n\r\nFirst run should save caches (even on a PR) so a re-run can test with caches also coming via warp.","created_at":"2026-07-08T11:34:34Z","updated_at":"2026-07-10T09:41:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":955867938,"node_id":"MDU6TGFiZWw5NTU4Njc5Mzg=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Needs%20rebase","name":"Needs rebase","color":"cccccc","default":false,"description":""},{"id":5334691551,"node_id":"LA_kwDOABII588AAAABPfju3w","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/CI%20failed","name":"CI failed","color":"cccccc","default":false,"description":""}],"milestone":null,"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35683/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35683/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35683/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/9255f921b7378ff4e1e46ab1ddc41521f0347849","head":{"label":"willcl-ark:test-windows-warp","ref":"test-windows-warp","sha":"9255f921b7378ff4e1e46ab1ddc41521f0347849","user":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":164122552,"node_id":"MDEwOlJlcG9zaXRvcnkxNjQxMjI1NTI=","name":"bitcoin","full_name":"willcl-ark/bitcoin","private":false,"owner":{"login":"willcl-ark","id":6606587,"node_id":"MDQ6VXNlcjY2MDY1ODc=","avatar_url":"https://avatars.githubusercontent.com/u/6606587?v=4","gravatar_id":"","url":"https://api.github.com/users/willcl-ark","html_url":"https://github.com/willcl-ark","followers_url":"https://api.github.com/users/willcl-ark/followers","following_url":"https://api.github.com/users/willcl-ark/following{/other_user}","gists_url":"https://api.github.com/users/willcl-ark/gists{/gist_id}","starred_url":"https://api.github.com/users/willcl-ark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willcl-ark/subscriptions","organizations_url":"https://api.github.com/users/willcl-ark/orgs","repos_url":"https://api.github.com/users/willcl-ark/repos","events_url":"https://api.github.com/users/willcl-ark/events{/privacy}","received_events_url":"https://api.github.com/users/willcl-ark/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/willcl-ark/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/willcl-ark/bitcoin","forks_url":"https://api.github.com/repos/willcl-ark/bitcoin/forks","keys_url":"https://api.github.com/repos/willcl-ark/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/willcl-ark/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/willcl-ark/bitcoin/teams","hooks_url":"https://api.github.com/repos/willcl-ark/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/willcl-ark/bitcoin/events","assignees_url":"https://api.github.com/repos/willcl-ark/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/willcl-ark/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/willcl-ark/bitcoin/tags","blobs_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/willcl-ark/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/willcl-ark/bitcoin/languages","stargazers_url":"https://api.github.com/repos/willcl-ark/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/willcl-ark/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/willcl-ark/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/willcl-ark/bitcoin/subscription","commits_url":"https://api.github.com/repos/willcl-ark/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/willcl-ark/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/willcl-ark/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/willcl-ark/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/willcl-ark/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/willcl-ark/bitcoin/merges","archive_url":"https://api.github.com/repos/willcl-ark/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/willcl-ark/bitcoin/downloads","issues_url":"https://api.github.com/repos/willcl-ark/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/willcl-ark/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/willcl-ark/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/willcl-ark/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/willcl-ark/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/willcl-ark/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/willcl-ark/bitcoin/deployments","created_at":"2019-01-04T15:17:29Z","updated_at":"2026-06-21T12:55:41Z","pushed_at":"2026-07-14T15:07:42Z","git_url":"git://github.com/willcl-ark/bitcoin.git","ssh_url":"git@github.com:willcl-ark/bitcoin.git","clone_url":"https://github.com/willcl-ark/bitcoin.git","svn_url":"https://github.com/willcl-ark/bitcoin","homepage":"https://bitcoincore.org/en/download","size":317459,"stargazers_count":5,"watchers_count":5,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":14,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":2,"open_issues":14,"watchers":5,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"f379d716b1288e62a8ba64c36a03b1a91b3a009e","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35683"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35683"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35683"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35683/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35683/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35683/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/9255f921b7378ff4e1e46ab1ddc41521f0347849"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35681","id":4010072827,"node_id":"PR_kwDOABII587vBNr7","html_url":"https://github.com/bitcoin/bitcoin/pull/35681","diff_url":"https://github.com/bitcoin/bitcoin/pull/35681.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35681.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35681","number":35681,"state":"open","locked":false,"title":"test: cover disconnect on private broadcast peer with relay=false","user":{"login":"brunoerg","id":19480819,"node_id":"MDQ6VXNlcjE5NDgwODE5","avatar_url":"https://avatars.githubusercontent.com/u/19480819?v=4","gravatar_id":"","url":"https://api.github.com/users/brunoerg","html_url":"https://github.com/brunoerg","followers_url":"https://api.github.com/users/brunoerg/followers","following_url":"https://api.github.com/users/brunoerg/following{/other_user}","gists_url":"https://api.github.com/users/brunoerg/gists{/gist_id}","starred_url":"https://api.github.com/users/brunoerg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brunoerg/subscriptions","organizations_url":"https://api.github.com/users/brunoerg/orgs","repos_url":"https://api.github.com/users/brunoerg/repos","events_url":"https://api.github.com/users/brunoerg/events{/privacy}","received_events_url":"https://api.github.com/users/brunoerg/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Currently, there is no test case to verify the disconnection of a private broadcast connection when the peer does not support transaction relay. This PR addresses it.\r\n\r\nCan be tested with:\r\n```diff\r\ndiff --git a/src/net_processing.cpp b/src/net_processing.cpp\r\nindex 27f0a63c55..5d9a8f9c06 100644\r\n--- a/src/net_processing.cpp\r\n+++ b/src/net_processing.cpp\r\n@@ -3741,7 +3741,7 @@ void PeerManagerImpl::ProcessMessage(Peer& peer, CNode& pfrom, const std::string\r\n             } else {\r\n                 LogDebug(BCLog::PRIVBROADCAST, \"Disconnecting: does not support transaction relay (connected in vain), %s\",\r\n                          pfrom.LogPeer());\r\n-                pfrom.fDisconnect = true;\r\n+                pfrom.fDisconnect = false;\r\n             }\r\n             return;\r\n         }\r\n```","created_at":"2026-07-07T21:33:27Z","updated_at":"2026-07-14T10:57:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"14276c915e3351e1b7b2e0c26b9c82b945b934bf","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":62963516,"node_id":"MDU6TGFiZWw2Mjk2MzUxNg==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Tests","name":"Tests","color":"d4c5f9","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35681/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35681/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35681/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/1fc9277a1c13c13f2ff1825f703a77ebcc9791be","head":{"label":"brunoerg:2026-07-test-private-broadcast","ref":"2026-07-test-private-broadcast","sha":"1fc9277a1c13c13f2ff1825f703a77ebcc9791be","user":{"login":"brunoerg","id":19480819,"node_id":"MDQ6VXNlcjE5NDgwODE5","avatar_url":"https://avatars.githubusercontent.com/u/19480819?v=4","gravatar_id":"","url":"https://api.github.com/users/brunoerg","html_url":"https://github.com/brunoerg","followers_url":"https://api.github.com/users/brunoerg/followers","following_url":"https://api.github.com/users/brunoerg/following{/other_user}","gists_url":"https://api.github.com/users/brunoerg/gists{/gist_id}","starred_url":"https://api.github.com/users/brunoerg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brunoerg/subscriptions","organizations_url":"https://api.github.com/users/brunoerg/orgs","repos_url":"https://api.github.com/users/brunoerg/repos","events_url":"https://api.github.com/users/brunoerg/events{/privacy}","received_events_url":"https://api.github.com/users/brunoerg/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":267841305,"node_id":"MDEwOlJlcG9zaXRvcnkyNjc4NDEzMDU=","name":"bitcoin","full_name":"brunoerg/bitcoin","private":false,"owner":{"login":"brunoerg","id":19480819,"node_id":"MDQ6VXNlcjE5NDgwODE5","avatar_url":"https://avatars.githubusercontent.com/u/19480819?v=4","gravatar_id":"","url":"https://api.github.com/users/brunoerg","html_url":"https://github.com/brunoerg","followers_url":"https://api.github.com/users/brunoerg/followers","following_url":"https://api.github.com/users/brunoerg/following{/other_user}","gists_url":"https://api.github.com/users/brunoerg/gists{/gist_id}","starred_url":"https://api.github.com/users/brunoerg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brunoerg/subscriptions","organizations_url":"https://api.github.com/users/brunoerg/orgs","repos_url":"https://api.github.com/users/brunoerg/repos","events_url":"https://api.github.com/users/brunoerg/events{/privacy}","received_events_url":"https://api.github.com/users/brunoerg/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/brunoerg/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/brunoerg/bitcoin","forks_url":"https://api.github.com/repos/brunoerg/bitcoin/forks","keys_url":"https://api.github.com/repos/brunoerg/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brunoerg/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brunoerg/bitcoin/teams","hooks_url":"https://api.github.com/repos/brunoerg/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/brunoerg/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/brunoerg/bitcoin/events","assignees_url":"https://api.github.com/repos/brunoerg/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/brunoerg/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/brunoerg/bitcoin/tags","blobs_url":"https://api.github.com/repos/brunoerg/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brunoerg/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brunoerg/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/brunoerg/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brunoerg/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/brunoerg/bitcoin/languages","stargazers_url":"https://api.github.com/repos/brunoerg/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/brunoerg/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/brunoerg/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/brunoerg/bitcoin/subscription","commits_url":"https://api.github.com/repos/brunoerg/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/brunoerg/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/brunoerg/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/brunoerg/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/brunoerg/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/brunoerg/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brunoerg/bitcoin/merges","archive_url":"https://api.github.com/repos/brunoerg/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brunoerg/bitcoin/downloads","issues_url":"https://api.github.com/repos/brunoerg/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/brunoerg/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/brunoerg/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/brunoerg/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brunoerg/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/brunoerg/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/brunoerg/bitcoin/deployments","created_at":"2020-05-29T11:30:10Z","updated_at":"2026-07-13T23:51:59Z","pushed_at":"2026-07-15T00:34:58Z","git_url":"git://github.com/brunoerg/bitcoin.git","ssh_url":"git@github.com:brunoerg/bitcoin.git","clone_url":"https://github.com/brunoerg/bitcoin.git","svn_url":"https://github.com/brunoerg/bitcoin","homepage":"https://bitcoincore.org/en/download","size":300167,"stargazers_count":6,"watchers_count":6,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":1,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"b6becf3534c7b7f1b4d356a8f6113d62b6dd05bf","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35681"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35681"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35681"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35681/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35681/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35681/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/1fc9277a1c13c13f2ff1825f703a77ebcc9791be"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35680","id":4009635460,"node_id":"PR_kwDOABII587u_i6E","html_url":"https://github.com/bitcoin/bitcoin/pull/35680","diff_url":"https://github.com/bitcoin/bitcoin/pull/35680.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35680.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35680","number":35680,"state":"open","locked":false,"title":"private broadcast: bound memory use of broadcast attempts","user":{"login":"instagibbs","id":5767891,"node_id":"MDQ6VXNlcjU3Njc4OTE=","avatar_url":"https://avatars.githubusercontent.com/u/5767891?v=4","gravatar_id":"","url":"https://api.github.com/users/instagibbs","html_url":"https://github.com/instagibbs","followers_url":"https://api.github.com/users/instagibbs/followers","following_url":"https://api.github.com/users/instagibbs/following{/other_user}","gists_url":"https://api.github.com/users/instagibbs/gists{/gist_id}","starred_url":"https://api.github.com/users/instagibbs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/instagibbs/subscriptions","organizations_url":"https://api.github.com/users/instagibbs/orgs","repos_url":"https://api.github.com/users/instagibbs/repos","events_url":"https://api.github.com/users/instagibbs/events{/privacy}","received_events_url":"https://api.github.com/users/instagibbs/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Rather than scale the memory usage with the total number attempts per tx to recompute necessary statistics, directly track the necessary information, leaving us with memory usage in-line with number of active peer connections and outstanding private relay txs.\r\n\r\nDo note that this means per-peer statistics will be lost on that specific peer's disconnection.\r\n\r\nWaiting for https://github.com/bitcoin/bitcoin/pull/35090 to be merged and I will rebase on top of it, but taking directional (N)ACKs now","created_at":"2026-07-07T20:12:08Z","updated_at":"2026-07-14T18:45:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":955867938,"node_id":"MDU6TGFiZWw5NTU4Njc5Mzg=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Needs%20rebase","name":"Needs rebase","color":"cccccc","default":false,"description":""},{"id":10751389455,"node_id":"LA_kwDOABII588AAAACgNUvDw","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Private%20Broadcast","name":"Private Broadcast","color":"e7fa2f","default":false,"description":""}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35680/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35680/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35680/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/85d109a3ef8c42cb19075cd2b45a4daff072a711","head":{"label":"instagibbs:2026-07-bound_private_mem","ref":"2026-07-bound_private_mem","sha":"85d109a3ef8c42cb19075cd2b45a4daff072a711","user":{"login":"instagibbs","id":5767891,"node_id":"MDQ6VXNlcjU3Njc4OTE=","avatar_url":"https://avatars.githubusercontent.com/u/5767891?v=4","gravatar_id":"","url":"https://api.github.com/users/instagibbs","html_url":"https://github.com/instagibbs","followers_url":"https://api.github.com/users/instagibbs/followers","following_url":"https://api.github.com/users/instagibbs/following{/other_user}","gists_url":"https://api.github.com/users/instagibbs/gists{/gist_id}","starred_url":"https://api.github.com/users/instagibbs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/instagibbs/subscriptions","organizations_url":"https://api.github.com/users/instagibbs/orgs","repos_url":"https://api.github.com/users/instagibbs/repos","events_url":"https://api.github.com/users/instagibbs/events{/privacy}","received_events_url":"https://api.github.com/users/instagibbs/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":13910191,"node_id":"MDEwOlJlcG9zaXRvcnkxMzkxMDE5MQ==","name":"bitcoin","full_name":"instagibbs/bitcoin","private":false,"owner":{"login":"instagibbs","id":5767891,"node_id":"MDQ6VXNlcjU3Njc4OTE=","avatar_url":"https://avatars.githubusercontent.com/u/5767891?v=4","gravatar_id":"","url":"https://api.github.com/users/instagibbs","html_url":"https://github.com/instagibbs","followers_url":"https://api.github.com/users/instagibbs/followers","following_url":"https://api.github.com/users/instagibbs/following{/other_user}","gists_url":"https://api.github.com/users/instagibbs/gists{/gist_id}","starred_url":"https://api.github.com/users/instagibbs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/instagibbs/subscriptions","organizations_url":"https://api.github.com/users/instagibbs/orgs","repos_url":"https://api.github.com/users/instagibbs/repos","events_url":"https://api.github.com/users/instagibbs/events{/privacy}","received_events_url":"https://api.github.com/users/instagibbs/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/instagibbs/bitcoin","description":"Bitcoin integration/staging tree","fork":true,"url":"https://api.github.com/repos/instagibbs/bitcoin","forks_url":"https://api.github.com/repos/instagibbs/bitcoin/forks","keys_url":"https://api.github.com/repos/instagibbs/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/instagibbs/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/instagibbs/bitcoin/teams","hooks_url":"https://api.github.com/repos/instagibbs/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/instagibbs/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/instagibbs/bitcoin/events","assignees_url":"https://api.github.com/repos/instagibbs/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/instagibbs/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/instagibbs/bitcoin/tags","blobs_url":"https://api.github.com/repos/instagibbs/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/instagibbs/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/instagibbs/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/instagibbs/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/instagibbs/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/instagibbs/bitcoin/languages","stargazers_url":"https://api.github.com/repos/instagibbs/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/instagibbs/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/instagibbs/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/instagibbs/bitcoin/subscription","commits_url":"https://api.github.com/repos/instagibbs/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/instagibbs/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/instagibbs/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/instagibbs/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/instagibbs/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/instagibbs/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/instagibbs/bitcoin/merges","archive_url":"https://api.github.com/repos/instagibbs/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/instagibbs/bitcoin/downloads","issues_url":"https://api.github.com/repos/instagibbs/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/instagibbs/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/instagibbs/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/instagibbs/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/instagibbs/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/instagibbs/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/instagibbs/bitcoin/deployments","created_at":"2013-10-27T20:56:53Z","updated_at":"2026-07-05T03:29:28Z","pushed_at":"2026-07-14T20:46:56Z","git_url":"git://github.com/instagibbs/bitcoin.git","ssh_url":"git@github.com:instagibbs/bitcoin.git","clone_url":"https://github.com/instagibbs/bitcoin.git","svn_url":"https://github.com/instagibbs/bitcoin","homepage":"http://www.bitcoin.org","size":297865,"stargazers_count":8,"watchers_count":8,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":1,"open_issues":1,"watchers":8,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"a64df338e69b1736496e149c604e7ca928039b06","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35680"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35680"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35680"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35680/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35680/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35680/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/85d109a3ef8c42cb19075cd2b45a4daff072a711"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35679","id":4008161999,"node_id":"PR_kwDOABII587u57LP","html_url":"https://github.com/bitcoin/bitcoin/pull/35679","diff_url":"https://github.com/bitcoin/bitcoin/pull/35679.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35679.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35679","number":35679,"state":"open","locked":false,"title":"fuzz: Remove unused `DeserializeFromFuzzingInput` params overload","user":{"login":"hebasto","id":32963518,"node_id":"MDQ6VXNlcjMyOTYzNTE4","avatar_url":"https://avatars.githubusercontent.com/u/32963518?v=4","gravatar_id":"","url":"https://api.github.com/users/hebasto","html_url":"https://github.com/hebasto","followers_url":"https://api.github.com/users/hebasto/followers","following_url":"https://api.github.com/users/hebasto/following{/other_user}","gists_url":"https://api.github.com/users/hebasto/gists{/gist_id}","starred_url":"https://api.github.com/users/hebasto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hebasto/subscriptions","organizations_url":"https://api.github.com/users/hebasto/orgs","repos_url":"https://api.github.com/users/hebasto/repos","events_url":"https://api.github.com/users/hebasto/events{/privacy}","received_events_url":"https://api.github.com/users/hebasto/received_events","type":"User","user_view_type":"public","site_admin":false},"body":null,"created_at":"2026-07-07T15:56:00Z","updated_at":"2026-07-09T08:15:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"84573798b88ef6bc6207f41a69d5f76d27fb53d3","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":9554944034,"node_id":"LA_kwDOABII588AAAACOYTgIg","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Fuzzing","name":"Fuzzing","color":"0e8a16","default":false,"description":""}],"milestone":null,"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35679/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35679/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35679/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/8c0c5a0e23314d5918447e43a80c12f7f0720392","head":{"label":"hebasto:260707-fuzz-unused","ref":"260707-fuzz-unused","sha":"8c0c5a0e23314d5918447e43a80c12f7f0720392","user":{"login":"hebasto","id":32963518,"node_id":"MDQ6VXNlcjMyOTYzNTE4","avatar_url":"https://avatars.githubusercontent.com/u/32963518?v=4","gravatar_id":"","url":"https://api.github.com/users/hebasto","html_url":"https://github.com/hebasto","followers_url":"https://api.github.com/users/hebasto/followers","following_url":"https://api.github.com/users/hebasto/following{/other_user}","gists_url":"https://api.github.com/users/hebasto/gists{/gist_id}","starred_url":"https://api.github.com/users/hebasto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hebasto/subscriptions","organizations_url":"https://api.github.com/users/hebasto/orgs","repos_url":"https://api.github.com/users/hebasto/repos","events_url":"https://api.github.com/users/hebasto/events{/privacy}","received_events_url":"https://api.github.com/users/hebasto/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":143212778,"node_id":"MDEwOlJlcG9zaXRvcnkxNDMyMTI3Nzg=","name":"bitcoin","full_name":"hebasto/bitcoin","private":false,"owner":{"login":"hebasto","id":32963518,"node_id":"MDQ6VXNlcjMyOTYzNTE4","avatar_url":"https://avatars.githubusercontent.com/u/32963518?v=4","gravatar_id":"","url":"https://api.github.com/users/hebasto","html_url":"https://github.com/hebasto","followers_url":"https://api.github.com/users/hebasto/followers","following_url":"https://api.github.com/users/hebasto/following{/other_user}","gists_url":"https://api.github.com/users/hebasto/gists{/gist_id}","starred_url":"https://api.github.com/users/hebasto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hebasto/subscriptions","organizations_url":"https://api.github.com/users/hebasto/orgs","repos_url":"https://api.github.com/users/hebasto/repos","events_url":"https://api.github.com/users/hebasto/events{/privacy}","received_events_url":"https://api.github.com/users/hebasto/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/hebasto/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/hebasto/bitcoin","forks_url":"https://api.github.com/repos/hebasto/bitcoin/forks","keys_url":"https://api.github.com/repos/hebasto/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hebasto/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hebasto/bitcoin/teams","hooks_url":"https://api.github.com/repos/hebasto/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/hebasto/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/hebasto/bitcoin/events","assignees_url":"https://api.github.com/repos/hebasto/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/hebasto/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/hebasto/bitcoin/tags","blobs_url":"https://api.github.com/repos/hebasto/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hebasto/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hebasto/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/hebasto/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hebasto/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/hebasto/bitcoin/languages","stargazers_url":"https://api.github.com/repos/hebasto/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/hebasto/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/hebasto/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/hebasto/bitcoin/subscription","commits_url":"https://api.github.com/repos/hebasto/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/hebasto/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/hebasto/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/hebasto/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/hebasto/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/hebasto/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hebasto/bitcoin/merges","archive_url":"https://api.github.com/repos/hebasto/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hebasto/bitcoin/downloads","issues_url":"https://api.github.com/repos/hebasto/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/hebasto/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/hebasto/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/hebasto/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hebasto/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/hebasto/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/hebasto/bitcoin/deployments","created_at":"2018-08-01T21:59:57Z","updated_at":"2026-07-14T18:21:00Z","pushed_at":"2026-07-14T18:19:46Z","git_url":"git://github.com/hebasto/bitcoin.git","ssh_url":"git@github.com:hebasto/bitcoin.git","clone_url":"https://github.com/hebasto/bitcoin.git","svn_url":"https://github.com/hebasto/bitcoin","homepage":"https://bitcoincore.org/en/download","size":348380,"stargazers_count":27,"watchers_count":27,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":6,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin-core"],"visibility":"public","forks":6,"open_issues":0,"watchers":27,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"a64df338e69b1736496e149c604e7ca928039b06","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35679"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35679"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35679"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35679/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35679/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35679/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/8c0c5a0e23314d5918447e43a80c12f7f0720392"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35676","id":4006753207,"node_id":"PR_kwDOABII587u0jO3","html_url":"https://github.com/bitcoin/bitcoin/pull/35676","diff_url":"https://github.com/bitcoin/bitcoin/pull/35676.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35676.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35676","number":35676,"state":"open","locked":false,"title":"util: Abort in CheckDiskSpace/FlatFileSeq::Open on rare exceptions","user":{"login":"maflcko","id":6399679,"node_id":"MDQ6VXNlcjYzOTk2Nzk=","avatar_url":"https://avatars.githubusercontent.com/u/6399679?v=4","gravatar_id":"","url":"https://api.github.com/users/maflcko","html_url":"https://github.com/maflcko","followers_url":"https://api.github.com/users/maflcko/followers","following_url":"https://api.github.com/users/maflcko/following{/other_user}","gists_url":"https://api.github.com/users/maflcko/gists{/gist_id}","starred_url":"https://api.github.com/users/maflcko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maflcko/subscriptions","organizations_url":"https://api.github.com/users/maflcko/orgs","repos_url":"https://api.github.com/users/maflcko/repos","events_url":"https://api.github.com/users/maflcko/events{/privacy}","received_events_url":"https://api.github.com/users/maflcko/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Currently, exceptions from `CheckDiskSpace` calls in the scheduler thread (e.g. from events for `blockfilterindex` or the scheduled disk space check) are not caught, leading to a program termination:\r\n\r\n```\r\nterminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'\r\n  what():  filesystem error: cannot get free space: No such file or directory [/tmp/bitcoin_func_test_1xy14g2w/node0/regtest/indexes/blockfilter/basic] \r\n```\r\n\r\nImmediate termination is fine, because those exceptions are unexpected, but it could make sense to be consistent and treat all paths equally and abort the program.\r\n\r\nAborting the program here is fine, because the exceptions happen so rarely, that they are similar in frequency to other unclean shutdown reasons. The exceptions basically can only happen when the user unplugs the external USB drive, but this sounds as likely as an OOM kill (or other kill of the program), which also results in an abort.","created_at":"2026-07-07T12:29:12Z","updated_at":"2026-07-14T15:58:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"78ba64478c70fe676a2e5639e7b56ae2c2be84fd","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":241832923,"node_id":"MDU6TGFiZWwyNDE4MzI5MjM=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Utils/log/libs","name":"Utils/log/libs","color":"5319e7","default":false,"description":""}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35676/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35676/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35676/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/fac9306686142f65cef2824088f81efc8884aacb","head":{"label":"maflcko:2607-io-errors","ref":"2607-io-errors","sha":"fac9306686142f65cef2824088f81efc8884aacb","user":{"login":"maflcko","id":6399679,"node_id":"MDQ6VXNlcjYzOTk2Nzk=","avatar_url":"https://avatars.githubusercontent.com/u/6399679?v=4","gravatar_id":"","url":"https://api.github.com/users/maflcko","html_url":"https://github.com/maflcko","followers_url":"https://api.github.com/users/maflcko/followers","following_url":"https://api.github.com/users/maflcko/following{/other_user}","gists_url":"https://api.github.com/users/maflcko/gists{/gist_id}","starred_url":"https://api.github.com/users/maflcko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maflcko/subscriptions","organizations_url":"https://api.github.com/users/maflcko/orgs","repos_url":"https://api.github.com/users/maflcko/repos","events_url":"https://api.github.com/users/maflcko/events{/privacy}","received_events_url":"https://api.github.com/users/maflcko/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":40046254,"node_id":"MDEwOlJlcG9zaXRvcnk0MDA0NjI1NA==","name":"bitcoin-core","full_name":"maflcko/bitcoin-core","private":false,"owner":{"login":"maflcko","id":6399679,"node_id":"MDQ6VXNlcjYzOTk2Nzk=","avatar_url":"https://avatars.githubusercontent.com/u/6399679?v=4","gravatar_id":"","url":"https://api.github.com/users/maflcko","html_url":"https://github.com/maflcko","followers_url":"https://api.github.com/users/maflcko/followers","following_url":"https://api.github.com/users/maflcko/following{/other_user}","gists_url":"https://api.github.com/users/maflcko/gists{/gist_id}","starred_url":"https://api.github.com/users/maflcko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maflcko/subscriptions","organizations_url":"https://api.github.com/users/maflcko/orgs","repos_url":"https://api.github.com/users/maflcko/repos","events_url":"https://api.github.com/users/maflcko/events{/privacy}","received_events_url":"https://api.github.com/users/maflcko/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/maflcko/bitcoin-core","description":null,"fork":true,"url":"https://api.github.com/repos/maflcko/bitcoin-core","forks_url":"https://api.github.com/repos/maflcko/bitcoin-core/forks","keys_url":"https://api.github.com/repos/maflcko/bitcoin-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/maflcko/bitcoin-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/maflcko/bitcoin-core/teams","hooks_url":"https://api.github.com/repos/maflcko/bitcoin-core/hooks","issue_events_url":"https://api.github.com/repos/maflcko/bitcoin-core/issues/events{/number}","events_url":"https://api.github.com/repos/maflcko/bitcoin-core/events","assignees_url":"https://api.github.com/repos/maflcko/bitcoin-core/assignees{/user}","branches_url":"https://api.github.com/repos/maflcko/bitcoin-core/branches{/branch}","tags_url":"https://api.github.com/repos/maflcko/bitcoin-core/tags","blobs_url":"https://api.github.com/repos/maflcko/bitcoin-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/maflcko/bitcoin-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/maflcko/bitcoin-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/maflcko/bitcoin-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/maflcko/bitcoin-core/statuses/{sha}","languages_url":"https://api.github.com/repos/maflcko/bitcoin-core/languages","stargazers_url":"https://api.github.com/repos/maflcko/bitcoin-core/stargazers","contributors_url":"https://api.github.com/repos/maflcko/bitcoin-core/contributors","subscribers_url":"https://api.github.com/repos/maflcko/bitcoin-core/subscribers","subscription_url":"https://api.github.com/repos/maflcko/bitcoin-core/subscription","commits_url":"https://api.github.com/repos/maflcko/bitcoin-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/maflcko/bitcoin-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/maflcko/bitcoin-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/maflcko/bitcoin-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/maflcko/bitcoin-core/contents/{+path}","compare_url":"https://api.github.com/repos/maflcko/bitcoin-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/maflcko/bitcoin-core/merges","archive_url":"https://api.github.com/repos/maflcko/bitcoin-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/maflcko/bitcoin-core/downloads","issues_url":"https://api.github.com/repos/maflcko/bitcoin-core/issues{/number}","pulls_url":"https://api.github.com/repos/maflcko/bitcoin-core/pulls{/number}","milestones_url":"https://api.github.com/repos/maflcko/bitcoin-core/milestones{/number}","notifications_url":"https://api.github.com/repos/maflcko/bitcoin-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/maflcko/bitcoin-core/labels{/name}","releases_url":"https://api.github.com/repos/maflcko/bitcoin-core/releases{/id}","deployments_url":"https://api.github.com/repos/maflcko/bitcoin-core/deployments","created_at":"2015-08-01T12:42:47Z","updated_at":"2026-04-09T13:03:32Z","pushed_at":"2026-07-14T18:17:53Z","git_url":"git://github.com/maflcko/bitcoin-core.git","ssh_url":"git@github.com:maflcko/bitcoin-core.git","clone_url":"https://github.com/maflcko/bitcoin-core.git","svn_url":"https://github.com/maflcko/bitcoin-core","homepage":"","size":283925,"stargazers_count":27,"watchers_count":27,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":10,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":14,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":10,"open_issues":14,"watchers":27,"default_branch":"default"}},"base":{"label":"bitcoin:master","ref":"master","sha":"81405fc7abbd1889f3978b8924e7acbe12b3403b","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35676"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35676"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35676"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35676/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35676/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35676/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/fac9306686142f65cef2824088f81efc8884aacb"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35675","id":4006207542,"node_id":"PR_kwDOABII587uyeA2","html_url":"https://github.com/bitcoin/bitcoin/pull/35675","diff_url":"https://github.com/bitcoin/bitcoin/pull/35675.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35675.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35675","number":35675,"state":"open","locked":false,"title":"mining: add block template manager","user":{"login":"ismaelsadeeq","id":48946461,"node_id":"MDQ6VXNlcjQ4OTQ2NDYx","avatar_url":"https://avatars.githubusercontent.com/u/48946461?v=4","gravatar_id":"","url":"https://api.github.com/users/ismaelsadeeq","html_url":"https://github.com/ismaelsadeeq","followers_url":"https://api.github.com/users/ismaelsadeeq/followers","following_url":"https://api.github.com/users/ismaelsadeeq/following{/other_user}","gists_url":"https://api.github.com/users/ismaelsadeeq/gists{/gist_id}","starred_url":"https://api.github.com/users/ismaelsadeeq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ismaelsadeeq/subscriptions","organizations_url":"https://api.github.com/users/ismaelsadeeq/orgs","repos_url":"https://api.github.com/users/ismaelsadeeq/repos","events_url":"https://api.github.com/users/ismaelsadeeq/events{/privacy}","received_events_url":"https://api.github.com/users/ismaelsadeeq/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"This PR introduces `node::BlockTemplateManager` and moves block template\r\ncreation, submission, and mining wait helpers behind it.\r\n\r\n#### Motivation\r\n\r\nInstead of keeping template-related state and helper functions spread across \r\n`NodeContext`, `miner.cpp`, the mining interface, RPC, and tests, the manager\r\n now owns the node's init-time mining options and exposes methods needed by callers.\r\n\r\nThis also prevents some redundant copies previously done when using the mining\r\ninterface to create a block template and then retrieve the template data. \r\n\r\nThis keeps the IPC `Mining` interface focused on IPC-facing mining objects, while RPC\r\nand tests use the block template manager directly.\r\n\r\n\r\n#### Changes\r\n\r\n- `NodeContext` no longer stores `BlockCreateOptions` directly.\r\n- `BlockTemplateManager` stores the parsed init-time mining options and applies\r\n  them to unset per-call options before creating templates.\r\n- Block submission through the mining interface is routed through\r\n  `BlockTemplateManager::SubmitBlock()`, preserving the existing\r\n  `BlockChecked` state-capture behavior.\r\n- Tip lookup, tip waiting, cooldown, and `waitNext()` template creation helpers\r\n  are moved from miner helper functions into `BlockTemplateManager`.\r\n- In-process RPC and tests create raw `CBlockTemplate` objects directly through\r\n  `BlockTemplateManager`, avoiding cached `BlockTemplateImpl` objects that hold\r\n  `NodeContext` references during shutdown.\r\n- A fuzz target is added for `BlockTemplateManager::CreateNewTemplate()` with\r\n  fuzzed mempool contents and mining options.\r\n\r\n#### Note: This change is intended to be a pure refactor that preserves behavior.\r\n","created_at":"2026-07-07T11:05:56Z","updated_at":"2026-07-14T15:34:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f65980e43d99f6c9a33adfe052df89d0b611cdc4","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":118378960,"node_id":"MDU6TGFiZWwxMTgzNzg5NjA=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Mining","name":"Mining","color":"c7def8","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35675/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35675/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35675/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/82dc581ae80a5ab39b39d44cac1daef8c6232ba8","head":{"label":"ismaelsadeeq:07-2026-block-template-man-skeleton","ref":"07-2026-block-template-man-skeleton","sha":"82dc581ae80a5ab39b39d44cac1daef8c6232ba8","user":{"login":"ismaelsadeeq","id":48946461,"node_id":"MDQ6VXNlcjQ4OTQ2NDYx","avatar_url":"https://avatars.githubusercontent.com/u/48946461?v=4","gravatar_id":"","url":"https://api.github.com/users/ismaelsadeeq","html_url":"https://github.com/ismaelsadeeq","followers_url":"https://api.github.com/users/ismaelsadeeq/followers","following_url":"https://api.github.com/users/ismaelsadeeq/following{/other_user}","gists_url":"https://api.github.com/users/ismaelsadeeq/gists{/gist_id}","starred_url":"https://api.github.com/users/ismaelsadeeq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ismaelsadeeq/subscriptions","organizations_url":"https://api.github.com/users/ismaelsadeeq/orgs","repos_url":"https://api.github.com/users/ismaelsadeeq/repos","events_url":"https://api.github.com/users/ismaelsadeeq/events{/privacy}","received_events_url":"https://api.github.com/users/ismaelsadeeq/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":577730599,"node_id":"R_kgDOIm94Jw","name":"bitcoin","full_name":"ismaelsadeeq/bitcoin","private":false,"owner":{"login":"ismaelsadeeq","id":48946461,"node_id":"MDQ6VXNlcjQ4OTQ2NDYx","avatar_url":"https://avatars.githubusercontent.com/u/48946461?v=4","gravatar_id":"","url":"https://api.github.com/users/ismaelsadeeq","html_url":"https://github.com/ismaelsadeeq","followers_url":"https://api.github.com/users/ismaelsadeeq/followers","following_url":"https://api.github.com/users/ismaelsadeeq/following{/other_user}","gists_url":"https://api.github.com/users/ismaelsadeeq/gists{/gist_id}","starred_url":"https://api.github.com/users/ismaelsadeeq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ismaelsadeeq/subscriptions","organizations_url":"https://api.github.com/users/ismaelsadeeq/orgs","repos_url":"https://api.github.com/users/ismaelsadeeq/repos","events_url":"https://api.github.com/users/ismaelsadeeq/events{/privacy}","received_events_url":"https://api.github.com/users/ismaelsadeeq/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/ismaelsadeeq/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/ismaelsadeeq/bitcoin","forks_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/forks","keys_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/teams","hooks_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/events","assignees_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/tags","blobs_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/languages","stargazers_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/subscription","commits_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/merges","archive_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/downloads","issues_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/ismaelsadeeq/bitcoin/deployments","created_at":"2022-12-13T11:54:34Z","updated_at":"2023-03-10T09:46:26Z","pushed_at":"2026-07-14T13:12:02Z","git_url":"git://github.com/ismaelsadeeq/bitcoin.git","ssh_url":"git@github.com:ismaelsadeeq/bitcoin.git","clone_url":"https://github.com/ismaelsadeeq/bitcoin.git","svn_url":"https://github.com/ismaelsadeeq/bitcoin","homepage":"https://bitcoincore.org/en/download","size":312694,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"b6becf3534c7b7f1b4d356a8f6113d62b6dd05bf","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35675"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35675"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35675"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35675/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35675/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35675/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/82dc581ae80a5ab39b39d44cac1daef8c6232ba8"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35671","id":4001616957,"node_id":"PR_kwDOABII587ug9Q9","html_url":"https://github.com/bitcoin/bitcoin/pull/35671","diff_url":"https://github.com/bitcoin/bitcoin/pull/35671.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35671.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35671","number":35671,"state":"open","locked":false,"title":"mining: add TxCollection to bandwidth-efficiently validate external block templates","user":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"The Stratum v2 spec defines a [Job Declarator Server](https://stratumprotocol.org/specification/06-job-declaration-protocol) (JDS), whose job it is to approve custom miner templates. It currently maintains its own mempool mirror, which it populates by repeatedly calling `getBlock()` and `waitNext()` and then requesting any missing transactions from the miner (since #34020 it can use `getTransactionsByWitnessID()` to first ask the node).\r\n\r\nThe new `TxCollection` interface introduced by this PR removes the need for such a mirror mempool. We build the block template ourselves now, based on the requested transaction list and our own mempool.\r\n\r\nThe following flow is demonstrated in https://github.com/stratum-mining/sv2-apps/pull/599:\r\n\r\n1. Miner generates a template, e.g. using our `createNewBlock()` IPC method\r\n2. They send the list of `Wtxid`s to the pool's JDS\r\n3. JDS calls `TxCollection::collectTxs()` (this PR) with that `Wtxid` list\r\n4. We check the list against our mempool and hold a `CTransactionRef` for each match\r\n5. The JDS queries `unknownTxPos()` to learn what's missing in our mempool\r\n6. The JDS requests the fully serialized missing transactions from the miner (using native Stratum v2 messages)\r\n7. JDS calls `addMissingTxs()` which completes the collection\r\n8. JDS calls `makeTemplate()` which reconstructs the block and validates it. The JDS needs the check to succeed, may relay the BIP-22 failure reason to the miner.\r\n9. It returns a  `BlockTemplate` which works as if we generated the template ourselves, but with methods like `waitNext()` disabled. The JDS can call `submitSolution()` (the sv2 spec allows for redundant block reconstruction by both the miner node and the JDS).\r\n\r\nIf this sounds very similar to compact block relay: it is! In fact, it would be easy to expand the above methods to take transaction short ids instead of `Wtxid`. That may be useful for the [p2pool revival project](https://www.vinteum.org/blog/reviving-p2pool-welcoming-johnny-santos-as-a-vinteum-grantee), which needs a way to validate and relay weak blocks as compact blocks. The p2pool client software would need to (trivially) verify the PoW, but could use the `TxCollection` interface to reconstruct and verify the block content. That said, the SRI [JDS](https://github.com/stratum-mining/sv2-apps/issues?q=is%3Aissue%20state%3Aopen%20JDS) implementation is much further along and likely to be the first consumer of this.\r\n\r\nCommits:\r\n\r\n- _ipc: add TxCollection scaffold_ - step 3 and 4\r\n- _mining: add TxCollection unknownTxPos_ - step 5\r\n- _mining: add TxCollection addMissingTxs_ - step 7\r\n- _mining: add coinbase transaction helper_ - we need a dummy coinbase to verify the block, so extract a helper from `BlockAssembler::CreateNewBlock()`\r\n- _mining: make TxCollection create a BlockTemplate_ - step 8 and 9\r\n- _mining: restrict externally generated templates_ - step 9\r\n\r\nPotential followups:\r\n\r\n- have `addMissingTxs()` (optionally) insert favorable transactions into our mempool\r\n- add a data structure to store transactions that don't meet our mempool threshold (so `TxCollection` can grab them, instead of needing another round trip)\r\n\r\n---\r\n\r\nConceptual review is welcome. I need to polish the commits a bit further, so it's better to hold off on that. I opened the PR now because the concept was brought up in https://github.com/bitcoin/bitcoin/pull/34020#pullrequestreview-4635352194.\r\n\r\nKeeping this in draft until #34672 lands, to match its handling of the reason/debug fields.","created_at":"2026-07-06T19:36:53Z","updated_at":"2026-07-14T22:03:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7f207cc8e4d4f753e858ff042591cb08a4e4d4ef","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":118378960,"node_id":"MDU6TGFiZWwxMTgzNzg5NjA=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Mining","name":"Mining","color":"c7def8","default":false,"description":null}],"milestone":null,"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35671/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35671/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35671/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/9bb89df02fc3dbcb870b36d4a339986089ea40e2","head":{"label":"Sjors:2026/03/collect-txs","ref":"2026/03/collect-txs","sha":"9bb89df02fc3dbcb870b36d4a339986089ea40e2","user":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":92390696,"node_id":"MDEwOlJlcG9zaXRvcnk5MjM5MDY5Ng==","name":"bitcoin","full_name":"Sjors/bitcoin","private":false,"owner":{"login":"Sjors","id":10217,"node_id":"MDQ6VXNlcjEwMjE3","avatar_url":"https://avatars.githubusercontent.com/u/10217?v=4","gravatar_id":"","url":"https://api.github.com/users/Sjors","html_url":"https://github.com/Sjors","followers_url":"https://api.github.com/users/Sjors/followers","following_url":"https://api.github.com/users/Sjors/following{/other_user}","gists_url":"https://api.github.com/users/Sjors/gists{/gist_id}","starred_url":"https://api.github.com/users/Sjors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sjors/subscriptions","organizations_url":"https://api.github.com/users/Sjors/orgs","repos_url":"https://api.github.com/users/Sjors/repos","events_url":"https://api.github.com/users/Sjors/events{/privacy}","received_events_url":"https://api.github.com/users/Sjors/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/Sjors/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/Sjors/bitcoin","forks_url":"https://api.github.com/repos/Sjors/bitcoin/forks","keys_url":"https://api.github.com/repos/Sjors/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Sjors/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Sjors/bitcoin/teams","hooks_url":"https://api.github.com/repos/Sjors/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/Sjors/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/Sjors/bitcoin/events","assignees_url":"https://api.github.com/repos/Sjors/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/Sjors/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/Sjors/bitcoin/tags","blobs_url":"https://api.github.com/repos/Sjors/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Sjors/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Sjors/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/Sjors/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Sjors/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/Sjors/bitcoin/languages","stargazers_url":"https://api.github.com/repos/Sjors/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/Sjors/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/Sjors/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/Sjors/bitcoin/subscription","commits_url":"https://api.github.com/repos/Sjors/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/Sjors/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/Sjors/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/Sjors/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/Sjors/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/Sjors/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Sjors/bitcoin/merges","archive_url":"https://api.github.com/repos/Sjors/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Sjors/bitcoin/downloads","issues_url":"https://api.github.com/repos/Sjors/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/Sjors/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/Sjors/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/Sjors/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Sjors/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/Sjors/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/Sjors/bitcoin/deployments","created_at":"2017-05-25T10:05:54Z","updated_at":"2026-07-11T08:50:12Z","pushed_at":"2026-07-13T13:56:44Z","git_url":"git://github.com/Sjors/bitcoin.git","ssh_url":"git@github.com:Sjors/bitcoin.git","clone_url":"https://github.com/Sjors/bitcoin.git","svn_url":"https://github.com/Sjors/bitcoin","homepage":"https://bitcoin.org/en/download","size":299619,"stargazers_count":17,"watchers_count":17,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":10,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":8,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":10,"open_issues":8,"watchers":17,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"e3b026bf56e66baa6e070a00c136da95f3a16ef8","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35671"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35671"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35671"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35671/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35671/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35671/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/9bb89df02fc3dbcb870b36d4a339986089ea40e2"}},"author_association":"MEMBER","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35665","id":3997286832,"node_id":"PR_kwDOABII587uQcGw","html_url":"https://github.com/bitcoin/bitcoin/pull/35665","diff_url":"https://github.com/bitcoin/bitcoin/pull/35665.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35665.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35665","number":35665,"state":"open","locked":false,"title":"psbt: avoid duplicate global xpub keys when merging","user":{"login":"thomasbuilds","id":143176954,"node_id":"U_kgDOCIi0-g","avatar_url":"https://avatars.githubusercontent.com/u/143176954?v=4","gravatar_id":"","url":"https://api.github.com/users/thomasbuilds","html_url":"https://github.com/thomasbuilds","followers_url":"https://api.github.com/users/thomasbuilds/followers","following_url":"https://api.github.com/users/thomasbuilds/following{/other_user}","gists_url":"https://api.github.com/users/thomasbuilds/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasbuilds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasbuilds/subscriptions","organizations_url":"https://api.github.com/users/thomasbuilds/orgs","repos_url":"https://api.github.com/users/thomasbuilds/repos","events_url":"https://api.github.com/users/thomasbuilds/events{/privacy}","received_events_url":"https://api.github.com/users/thomasbuilds/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Global xpubs are stored in a map of key origin to set of xpubs, while the serialization writes one record per xpub, keyed by the xpub. `Merge` unions the map origin-by-origin, so when the combined PSBTs provide different key origins for the same xpub, the result serializes the same `PSBT_GLOBAL_XPUB` key twice. BIP 174 declares PSBTs with duplicate keys invalid and the deserializer rejects them, so `combinepsbt` returns a PSBT that no RPC can parse again. This affects all releases since the merge loop was added in #17034 (v23.0).\r\n\r\n<details><summary>Reproduction on master</summary>\r\n\r\nThe PSBTs share the unsigned transaction and xpub, and differ only in the master fingerprint of the global xpub record (`00000000` vs `11111111`):\r\n\r\n```\r\n$ A=cHNidP8BADwCAAAAAaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAAAAAAD/////AQAAAAAAAAAAAAAAAABPAQQ1h88AAAAAAAAAAACHPf+BwC9SViP9H+UWfqw6VaBJ3j0xS7Qu4if/7TfVCAM5o2ATMBWX2u9B++WToCzFE9C1VSfsLfEFDi6P9JyFwgQAAAAAAAAA\r\n$ B=cHNidP8BADwCAAAAAaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAAAAAAD/////AQAAAAAAAAAAAAAAAABPAQQ1h88AAAAAAAAAAACHPf+BwC9SViP9H+UWfqw6VaBJ3j0xS7Qu4if/7TfVCAM5o2ATMBWX2u9B++WToCzFE9C1VSfsLfEFDi6P9JyFwgQRERERAAAA\r\n$ bitcoin-cli -regtest decodepsbt \"$(bitcoin-cli -regtest combinepsbt \"[\\\"$A\\\",\\\"$B\\\"]\")\"\r\nerror code: -22\r\nerror message:\r\nTX decode failed Duplicate Key, global key \"01043587cf00...9c85c2\" already provided: iostream error\r\n```\r\n\r\n</details>\r\n\r\nDeduplicate by xpub when merging, keeping the origin that is already present: BIP 174 lets the Combiner \"pick arbitrarily when conflicts occur\", and conflicting unknown and proprietary records are already resolved the same way. The logic is shared between `combinepsbt` and `joinpsbts` through a new `MergeGlobalXPubs` helper. The second commit adds a test that fails on master with the error above, and the last commit removes the `global_xpubs` tracking set in `Unserialize`, write-only since the generic duplicate key check introduced in #21283 (1e2d146b47) replaced the explicit one.\r\n\r\nNote: the xpub loop in `joinpsbts` currently has no observable effect, since the collected xpubs never reach the returned PSBT. My #35516 fixes that, so this PR should land first: on its own, #35516 would make the same duplicate key issue reachable through `joinpsbts`, while with the shared helper in place it never becomes reachable. I will rebase #35516 on top afterwards.","created_at":"2026-07-06T08:43:02Z","updated_at":"2026-07-11T01:02:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"afeac54b90ce9ffece9a76ea5b95c9eee7518588","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1618202877,"node_id":"MDU6TGFiZWwxNjE4MjAyODc3","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/PSBT","name":"PSBT","color":"39c6b4","default":false,"description":""}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35665/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35665/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35665/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/6d387af562fc85eee003a269dbea10963e941985","head":{"label":"thomasbuilds:fix-psbt-duplicate-global-xpubs","ref":"fix-psbt-duplicate-global-xpubs","sha":"6d387af562fc85eee003a269dbea10963e941985","user":{"login":"thomasbuilds","id":143176954,"node_id":"U_kgDOCIi0-g","avatar_url":"https://avatars.githubusercontent.com/u/143176954?v=4","gravatar_id":"","url":"https://api.github.com/users/thomasbuilds","html_url":"https://github.com/thomasbuilds","followers_url":"https://api.github.com/users/thomasbuilds/followers","following_url":"https://api.github.com/users/thomasbuilds/following{/other_user}","gists_url":"https://api.github.com/users/thomasbuilds/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasbuilds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasbuilds/subscriptions","organizations_url":"https://api.github.com/users/thomasbuilds/orgs","repos_url":"https://api.github.com/users/thomasbuilds/repos","events_url":"https://api.github.com/users/thomasbuilds/events{/privacy}","received_events_url":"https://api.github.com/users/thomasbuilds/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1266572574,"node_id":"R_kgDOS35dHg","name":"bitcoin","full_name":"thomasbuilds/bitcoin","private":false,"owner":{"login":"thomasbuilds","id":143176954,"node_id":"U_kgDOCIi0-g","avatar_url":"https://avatars.githubusercontent.com/u/143176954?v=4","gravatar_id":"","url":"https://api.github.com/users/thomasbuilds","html_url":"https://github.com/thomasbuilds","followers_url":"https://api.github.com/users/thomasbuilds/followers","following_url":"https://api.github.com/users/thomasbuilds/following{/other_user}","gists_url":"https://api.github.com/users/thomasbuilds/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasbuilds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasbuilds/subscriptions","organizations_url":"https://api.github.com/users/thomasbuilds/orgs","repos_url":"https://api.github.com/users/thomasbuilds/repos","events_url":"https://api.github.com/users/thomasbuilds/events{/privacy}","received_events_url":"https://api.github.com/users/thomasbuilds/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/thomasbuilds/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/thomasbuilds/bitcoin","forks_url":"https://api.github.com/repos/thomasbuilds/bitcoin/forks","keys_url":"https://api.github.com/repos/thomasbuilds/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/thomasbuilds/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/thomasbuilds/bitcoin/teams","hooks_url":"https://api.github.com/repos/thomasbuilds/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/thomasbuilds/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/thomasbuilds/bitcoin/events","assignees_url":"https://api.github.com/repos/thomasbuilds/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/thomasbuilds/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/thomasbuilds/bitcoin/tags","blobs_url":"https://api.github.com/repos/thomasbuilds/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/thomasbuilds/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/thomasbuilds/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/thomasbuilds/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/thomasbuilds/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/thomasbuilds/bitcoin/languages","stargazers_url":"https://api.github.com/repos/thomasbuilds/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/thomasbuilds/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/thomasbuilds/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/thomasbuilds/bitcoin/subscription","commits_url":"https://api.github.com/repos/thomasbuilds/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/thomasbuilds/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/thomasbuilds/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/thomasbuilds/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/thomasbuilds/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/thomasbuilds/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/thomasbuilds/bitcoin/merges","archive_url":"https://api.github.com/repos/thomasbuilds/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/thomasbuilds/bitcoin/downloads","issues_url":"https://api.github.com/repos/thomasbuilds/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/thomasbuilds/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/thomasbuilds/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/thomasbuilds/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/thomasbuilds/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/thomasbuilds/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/thomasbuilds/bitcoin/deployments","created_at":"2026-06-11T18:42:26Z","updated_at":"2026-07-06T07:47:16Z","pushed_at":"2026-07-07T09:28:12Z","git_url":"git://github.com/thomasbuilds/bitcoin.git","ssh_url":"git@github.com:thomasbuilds/bitcoin.git","clone_url":"https://github.com/thomasbuilds/bitcoin.git","svn_url":"https://github.com/thomasbuilds/bitcoin","homepage":"https://bitcoincore.org/en/download","size":318513,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"2063f02bd5edebe1b5c9635db8850220811ebc90","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35665"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35665"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35665"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35665/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35665/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35665/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/6d387af562fc85eee003a269dbea10963e941985"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35664","id":3996124840,"node_id":"PR_kwDOABII587uMAao","html_url":"https://github.com/bitcoin/bitcoin/pull/35664","diff_url":"https://github.com/bitcoin/bitcoin/pull/35664.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35664.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35664","number":35664,"state":"open","locked":false,"title":"test: add CLTV and CHECK(MULTI)SIGVERIFY failure-path vectors to script_tests.json","user":{"login":"azuchi","id":1539047,"node_id":"MDQ6VXNlcjE1MzkwNDc=","avatar_url":"https://avatars.githubusercontent.com/u/1539047?v=4","gravatar_id":"","url":"https://api.github.com/users/azuchi","html_url":"https://github.com/azuchi","followers_url":"https://api.github.com/users/azuchi/followers","following_url":"https://api.github.com/users/azuchi/following{/other_user}","gists_url":"https://api.github.com/users/azuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/azuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azuchi/subscriptions","organizations_url":"https://api.github.com/users/azuchi/orgs","repos_url":"https://api.github.com/users/azuchi/repos","events_url":"https://api.github.com/users/azuchi/events{/privacy}","received_events_url":"https://api.github.com/users/azuchi/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"While reviewing spec coverage of `src/test/data/script_tests.json` against the script interpreter, I found two gaps that are testable within this file's harness but were never covered:  \r\n\r\n **1. `OP_CHECKSIGVERIFY` / `OP_CHECKMULTISIGVERIFY` failure paths**\r\n\r\n `OP_CHECKSIGVERIFY` never appears anywhere in the file, and no vector expects  the `CHECKSIGVERIFY` or `CHECKMULTISIGVERIFY` script errors, so the VERIFY tail of both opcodes (interpreter.cpp, `case OP_CHECKSIGVERIFY`) is untested  here. This commit adds static vectors that fail the signature check with an  empty signature and a valid pubkey, so each opcode returns its opcode-specific error code. The success paths require real signatures and remain covered by the auto-generated tests and functional tests. \r\n\r\n **2. `CHECKLOCKTIMEVERIFY` (BIP65) failure paths**\r\n\r\n`SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY` is never set by any vector:  `CHECKLOCKTIMEVERIFY` only appears as an unflagged NOP, so none of the BIP65  semantics are exercised, while the equivalent CHECKSEQUENCEVERIFY section has existed since #7994. This commit adds a section mirroring the CSV tests, covering every failure path reachable in this harness:\r\n\r\n- empty stack → `INVALID_STACK_OPERATION` \r\n- negative operand → `NEGATIVE_LOCKTIME`  \r\n- negative zero (`0x80`), evaluated as 0 by `CScriptNum` → `UNSATISFIED_LOCKTIME` rather than `NEGATIVE_LOCKTIME`\r\n- non-minimal encoding under MINIMALDATA → `SCRIPTNUM`  \r\n- final input nSequence (lock time requirement itself satisfied) → `UNSATISFIED_LOCKTIME`\r\n- operand greater than the tx nLockTime → `UNSATISFIED_LOCKTIME` \r\n- height/time type mismatch → `UNSATISFIED_LOCKTIME` \r\n- 5-byte operand (2^32) accepted by the parser, then failing the type check → `UNSATISFIED_LOCKTIME`\r\n\r\nUnlike CSV (where an operand with bit 31 set makes the opcode pass without  calling `CheckSequence`), the CLTV success path cannot be expressed in this  file, because the test harness spends with nLockTime=0 and a final nSequence;  it is covered by `tx_valid.json` and functional tests instead. A comment in  the JSON notes this.\r\n\r\n**3. Negative zero vector for the existing `CHECKSEQUENCEVERIFY` section**\r\n                                                                                  \r\nFollowing review feedback, the third commit adds the same negative-zero vector to the existing CSV section: the footgun is identical there (a re-implementation treating any operand with the sign bit set as negative would return `NEGATIVE_LOCKTIME` instead of reaching `CheckSequence`), and it keeps the two sections mirrored.","created_at":"2026-07-06T04:53:06Z","updated_at":"2026-07-10T14:37:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"45a442a92e6a75247d6c6de83fb14193d16f4ee4","assignees":[],"requested_reviewers":[{"login":"darosior","id":22457751,"node_id":"MDQ6VXNlcjIyNDU3NzUx","avatar_url":"https://avatars.githubusercontent.com/u/22457751?v=4","gravatar_id":"","url":"https://api.github.com/users/darosior","html_url":"https://github.com/darosior","followers_url":"https://api.github.com/users/darosior/followers","following_url":"https://api.github.com/users/darosior/following{/other_user}","gists_url":"https://api.github.com/users/darosior/gists{/gist_id}","starred_url":"https://api.github.com/users/darosior/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darosior/subscriptions","organizations_url":"https://api.github.com/users/darosior/orgs","repos_url":"https://api.github.com/users/darosior/repos","events_url":"https://api.github.com/users/darosior/events{/privacy}","received_events_url":"https://api.github.com/users/darosior/received_events","type":"User","user_view_type":"public","site_admin":false}],"requested_teams":[],"labels":[{"id":62963516,"node_id":"MDU6TGFiZWw2Mjk2MzUxNg==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Tests","name":"Tests","color":"d4c5f9","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35664/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35664/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35664/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/c4068cf37b6674417c77ce1f295b51dd49a57e81","head":{"label":"azuchi:add-missing-tests","ref":"add-missing-tests","sha":"c4068cf37b6674417c77ce1f295b51dd49a57e81","user":{"login":"azuchi","id":1539047,"node_id":"MDQ6VXNlcjE1MzkwNDc=","avatar_url":"https://avatars.githubusercontent.com/u/1539047?v=4","gravatar_id":"","url":"https://api.github.com/users/azuchi","html_url":"https://github.com/azuchi","followers_url":"https://api.github.com/users/azuchi/followers","following_url":"https://api.github.com/users/azuchi/following{/other_user}","gists_url":"https://api.github.com/users/azuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/azuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azuchi/subscriptions","organizations_url":"https://api.github.com/users/azuchi/orgs","repos_url":"https://api.github.com/users/azuchi/repos","events_url":"https://api.github.com/users/azuchi/events{/privacy}","received_events_url":"https://api.github.com/users/azuchi/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":52585622,"node_id":"MDEwOlJlcG9zaXRvcnk1MjU4NTYyMg==","name":"bitcoin","full_name":"azuchi/bitcoin","private":false,"owner":{"login":"azuchi","id":1539047,"node_id":"MDQ6VXNlcjE1MzkwNDc=","avatar_url":"https://avatars.githubusercontent.com/u/1539047?v=4","gravatar_id":"","url":"https://api.github.com/users/azuchi","html_url":"https://github.com/azuchi","followers_url":"https://api.github.com/users/azuchi/followers","following_url":"https://api.github.com/users/azuchi/following{/other_user}","gists_url":"https://api.github.com/users/azuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/azuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azuchi/subscriptions","organizations_url":"https://api.github.com/users/azuchi/orgs","repos_url":"https://api.github.com/users/azuchi/repos","events_url":"https://api.github.com/users/azuchi/events{/privacy}","received_events_url":"https://api.github.com/users/azuchi/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/azuchi/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/azuchi/bitcoin","forks_url":"https://api.github.com/repos/azuchi/bitcoin/forks","keys_url":"https://api.github.com/repos/azuchi/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/azuchi/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/azuchi/bitcoin/teams","hooks_url":"https://api.github.com/repos/azuchi/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/azuchi/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/azuchi/bitcoin/events","assignees_url":"https://api.github.com/repos/azuchi/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/azuchi/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/azuchi/bitcoin/tags","blobs_url":"https://api.github.com/repos/azuchi/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/azuchi/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/azuchi/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/azuchi/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/azuchi/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/azuchi/bitcoin/languages","stargazers_url":"https://api.github.com/repos/azuchi/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/azuchi/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/azuchi/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/azuchi/bitcoin/subscription","commits_url":"https://api.github.com/repos/azuchi/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/azuchi/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/azuchi/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/azuchi/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/azuchi/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/azuchi/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/azuchi/bitcoin/merges","archive_url":"https://api.github.com/repos/azuchi/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/azuchi/bitcoin/downloads","issues_url":"https://api.github.com/repos/azuchi/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/azuchi/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/azuchi/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/azuchi/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/azuchi/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/azuchi/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/azuchi/bitcoin/deployments","created_at":"2016-02-26T07:07:52Z","updated_at":"2026-07-08T01:20:23Z","pushed_at":"2026-07-08T00:55:30Z","git_url":"git://github.com/azuchi/bitcoin.git","ssh_url":"git@github.com:azuchi/bitcoin.git","clone_url":"https://github.com/azuchi/bitcoin.git","svn_url":"https://github.com/azuchi/bitcoin","homepage":"https://bitcoin.org/en/download","size":283721,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"e3b026bf56e66baa6e070a00c136da95f3a16ef8","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35664"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35664"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35664"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35664/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35664/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35664/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/c4068cf37b6674417c77ce1f295b51dd49a57e81"}},"author_association":"NONE","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35662","id":3995549496,"node_id":"PR_kwDOABII587uJz84","html_url":"https://github.com/bitcoin/bitcoin/pull/35662","diff_url":"https://github.com/bitcoin/bitcoin/pull/35662.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35662.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35662","number":35662,"state":"open","locked":false,"title":"script: make txdata non-default-constructible","user":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"**Problem:** `PrecomputedTransactionData` could be default-constructed and filled later with `Init()`.\r\nThat made it possible to keep an object around without transaction-specific data, and the public `Init()` method left a reuse path that was easy to get wrong.\r\nIn particular, the old `Init()` guard only checked [`m_spent_outputs_ready`](https://github.com/bitcoin/bitcoin/blob/2063f02bd5edebe1b5c9635db8850220811ebc90/src/script/interpreter.cpp#L1415), which stayed false after forced initialization without spent outputs, while `force=true` still enabled BIP143 precomputation and left cached prevout, sequence, and output hashes ready for witness-v0 sighash reuse.\r\n\r\n**Fix:** Make txdata construction do the initialization.\r\nCallers that already have the transaction and optional spent outputs now construct `PrecomputedTransactionData` directly; validation uses `std::optional<PrecomputedTransactionData>` so it can still wait until after a script-cache miss.\r\nThe type is no longer default-constructible, public `Init()` is gone, and each object is built for one transaction.\r\nThis hardens the helper against accidental reuse and simplifies the API by removing the default-construct-then-fill pattern.\r\nThis also covers #35663: `ConnectBlock()` leaves txdata storage empty when script checks are skipped during assumevalid.","created_at":"2026-07-06T01:58:55Z","updated_at":"2026-07-14T15:48:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8aa8e6e32faffb1456b27c0453b1d38e975738b4","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":192202000,"node_id":"MDU6TGFiZWwxOTIyMDIwMDA=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Consensus","name":"Consensus","color":"009800","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35662/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35662/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35662/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/92470f76bd8db83b304d4f79586a1803cd794e4f","head":{"label":"l0rinc:l0rinc/script-reset-precomputed-txdata","ref":"l0rinc/script-reset-precomputed-txdata","sha":"92470f76bd8db83b304d4f79586a1803cd794e4f","user":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":674169038,"node_id":"R_kgDOKC8Azg","name":"bitcoin","full_name":"l0rinc/bitcoin","private":false,"owner":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/l0rinc/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/l0rinc/bitcoin","forks_url":"https://api.github.com/repos/l0rinc/bitcoin/forks","keys_url":"https://api.github.com/repos/l0rinc/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/l0rinc/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/l0rinc/bitcoin/teams","hooks_url":"https://api.github.com/repos/l0rinc/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/l0rinc/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/l0rinc/bitcoin/events","assignees_url":"https://api.github.com/repos/l0rinc/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/l0rinc/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/l0rinc/bitcoin/tags","blobs_url":"https://api.github.com/repos/l0rinc/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/l0rinc/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/l0rinc/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/l0rinc/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/l0rinc/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/l0rinc/bitcoin/languages","stargazers_url":"https://api.github.com/repos/l0rinc/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/l0rinc/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/l0rinc/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/l0rinc/bitcoin/subscription","commits_url":"https://api.github.com/repos/l0rinc/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/l0rinc/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/l0rinc/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/l0rinc/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/l0rinc/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/l0rinc/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/l0rinc/bitcoin/merges","archive_url":"https://api.github.com/repos/l0rinc/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/l0rinc/bitcoin/downloads","issues_url":"https://api.github.com/repos/l0rinc/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/l0rinc/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/l0rinc/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/l0rinc/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/l0rinc/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/l0rinc/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/l0rinc/bitcoin/deployments","created_at":"2023-08-03T09:49:12Z","updated_at":"2026-07-14T18:55:55Z","pushed_at":"2026-07-15T02:58:25Z","git_url":"git://github.com/l0rinc/bitcoin.git","ssh_url":"git@github.com:l0rinc/bitcoin.git","clone_url":"https://github.com/l0rinc/bitcoin.git","svn_url":"https://github.com/l0rinc/bitcoin","homepage":"https://bitcoincore.org/en/download","size":314388,"stargazers_count":4,"watchers_count":4,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":108,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":1,"open_issues":108,"watchers":4,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"81405fc7abbd1889f3978b8924e7acbe12b3403b","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35662"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35662"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35662"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35662/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35662/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35662/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/92470f76bd8db83b304d4f79586a1803cd794e4f"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35657","id":3990408078,"node_id":"PR_kwDOABII587t2MuO","html_url":"https://github.com/bitcoin/bitcoin/pull/35657","diff_url":"https://github.com/bitcoin/bitcoin/pull/35657.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35657.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35657","number":35657,"state":"open","locked":false,"title":"refactor: avoid redundant input lookup in `CheckTxInputs`","user":{"login":"arejula27","id":46299278,"node_id":"MDQ6VXNlcjQ2Mjk5Mjc4","avatar_url":"https://avatars.githubusercontent.com/u/46299278?v=4","gravatar_id":"","url":"https://api.github.com/users/arejula27","html_url":"https://github.com/arejula27","followers_url":"https://api.github.com/users/arejula27/followers","following_url":"https://api.github.com/users/arejula27/following{/other_user}","gists_url":"https://api.github.com/users/arejula27/gists{/gist_id}","starred_url":"https://api.github.com/users/arejula27/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arejula27/subscriptions","organizations_url":"https://api.github.com/users/arejula27/orgs","repos_url":"https://api.github.com/users/arejula27/repos","events_url":"https://api.github.com/users/arejula27/events{/privacy}","received_events_url":"https://api.github.com/users/arejula27/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"`Consensus::CheckTxInputs` currently makes two UTXO lookups per input: first through a `HaveInputs()` pre-pass (which internally calls `HaveCoin()` for every input), and then through `AccessCoin()` on the same outpoints in the main validation loop.\r\n\r\n`HaveInputs()` has only a single caller (`CheckTxInputs`), and `AccessCoin()` already returns a reference to a spent sentinel `Coin` for any missing outpoint. This means the presence check can be folded into the existing loop without changing behavior.\r\n\r\nThis PR removes the initial `HaveInputs()` pre-pass and instead checks `coin.IsSpent()` immediately after `AccessCoin()` returns. As a result, `CheckTxInputs` performs one lookup per input instead of two (2N → N, where N is the number of inputs) in the validation path shared by both `ConnectBlock` and mempool acceptance.\r\n\r\n`HaveInputs()` itself is **not** removed. It is still used by the coins-view fuzz harness, although this change leaves it with no callers in the validation hot path. Removing it would be a trivial follow-up.\r\n\r\n\r\n\r\nThe only observable behavioral difference is which validation error is reported if one input is missing while another input in the same transaction fails for some unrelated reason (for example, coinbase immaturity).\r\n\r\n- In `ConnectBlock`, all such failures are ultimately reported as `BLOCK_CONSENSUS`, so the specific failure reason or ordering has no consensus impact.\r\n- In the mempool (`MemPoolAccept::PreChecks`), every input has already been checked with `m_view.HaveCoin()` before `CheckTxInputs()` is called. Missing inputs are handled there as orphan transactions, making the \"missing input\" path inside `CheckTxInputs()` unreachable during mempool validation.\r\n\r\n<details>\r\n<summary><strong>Benchmark</strong> (<code>bench_bitcoin -filter=CheckTxInputs</code>)</summary>\r\n\r\nThe benchmark below is intentionally designed to measure the cost of the redundant lookup itself, rather than end-to-end block validation.\r\n\r\nA fresh `CCoinsViewCache` wrapping `CoinsTip` is constructed for each measured batch (coins are added to `CoinsTip` itself, not to the benchmarked view), so each pass actually crosses the view/base boundary instead of hitting an already-warmed local cache. This closely matches how a fresh per-block view behaves in production.\r\n\r\n```bash\r\nBEFORE=\"d31c26fd1a53300a704bccbf12aae5b050c67ec3\"\r\nAFTER=\"5021cd02fa503f0ea0dc741f7200eba8275a885d\"\r\n\r\nRESULTS_FILE=\"$HOME/checktxinputs_bench_results.txt\"\r\n: > \"$RESULTS_FILE\"\r\n\r\necho \"machine | $(hostname) | $(uname -m) | $(lscpu | grep 'Model name' | head -1 | cut -d: -f2 | xargs) | $(nproc) cores | $(free -h | awk '/^Mem:/{print $2}') RAM\" | tee -a \"$RESULTS_FILE\"\r\n\r\nORIG=\"$(git rev-parse --abbrev-ref HEAD)\"\r\n\r\nfor hash in $BEFORE $AFTER; do\r\n  echo \">>> $hash\"\r\n  git checkout \"$hash\" >/dev/null 2>&1 &&\r\n  cmake --build build -t bench_bitcoin &&\r\n  (\r\n    echo \"--- ${hash:0:7} ---\"\r\n    ./build/bin/bench_bitcoin -filter=CheckTxInputs -min-time=3000\r\n  ) 2>&1 | tee -a \"$RESULTS_FILE\"\r\ndone\r\n\r\ngit switch \"$ORIG\"\r\n```\r\n\r\n</details>\r\n\r\n|        | ns/tx | tx/s | err% |\r\n|--------|------:|-----:|-----:|\r\n| before | 1,154.31 | 866,316 | 0.4% |\r\n| after  | 985.84 | 1,014,367 | 0.5% |\r\n\r\n~14.6% faster. This is smaller than a naive 2N → N lookup-count argument might suggest, because both lookups are `FetchCoin` calls against the same already-resolved cache entry after the first one resolves it. The second lookup is just a cheap lookup in an already-warm cache, not a second trip to the backing store. The real saving is exactly one redundant cache lookup per input, which is what this benchmark isolates.\r\n\r\nAs a sanity check, I also compared IBD over the same block range before and after this change and observed no measurable difference in synchronization time, which is expected: `CheckTxInputs` accounts for only a small fraction of `ConnectBlock`, where signature verification dominates.\r\n\r\nThe optimization is therefore real but modest. Its value comes from removing a genuinely redundant lookup without changing consensus behavior, rather than from any meaningful IBD speedup.\r\n\r\n\r\n### Historical context\r\n\r\nThis pre-pass originally served a real purpose.\r\n\r\nBefore April 2017, `CheckTxInputs()` used a per-*txid* `CCoins` cache where `AccessCoins(txid)` returned a raw pointer that could be `NULL`, and a single `CCoins` entry could contain both spent and unspent outputs. In that design, `HaveInputs()` prevented both null-pointer dereferences and spending an already-spent output within an otherwise live entry.\r\n\r\nOn 2017-04-25, two commits changed this:\r\n\r\n- `0003911326` (\"Introduce new per-txout CCoinsViewCache functions\") introduced `AccessCoin()`, which returns a reference to a sentinel empty coin for missing outpoints.\r\n- `f68cdfe92b` (\"Switch from per-tx to per-txout CCoinsViewCache methods in some places\") updated `CheckTxInputs()` to use the new API.\r\n\r\nFrom that point onward, missing and already-spent outputs were both represented by `coin.IsSpent()` on the object returned by `AccessCoin()`, making the `HaveInputs()` pre-pass redundant. The validation loop has effectively remained unchanged since then, aside from the later scripted rename from `IsPruned()` to `IsSpent()` (`589827975f`).\r\n\r\nThis PR simply removes that leftover redundancy.\r\n\r\n~~**Edit:** :When I opened this PR, I hadn't reviewed PR #35187, which modifies the same lines. While the primary goal of that PR is different, it also avoids the redundant lookup as a side effect.~~\r\n\r\n~~Although that PR was submitted earlier, it is significantly larger and includes more critical and potentially controversial changes (it has already received one concept NACK), so it may take longer to be merged.~~\r\n\r\n~~This PR is smaller, focused on a specific issue, and can be evaluated independently. It also doesn't block or conflict with the other PR, since #35187 can still be merged later on top of these changes without any issues.~~ Not anymore\r\n\r\n","created_at":"2026-07-04T11:35:24Z","updated_at":"2026-07-14T16:29:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9112f002e50911d1a78e801309f2acd878e0f14d","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":135961,"node_id":"MDU6TGFiZWwxMzU5NjE=","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Refactoring","name":"Refactoring","color":"E6F6D6","default":false,"description":null},{"id":5334691551,"node_id":"LA_kwDOABII588AAAABPfju3w","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/CI%20failed","name":"CI failed","color":"cccccc","default":false,"description":""}],"milestone":null,"draft":true,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35657/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35657/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35657/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/5b02e4b4c20cc25c7ae52c860a198e09240bb739","head":{"label":"arejula27:checktxinputs-dedup-haveinputs","ref":"checktxinputs-dedup-haveinputs","sha":"5b02e4b4c20cc25c7ae52c860a198e09240bb739","user":{"login":"arejula27","id":46299278,"node_id":"MDQ6VXNlcjQ2Mjk5Mjc4","avatar_url":"https://avatars.githubusercontent.com/u/46299278?v=4","gravatar_id":"","url":"https://api.github.com/users/arejula27","html_url":"https://github.com/arejula27","followers_url":"https://api.github.com/users/arejula27/followers","following_url":"https://api.github.com/users/arejula27/following{/other_user}","gists_url":"https://api.github.com/users/arejula27/gists{/gist_id}","starred_url":"https://api.github.com/users/arejula27/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arejula27/subscriptions","organizations_url":"https://api.github.com/users/arejula27/orgs","repos_url":"https://api.github.com/users/arejula27/repos","events_url":"https://api.github.com/users/arejula27/events{/privacy}","received_events_url":"https://api.github.com/users/arejula27/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":927877800,"node_id":"R_kgDON05KqA","name":"bitcoin","full_name":"arejula27/bitcoin","private":false,"owner":{"login":"arejula27","id":46299278,"node_id":"MDQ6VXNlcjQ2Mjk5Mjc4","avatar_url":"https://avatars.githubusercontent.com/u/46299278?v=4","gravatar_id":"","url":"https://api.github.com/users/arejula27","html_url":"https://github.com/arejula27","followers_url":"https://api.github.com/users/arejula27/followers","following_url":"https://api.github.com/users/arejula27/following{/other_user}","gists_url":"https://api.github.com/users/arejula27/gists{/gist_id}","starred_url":"https://api.github.com/users/arejula27/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arejula27/subscriptions","organizations_url":"https://api.github.com/users/arejula27/orgs","repos_url":"https://api.github.com/users/arejula27/repos","events_url":"https://api.github.com/users/arejula27/events{/privacy}","received_events_url":"https://api.github.com/users/arejula27/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/arejula27/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/arejula27/bitcoin","forks_url":"https://api.github.com/repos/arejula27/bitcoin/forks","keys_url":"https://api.github.com/repos/arejula27/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arejula27/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arejula27/bitcoin/teams","hooks_url":"https://api.github.com/repos/arejula27/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/arejula27/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/arejula27/bitcoin/events","assignees_url":"https://api.github.com/repos/arejula27/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/arejula27/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/arejula27/bitcoin/tags","blobs_url":"https://api.github.com/repos/arejula27/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arejula27/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arejula27/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/arejula27/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arejula27/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/arejula27/bitcoin/languages","stargazers_url":"https://api.github.com/repos/arejula27/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/arejula27/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/arejula27/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/arejula27/bitcoin/subscription","commits_url":"https://api.github.com/repos/arejula27/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/arejula27/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/arejula27/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/arejula27/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/arejula27/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/arejula27/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arejula27/bitcoin/merges","archive_url":"https://api.github.com/repos/arejula27/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arejula27/bitcoin/downloads","issues_url":"https://api.github.com/repos/arejula27/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/arejula27/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/arejula27/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/arejula27/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arejula27/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/arejula27/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/arejula27/bitcoin/deployments","created_at":"2025-02-05T17:33:29Z","updated_at":"2026-07-14T22:15:14Z","pushed_at":"2026-07-14T22:15:02Z","git_url":"git://github.com/arejula27/bitcoin.git","ssh_url":"git@github.com:arejula27/bitcoin.git","clone_url":"https://github.com/arejula27/bitcoin.git","svn_url":"https://github.com/arejula27/bitcoin","homepage":"https://bitcoincore.org/en/download","size":278242,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"1360001f43d57965b13d811a3a8f05379a83d091","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35657"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35657"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35657"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35657/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35657/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35657/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/5b02e4b4c20cc25c7ae52c860a198e09240bb739"}},"author_association":"NONE","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35654","id":3989156664,"node_id":"PR_kwDOABII587txbM4","html_url":"https://github.com/bitcoin/bitcoin/pull/35654","diff_url":"https://github.com/bitcoin/bitcoin/pull/35654.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35654.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35654","number":35654,"state":"open","locked":false,"title":"txdb: reject undecodable first coin cursor key","user":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"**Problem:** `CCoinsViewDB::Cursor()` already handles the case where `Seek(DB_COIN)` finds no coin record, but could still accept an undecodable first coin key as a valid cursor position.\r\n`CCoinsViewDBCursor::Next()` already invalidates the cursor for the same decode failure later in iteration, so initial cursor setup has a small correctness mismatch.\r\n\r\n**Fix:** Make initial cursor setup match `Next()`: keep the cached key invalid unless the first key decodes successfully.\r\n\r\nFixes #35172, with credit to the issue author and previous attempts #35191 and #35248.","created_at":"2026-07-04T01:36:10Z","updated_at":"2026-07-06T04:46:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fd336682effb6f121ad7ff267dad57c59e4c7316","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":97470796,"node_id":"MDU6TGFiZWw5NzQ3MDc5Ng==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/UTXO%20Db%20and%20Indexes","name":"UTXO Db and Indexes","color":"fbca04","default":false,"description":null}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35654/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35654/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35654/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/3837d9192a719b2232a2e8f330dac347bf09742d","head":{"label":"l0rinc:l0rinc/txdb-malformed-first-coin-cursor-key","ref":"l0rinc/txdb-malformed-first-coin-cursor-key","sha":"3837d9192a719b2232a2e8f330dac347bf09742d","user":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":674169038,"node_id":"R_kgDOKC8Azg","name":"bitcoin","full_name":"l0rinc/bitcoin","private":false,"owner":{"login":"l0rinc","id":1841944,"node_id":"MDQ6VXNlcjE4NDE5NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1841944?v=4","gravatar_id":"","url":"https://api.github.com/users/l0rinc","html_url":"https://github.com/l0rinc","followers_url":"https://api.github.com/users/l0rinc/followers","following_url":"https://api.github.com/users/l0rinc/following{/other_user}","gists_url":"https://api.github.com/users/l0rinc/gists{/gist_id}","starred_url":"https://api.github.com/users/l0rinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/l0rinc/subscriptions","organizations_url":"https://api.github.com/users/l0rinc/orgs","repos_url":"https://api.github.com/users/l0rinc/repos","events_url":"https://api.github.com/users/l0rinc/events{/privacy}","received_events_url":"https://api.github.com/users/l0rinc/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/l0rinc/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/l0rinc/bitcoin","forks_url":"https://api.github.com/repos/l0rinc/bitcoin/forks","keys_url":"https://api.github.com/repos/l0rinc/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/l0rinc/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/l0rinc/bitcoin/teams","hooks_url":"https://api.github.com/repos/l0rinc/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/l0rinc/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/l0rinc/bitcoin/events","assignees_url":"https://api.github.com/repos/l0rinc/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/l0rinc/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/l0rinc/bitcoin/tags","blobs_url":"https://api.github.com/repos/l0rinc/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/l0rinc/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/l0rinc/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/l0rinc/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/l0rinc/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/l0rinc/bitcoin/languages","stargazers_url":"https://api.github.com/repos/l0rinc/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/l0rinc/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/l0rinc/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/l0rinc/bitcoin/subscription","commits_url":"https://api.github.com/repos/l0rinc/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/l0rinc/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/l0rinc/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/l0rinc/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/l0rinc/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/l0rinc/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/l0rinc/bitcoin/merges","archive_url":"https://api.github.com/repos/l0rinc/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/l0rinc/bitcoin/downloads","issues_url":"https://api.github.com/repos/l0rinc/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/l0rinc/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/l0rinc/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/l0rinc/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/l0rinc/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/l0rinc/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/l0rinc/bitcoin/deployments","created_at":"2023-08-03T09:49:12Z","updated_at":"2026-07-14T18:55:55Z","pushed_at":"2026-07-15T02:58:25Z","git_url":"git://github.com/l0rinc/bitcoin.git","ssh_url":"git@github.com:l0rinc/bitcoin.git","clone_url":"https://github.com/l0rinc/bitcoin.git","svn_url":"https://github.com/l0rinc/bitcoin","homepage":"https://bitcoincore.org/en/download","size":314388,"stargazers_count":4,"watchers_count":4,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":108,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":1,"open_issues":108,"watchers":4,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"2063f02bd5edebe1b5c9635db8850220811ebc90","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35654"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35654"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35654"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35654/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35654/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35654/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/3837d9192a719b2232a2e8f330dac347bf09742d"}},"author_association":"CONTRIBUTOR","auto_merge":null,"assignee":null,"active_lock_reason":null},{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35647","id":3985409290,"node_id":"PR_kwDOABII587tjIUK","html_url":"https://github.com/bitcoin/bitcoin/pull/35647","diff_url":"https://github.com/bitcoin/bitcoin/pull/35647.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/35647.patch","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35647","number":35647,"state":"open","locked":false,"title":"test: avoid http.client for malformed header checks","user":{"login":"alerodriargui","id":80339818,"node_id":"MDQ6VXNlcjgwMzM5ODE4","avatar_url":"https://avatars.githubusercontent.com/u/80339818?v=4","gravatar_id":"","url":"https://api.github.com/users/alerodriargui","html_url":"https://github.com/alerodriargui","followers_url":"https://api.github.com/users/alerodriargui/followers","following_url":"https://api.github.com/users/alerodriargui/following{/other_user}","gists_url":"https://api.github.com/users/alerodriargui/gists{/gist_id}","starred_url":"https://api.github.com/users/alerodriargui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alerodriargui/subscriptions","organizations_url":"https://api.github.com/users/alerodriargui/orgs","repos_url":"https://api.github.com/users/alerodriargui/repos","events_url":"https://api.github.com/users/alerodriargui/events{/privacy}","received_events_url":"https://api.github.com/users/alerodriargui/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"Fixes #35632.\r\n\r\nThis updates the malformed whitespace header checks in `interface_http.py` to send exact raw HTTP requests instead of using `http.client` to construct and parse deliberately invalid requests.\r\n\r\nThe failing case is platform-sensitive: the server can correctly send `HTTP/1.1 400` and close the connection, while Python on Windows may surface the close as `ConnectionAbortedError` before `http.client` returns an `HTTPResponse`. Sending raw bytes and checking the raw status line matches the pattern already used by nearby malformed-request tests and keeps the assertion focused on the server behavior.\r\n","created_at":"2026-07-03T10:39:43Z","updated_at":"2026-07-14T12:33:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f0298b4b864cb0e0c8dcd3f7a7704cd32300c8b3","assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":62963516,"node_id":"MDU6TGFiZWw2Mjk2MzUxNg==","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/Tests","name":"Tests","color":"d4c5f9","default":false,"description":null},{"id":5334691551,"node_id":"LA_kwDOABII588AAAABPfju3w","url":"https://api.github.com/repos/bitcoin/bitcoin/labels/CI%20failed","name":"CI failed","color":"cccccc","default":false,"description":""}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35647/commits","review_comments_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35647/comments","review_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/35647/comments","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/116b68e0263f853b9fbe24794ca4c75d2aa32aa3","head":{"label":"alerodriargui:fix-interface-http-whitespace-headers","ref":"fix-interface-http-whitespace-headers","sha":"116b68e0263f853b9fbe24794ca4c75d2aa32aa3","user":{"login":"alerodriargui","id":80339818,"node_id":"MDQ6VXNlcjgwMzM5ODE4","avatar_url":"https://avatars.githubusercontent.com/u/80339818?v=4","gravatar_id":"","url":"https://api.github.com/users/alerodriargui","html_url":"https://github.com/alerodriargui","followers_url":"https://api.github.com/users/alerodriargui/followers","following_url":"https://api.github.com/users/alerodriargui/following{/other_user}","gists_url":"https://api.github.com/users/alerodriargui/gists{/gist_id}","starred_url":"https://api.github.com/users/alerodriargui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alerodriargui/subscriptions","organizations_url":"https://api.github.com/users/alerodriargui/orgs","repos_url":"https://api.github.com/users/alerodriargui/repos","events_url":"https://api.github.com/users/alerodriargui/events{/privacy}","received_events_url":"https://api.github.com/users/alerodriargui/received_events","type":"User","user_view_type":"public","site_admin":false},"repo":{"id":1288170040,"node_id":"R_kgDOTMfqOA","name":"bitcoin","full_name":"alerodriargui/bitcoin","private":false,"owner":{"login":"alerodriargui","id":80339818,"node_id":"MDQ6VXNlcjgwMzM5ODE4","avatar_url":"https://avatars.githubusercontent.com/u/80339818?v=4","gravatar_id":"","url":"https://api.github.com/users/alerodriargui","html_url":"https://github.com/alerodriargui","followers_url":"https://api.github.com/users/alerodriargui/followers","following_url":"https://api.github.com/users/alerodriargui/following{/other_user}","gists_url":"https://api.github.com/users/alerodriargui/gists{/gist_id}","starred_url":"https://api.github.com/users/alerodriargui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alerodriargui/subscriptions","organizations_url":"https://api.github.com/users/alerodriargui/orgs","repos_url":"https://api.github.com/users/alerodriargui/repos","events_url":"https://api.github.com/users/alerodriargui/events{/privacy}","received_events_url":"https://api.github.com/users/alerodriargui/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/alerodriargui/bitcoin","description":"Bitcoin Core integration/staging tree","fork":true,"url":"https://api.github.com/repos/alerodriargui/bitcoin","forks_url":"https://api.github.com/repos/alerodriargui/bitcoin/forks","keys_url":"https://api.github.com/repos/alerodriargui/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alerodriargui/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alerodriargui/bitcoin/teams","hooks_url":"https://api.github.com/repos/alerodriargui/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/alerodriargui/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/alerodriargui/bitcoin/events","assignees_url":"https://api.github.com/repos/alerodriargui/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/alerodriargui/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/alerodriargui/bitcoin/tags","blobs_url":"https://api.github.com/repos/alerodriargui/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alerodriargui/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alerodriargui/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/alerodriargui/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alerodriargui/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/alerodriargui/bitcoin/languages","stargazers_url":"https://api.github.com/repos/alerodriargui/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/alerodriargui/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/alerodriargui/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/alerodriargui/bitcoin/subscription","commits_url":"https://api.github.com/repos/alerodriargui/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/alerodriargui/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/alerodriargui/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/alerodriargui/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/alerodriargui/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/alerodriargui/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alerodriargui/bitcoin/merges","archive_url":"https://api.github.com/repos/alerodriargui/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alerodriargui/bitcoin/downloads","issues_url":"https://api.github.com/repos/alerodriargui/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/alerodriargui/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/alerodriargui/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/alerodriargui/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alerodriargui/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/alerodriargui/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/alerodriargui/bitcoin/deployments","created_at":"2026-07-03T10:38:46Z","updated_at":"2026-07-03T10:38:46Z","pushed_at":"2026-07-04T20:16:27Z","git_url":"git://github.com/alerodriargui/bitcoin.git","ssh_url":"git@github.com:alerodriargui/bitcoin.git","clone_url":"https://github.com/alerodriargui/bitcoin.git","svn_url":"https://github.com/alerodriargui/bitcoin","homepage":"https://bitcoincore.org/en/download","size":318619,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bitcoin:master","ref":"master","sha":"2063f02bd5edebe1b5c9635db8850220811ebc90","user":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"repo":{"id":1181927,"node_id":"MDEwOlJlcG9zaXRvcnkxMTgxOTI3","name":"bitcoin","full_name":"bitcoin/bitcoin","private":false,"owner":{"login":"bitcoin","id":528860,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyODg2MA==","avatar_url":"https://avatars.githubusercontent.com/u/528860?v=4","gravatar_id":"","url":"https://api.github.com/users/bitcoin","html_url":"https://github.com/bitcoin","followers_url":"https://api.github.com/users/bitcoin/followers","following_url":"https://api.github.com/users/bitcoin/following{/other_user}","gists_url":"https://api.github.com/users/bitcoin/gists{/gist_id}","starred_url":"https://api.github.com/users/bitcoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitcoin/subscriptions","organizations_url":"https://api.github.com/users/bitcoin/orgs","repos_url":"https://api.github.com/users/bitcoin/repos","events_url":"https://api.github.com/users/bitcoin/events{/privacy}","received_events_url":"https://api.github.com/users/bitcoin/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/bitcoin/bitcoin","description":"Bitcoin Core integration/staging tree","fork":false,"url":"https://api.github.com/repos/bitcoin/bitcoin","forks_url":"https://api.github.com/repos/bitcoin/bitcoin/forks","keys_url":"https://api.github.com/repos/bitcoin/bitcoin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitcoin/bitcoin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitcoin/bitcoin/teams","hooks_url":"https://api.github.com/repos/bitcoin/bitcoin/hooks","issue_events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/events{/number}","events_url":"https://api.github.com/repos/bitcoin/bitcoin/events","assignees_url":"https://api.github.com/repos/bitcoin/bitcoin/assignees{/user}","branches_url":"https://api.github.com/repos/bitcoin/bitcoin/branches{/branch}","tags_url":"https://api.github.com/repos/bitcoin/bitcoin/tags","blobs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitcoin/bitcoin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitcoin/bitcoin/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitcoin/bitcoin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitcoin/bitcoin/statuses/{sha}","languages_url":"https://api.github.com/repos/bitcoin/bitcoin/languages","stargazers_url":"https://api.github.com/repos/bitcoin/bitcoin/stargazers","contributors_url":"https://api.github.com/repos/bitcoin/bitcoin/contributors","subscribers_url":"https://api.github.com/repos/bitcoin/bitcoin/subscribers","subscription_url":"https://api.github.com/repos/bitcoin/bitcoin/subscription","commits_url":"https://api.github.com/repos/bitcoin/bitcoin/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitcoin/bitcoin/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitcoin/bitcoin/contents/{+path}","compare_url":"https://api.github.com/repos/bitcoin/bitcoin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitcoin/bitcoin/merges","archive_url":"https://api.github.com/repos/bitcoin/bitcoin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitcoin/bitcoin/downloads","issues_url":"https://api.github.com/repos/bitcoin/bitcoin/issues{/number}","pulls_url":"https://api.github.com/repos/bitcoin/bitcoin/pulls{/number}","milestones_url":"https://api.github.com/repos/bitcoin/bitcoin/milestones{/number}","notifications_url":"https://api.github.com/repos/bitcoin/bitcoin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/labels{/name}","releases_url":"https://api.github.com/repos/bitcoin/bitcoin/releases{/id}","deployments_url":"https://api.github.com/repos/bitcoin/bitcoin/deployments","created_at":"2010-12-19T15:16:43Z","updated_at":"2026-07-15T01:58:40Z","pushed_at":"2026-07-14T22:42:59Z","git_url":"git://github.com/bitcoin/bitcoin.git","ssh_url":"git@github.com:bitcoin/bitcoin.git","clone_url":"https://github.com/bitcoin/bitcoin.git","svn_url":"https://github.com/bitcoin/bitcoin","homepage":"https://bitcoincore.org/en/download","size":319761,"stargazers_count":89752,"watchers_count":89752,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":39170,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":666,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":["bitcoin","c-plus-plus","cryptocurrency","cryptography","p2p"],"visibility":"public","forks":39170,"open_issues":666,"watchers":89752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35647"},"html":{"href":"https://github.com/bitcoin/bitcoin/pull/35647"},"issue":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35647"},"comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/issues/35647/comments"},"review_comments":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35647/comments"},"review_comment":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitcoin/bitcoin/pulls/35647/commits"},"statuses":{"href":"https://api.github.com/repos/bitcoin/bitcoin/statuses/116b68e0263f853b9fbe24794ca4c75d2aa32aa3"}},"author_association":"NONE","auto_merge":null,"assignee":null,"active_lock_reason":null}]