Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 1.13.0 · 2026-07-26 17:29 UTC

ismaelsadeeq / bitcoin

Bitcoin Core integration/staging tree

C++ · Python · CMIT★ 0 зірок⑂ 1 форкз груд. 2022 р.форкПереглянути на GitHub ↗

ismaelsadeeq/bitcoin має індекс здоров’я 33 зі 100, що відповідає смузі «У зоні ризику». Найвищий показник — Engineering Quality (57/100), найнижчий — Community & Adoption (12/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконують 5 учасників.

33
загалом / 100
У зоні ризику

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

33
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Abandonment Policy applies a 85% multiplier to weighted overall health.

Власність

Abubakar Sadiq IsmailОсобистий обліковий запис
294 підписники46 публічних репозиторіївз бер. 2019 р.

Цей репозиторій належить особистому обліковому запису. Проєкт з єдиним власником несе більший ризик безперервності, ніж підтримуваний організацією.

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

34У зоні ризику · 22% загального індексу

Активність розробки

36У зоні ризику
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
0/36Ритм комітів — 0/52 тижнів із комітами
0/18Обсяг комітів — 0 комітів за останній рік
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Використані вхідні дані
commits_last_year0
human_commit_share1
days_since_last_push0
active_weeks_last_year0

Дисципліна релізів

32У зоні ризику
Як обчислюється оцінка
16.2/27Випускає релізи — 25 тегів версій (без релізів GitHub)
0/36Свіжість релізів — останній реліз 1 328 дн. тому
12.6/27Ритм релізів — реліз кожні ~124,9 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count25
latest_release_tagv24.0.1
releases_from_tagsтак
days_since_latest_release1 328
mean_days_between_releases124,9
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

12Критичний · 18% загального індексу
Як обчислюється оцінка
0/60Зірки — 0 зірок
0/25Форки — 1 форків
0/15Спостерігачі — 1 спостерігачів
Використані вхідні дані
forks1
stars0
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
0/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
0/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeні
has_licenseні
has_contributingні
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

53Помірний · 24% загального індексу
Як обчислюється оцінка
45.9/54Бас-фактор — на 5 контриб’ютор(ів) припадає половина всіх комітів
16.9/22.5Розподіл комітів — головний контриб’ютор — автор 25% комітів
13.5/13.5Широта контриб’юторів — 100 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 17 contributing companies or organizations
Використані вхідні дані
bus_factor5
contributors_sampled100
top_contributor_share0,25
Як обчислюється оцінка
0/46.8Вирішення issue — немає issue або даних
0/38.3Прийняття PR — немає вирішених pull request-ів або даних
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Виключено з оцінювання (немає даних або не застосовно): Вирішення issue, Прийняття PR. Залишкові ваги перенормовано.
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
17.8/25Охоплення власника — 294 підписників у ismaelsadeeq
24.2/25Послужний список — 46 публічних репозиторіїв, вік облікового запису ~7 р.
Використані вхідні дані
followers294
owner_typeUser
is_verified
owner_loginismaelsadeeq
public_repos46
account_age_days2 679
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Інженерна якість

Чи наявні базові інженерні практики та документація?

57Помірний · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 1 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — немає даних
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configні
has_precommit_configні
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: CI-Tests. Залишкові ваги перенормовано.

Документація

40У зоні ризику
Як обчислюється оцінка
0/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://bitcoincore.org/en/download
0/10Опис репозиторію
0/10Теми
0/10Wiki
Використані вхідні дані
topics
has_wikiні
homepagehttps://bitcoincore.org/en/download
has_readmeні
has_docs_dirтак
has_descriptionні

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

35У зоні ризику · 16% загального індексу

Стан безпеки

35У зоні ризику
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — немає даних
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 17 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
0/7.5Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
0/5Packaging — немає даних
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — no SAST tool detected
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
3.8/7.5Vulnerabilities — 5 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate3,5
Виключено з оцінювання (немає даних або не застосовно): ci_tests, packaging, signed_releases. Залишкові ваги перенормовано.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

57Помірний · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 92 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,92
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
18/18Розгортання однією командою — depends/Makefile, src/qt/Makefile, src/qt/test/Makefile, src/test/Makefile
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
11/11Статична перевірка типів — C++ (статично типізована)
10/10Відтворюване середовище — lockfile
0/10Підтверджена практика роботи з агентами — серед останніх 100 комітів немає створених агентом
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Використані вхідні дані
has_nixні
has_testsтак
lockfilesCargo.lock
has_dockerfileні
typed_languageтак
bootstrap_filesdepends/Makefile, src/qt/Makefile, src/qt/test/Makefile, src/test/Makefile
has_devcontainerні
has_linter_configні
typecheck_configs
agent_commit_share0
toolchain_manifestssrc/qt/android/build.gradle, test/lint/test_runner/Cargo.toml
dependency_bot_commit_share0
Як обчислюється оцінка
45/45Типізований код — C++ (статично типізована)
51.5/55Керовані розміри файлів — 114/1 779 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageC++
largest_source_bytes2 409 168
source_files_sampled1 779
oversized_source_files114
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
0/20Сервер MCP
40/40Придатні до запуску приклади — examples
Використані вхідні дані
example_dirsexamples
has_mcp_signalні
api_schema_files

Ключові факти

0зірок GitHub
100контриб'юторів
0комітів за останні 12 місяців
0днів від останнього пушу
25релізів
5бас-фактор
0відкритих issue
пакетних екосистем

Попередження щодо збору даних

  • Community profile unavailable
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Докладніше

OpenSSF Scorecard 3.5 / 10
3.5сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-26 17:28 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
н/дCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 17 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintained0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
н/дPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
10Security-Policysecurity policy file detected
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
5Vulnerabilities5 existing vulnerabilities detected
Усі залежності не зібрано

Не вдалося зібрати розв'язаний набір залежностей для цього звіту: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": true,
      "size_kb": 313577,
      "has_wiki": false,
      "homepage": "https://bitcoincore.org/en/download",
      "languages": {
        "C": 1822448,
        "M4": 217842,
        "C++": 11403725,
        "HTML": 21833,
        "Java": 541,
        "Rust": 3321,
        "Sage": 59399,
        "CMake": 57776,
        "QMake": 438,
        "Shell": 182813,
        "Python": 3451423,
        "Scheme": 21841,
        "Assembly": 28366,
        "Makefile": 148949,
        "Dockerfile": 4534,
        "Cap'n Proto": 1256,
        "Objective-C++": 5497
      },
      "pushed_at": "2026-07-26T13:52:11Z",
      "created_at": "2022-12-13T11:54:34Z",
      "owner_type": "User",
      "updated_at": "2023-03-10T09:46:26Z",
      "description": "Bitcoin Core integration/staging tree",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "C++",
      "significant_languages": [
        "C++",
        "Python",
        "C"
      ]
    },
    "owner": {
      "blog": "https://ismaelsadeeq.github.io/",
      "name": "Abubakar Sadiq Ismail",
      "type": "User",
      "login": "ismaelsadeeq",
      "company": null,
      "location": "Remote",
      "followers": 294,
      "avatar_url": "https://avatars.githubusercontent.com/u/48946461?v=4",
      "created_at": "2019-03-26T09:29:36Z",
      "is_verified": null,
      "public_repos": 46,
      "account_age_days": 2679
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v24.0.1",
          "kind": "patch",
          "published_at": "2022-12-06T15:54:10Z"
        },
        {
          "tag": "v0.21.2",
          "kind": "patch",
          "published_at": "2021-09-23T10:07:49Z"
        },
        {
          "tag": "v0.21.1",
          "kind": "patch",
          "published_at": "2021-04-29T19:31:20Z"
        },
        {
          "tag": "v0.21.0",
          "kind": "minor",
          "published_at": "2021-01-13T21:52:34Z"
        },
        {
          "tag": "v0.20.2",
          "kind": "patch",
          "published_at": "2021-10-18T12:41:02Z"
        },
        {
          "tag": "v0.20.1",
          "kind": "patch",
          "published_at": "2020-07-31T12:02:21Z"
        },
        {
          "tag": "v0.20.0",
          "kind": "minor",
          "published_at": "2020-06-02T07:43:04Z"
        },
        {
          "tag": "v0.19.2",
          "kind": "patch",
          "published_at": "2021-01-07T18:57:57Z"
        },
        {
          "tag": "v0.19.1",
          "kind": "patch",
          "published_at": "2020-03-04T12:14:49Z"
        },
        {
          "tag": "v0.19.0",
          "kind": "minor",
          "published_at": "2019-11-08T20:15:52Z"
        },
        {
          "tag": "v0.18.1",
          "kind": "patch",
          "published_at": "2019-08-02T20:33:05Z"
        },
        {
          "tag": "v0.18.0",
          "kind": "minor",
          "published_at": "2019-04-30T11:52:08Z"
        },
        {
          "tag": "v0.17.2",
          "kind": "patch",
          "published_at": "2019-09-14T08:54:07Z"
        },
        {
          "tag": "v0.17.1",
          "kind": "patch",
          "published_at": "2018-12-06T23:29:45Z"
        },
        {
          "tag": "v0.17.0",
          "kind": "minor",
          "published_at": "2018-10-01T10:04:33Z"
        },
        {
          "tag": "v0.16.3",
          "kind": "patch",
          "published_at": "2018-09-17T23:55:20Z"
        },
        {
          "tag": "v0.16.2",
          "kind": "patch",
          "published_at": "2018-07-20T12:54:20Z"
        },
        {
          "tag": "v0.16.1",
          "kind": "patch",
          "published_at": "2018-06-13T12:32:11Z"
        },
        {
          "tag": "v0.16.0",
          "kind": "minor",
          "published_at": "2018-02-22T19:20:48Z"
        },
        {
          "tag": "v0.15.2",
          "kind": "patch",
          "published_at": "2018-09-19T11:49:47Z"
        },
        {
          "tag": "v0.15.1",
          "kind": "patch",
          "published_at": "2017-11-06T08:46:24Z"
        },
        {
          "tag": "v0.15.0",
          "kind": "minor",
          "published_at": "2017-09-10T22:13:03Z"
        },
        {
          "tag": "v0.14.3",
          "kind": "patch",
          "published_at": "2018-09-20T16:32:52Z"
        },
        {
          "tag": "v0.14.2",
          "kind": "patch",
          "published_at": "2017-06-15T10:44:01Z"
        },
        {
          "tag": "v0.14.1",
          "kind": "patch",
          "published_at": "2017-04-20T09:28:25Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "6d5790956f45e3de5c6c4ee6fda21878b0d1287b",
          "body": "…apnp` packages with CMake\n\n11d797e3a078b8f5f0039a1073047d3f0a8c6cdc depends: Build `native_capnp` package with CMake (Hennadii Stepanov)\n90389c95e9edf3d705fb9376388c83f07d1a570e depends: Build `capnp` package with CMake (Hennadii Stepanov)\n\nPull request description:\n\n  The first commit fixes two bu\n[…]\ned (but probably still a good optimization) was reverted.\n\nTree-SHA512: c636e53073ce6fcda9724723bc59f3990fa9629a3b2f73d93dbc102a5a1badfbe8f4c5fef841f03588ebcad5cd4883f3ce32b128afcd75f6bc21eb801796a586",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28856: depends: Build the `native_capnp` and `c…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-12-05T13:28:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b3ab0c3819cf36e902989e0544365807ac0823e6",
          "body": "…d::Wtxid not GenTxid::Txid\n\n38816ff64ed90a55e4879e9b440cdc876302f750 fuzz: txorphan check wtxids using GenTxid::Wtxid not GenTxid::Txid (Greg Sanders)\n\nPull request description:\n\n  Fixes the bugs in the fuzz test with no more changes as an alternative to https://github.com/bitcoin/bitcoin/pull/2865\n[…]\nrgoegge:\n    ACK 38816ff64ed90a55e4879e9b440cdc876302f750\n\nTree-SHA512: 5e46a83f2b2a2ac0672a63eb6200b019e01089ab1aa80c4ab869b6fcf27ccf2e84a064e96397f1a1869ccfa43b0c9638cbae681a27c4ca3c96ac71f41262601e",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28997: fuzz: txorphan check wtxids using GenTxi…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-12-05T10:56:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1c8893bd1c80043ee47e0dd9b63b09bb65d25fa2",
          "body": "…in utxo_snapshot.sh\n\n11b7269d83a56f919f9dddb7f7c72a96d428627f script: Enhance validations in utxo_snapshot.sh (pablomartin4btc)\n\nPull request description:\n\n  This PR resolves #27841 and some more:\n\n  - Ensure that the snapshot height is higher than the pruned block height when the node is pruned (S\n[…]\n Code review ACK 11b7269d83a56f919f9dddb7f7c72a96d428627f\n\nTree-SHA512: 2b699894c6f732ad5104f5a2bcf5dc86ed31edcc9d664690cab55b94a8ab00e2ca5bde901ee1d63acddca7ea80ad1734d8cfe78f9c02f8470f264fe93a2af759",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28852: script, assumeutxo: Enhance validations …",
          "author_name": "Ryan Ofsky",
          "author_login": "ryanofsky",
          "committed_at": "2023-12-04T22:07:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "38816ff64ed90a55e4879e9b440cdc876302f750",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: txorphan check wtxids using GenTxid::Wtxid not GenTxid::Txid",
          "author_name": "Greg Sanders",
          "author_login": "instagibbs",
          "committed_at": "2023-12-04T19:42:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "afdc4c3a30c0543a837a317b643cf2737ed3178c",
          "body": "…t generated\n\n8f6ab318635d823a7e6ad9020ac17b8d2dd0e91b init: don't delete PID file if it was not generated (willcl-ark)\n\nPull request description:\n\n  In a similar vein to #28784, if a second `bitcoind` is started using the same datadir it will fail to start up, but during shutdown remove the PID fil\n[…]\nn/bitcoin/commit/8f6ab318635d823a7e6ad9020ac17b8d2dd0e91b\n\nTree-SHA512: c9af703cbfa179d33ef9580a51e86c1b0acbd28daa18c8d2e5e5ff796ab4d3e2009a962a47e6046a0e5ece936f8a06ee8af5fdf8ff4ae1e52cbcdbec4b942271",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28946: init: don't delete PID file if it was no…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-12-04T19:39:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "11d797e3a078b8f5f0039a1073047d3f0a8c6cdc",
          "body": null,
          "is_bot": false,
          "headline": "depends: Build `native_capnp` package with CMake",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-12-04T14:39:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90389c95e9edf3d705fb9376388c83f07d1a570e",
          "body": "This change fixes the `capnp` package cross-compiling for the\n`x86_64-w64-mingw32` and `arm64-apple-darwin` platforms.",
          "is_bot": false,
          "headline": "depends: Build `capnp` package with CMake",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-12-04T14:39:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f6ab318635d823a7e6ad9020ac17b8d2dd0e91b",
          "body": "Previously, starting a second bitcoind using the same datadir would\ncorrectly fail to init and shutdown. However during shutdown the PID\nfile belonging to the first instance would be erroneously removed by\nthe second process shutting down.\n\nFix this to only delete the PID file if we created it.",
          "is_bot": false,
          "headline": "init: don't delete PID file if it was not generated",
          "author_name": "willcl-ark",
          "author_login": "willcl-ark",
          "committed_at": "2023-12-04T12:54:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "160d23677ad799cf9b493eaa923b2ac080c3fb8e",
          "body": "…version properly\n\n05aca093819be276ac7d648472c6ed5c7d235cc5 build: Patch Qt to handle minimum macOS version properly (Hennadii Stepanov)\n\nPull request description:\n\n  This PR is:\n  - required to [switch](https://github.com/bitcoin/bitcoin/pull/28622) to macOS 14 SDK (Xcode 15).\n  - an alternative to\n[…]\nko:\n    lgtm ACK 05aca093819be276ac7d648472c6ed5c7d235cc5\n\nTree-SHA512: 8891aefde4b8a48885abf0648f4ec71a22f7fcfca1e17ebb8c70ce1ef44751ea5db6b8b652de6ee8a716ca5f96f720fef01600bc23986162d0146c946e2e8743",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28851: build: Patch Qt to handle minimum macOS …",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-12-01T20:28:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5aa37ca01d15c699b95d7b532c157966b1475fa2",
          "body": "97d53e90badc01224139a4a4356b934f338568d4 ci: remove libz-dev from macOS build deps (fanquake)\n\nPull request description:\n\n  Remove no-longer used libz-dev (from DMG compression).\n  Followup to #28432.\n  Missed this in #28932.\n\nACKs for top commit:\n  TheCharlatan:\n    ACK 97d53e90badc01224139a4a4356b934f338568d4\n\nTree-SHA512: ea4e46d83a11cfb0d77e7c5b370359864a026ca58e02de1a3d30458e4463dabd338db9546da63b782a7fa0ce199446c418fbfdfc400f3803b0ea9dd626aed42f",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28973: ci: remove `libz-dev` from macOS build deps",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-12-01T20:27:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a97a89244e9100e3e6ba1a14d4f5e86d6eb2e86e",
          "body": "…terface/CScheduler thread\n\n91504cbe0de2b74ef1aa2709761aaf0597ec66a2 rpc: `SyncWithValidationInterfaceQueue` on fee estimation RPC's (ismaelsadeeq)\n714523918ba2b853fc69bee6b04a33ba0c828bf5 tx fees, policy: CBlockPolicyEstimator update from `CValidationInterface` notifications (ismaelsadeeq)\ndff5ad3b\n[…]\nlcl-ark:\n    ACK 91504cbe0de2b74ef1aa2709761aaf0597ec66a2\n\nTree-SHA512: 846dfb9da57a8a42458827b8975722d153907fe6302ad65748d74f311e1925557ad951c3d95fe71fb90ddcc8a3710c45abb343ab86b88780871cb9c38c72c7b1",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28368: Fee Estimator updates from Validation In…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-12-01T20:07:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "18bed148af65746dd3a0066fefc5b48f9729c1b6",
          "body": "…enerated\n\n7cb9367157eb42ee06bc6fa024522cc14a80138d rpc: keep .cookie if it was not generated (Roman Zeyde)\n\nPull request description:\n\n  Otherwise, starting bitcoind twice may cause the `.cookie` file generated by the first instance to be deleted by the second instance shutdown (after failing to ob\n[…]\nckies-v:\n    ACK 7cb9367157eb42ee06bc6fa024522cc14a80138d\n\nTree-SHA512: 0960dbc457975b0e0535f3d814824a879d7f85c9f1191537415b3fc253429a316a8e4badde56c8bc139778f132392983cec5fbe03891fb15ff61d3bc3f6e681b",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28784: rpc: keep `.cookie` file if it was not g…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-12-01T17:24:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6b3927f79a92a737f32ab32e96c681462da923ef",
          "body": "…to return results for all transactions\n\nf23ba24aa079d68697d475789cd21bd7b5075550 test_submitpackage: only make a chain of 3 txns (Greg Sanders)\ne67a345162912ef7c1bfa3c89c7e7c629505f0a3 doc: submitpackage vsize results are sigops-adjusted (Greg Sanders)\nb67db52c399089e5d4c4202ebb905794dfd050d0 RPC s\n[…]\nd475789cd21bd7b5075550, thanks for taking the suggestions\n\nTree-SHA512: ebfd716a4fed9e8c2dea3d2181ba6a6171b06718d29ac2324c67b7a30b374d199f7e1739f91ab5d036be172d0479de9bc89c32263ee62143c0338b9b622d0cca",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28848: bugfix, Change up submitpackage results …",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-12-01T17:17:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "498994b6f55d04a7940f832e7fbd17e5acdaff15",
          "body": "…attempt 2)\n\n5b3ea5fa2e7f6dc1c9161ed8b74c9be4bd1e92dd refactor: Move `{MAX,DEFAULT}_SCRIPTCHECK_THREADS` constants (Hennadii Stepanov)\n6e17b3168072ab77ed7170ab81327c017877133a refactor: Make `CCheckQueue` non-copyable and non-movable explicitly (Hennadii Stepanov)\n8111e74653dc5c93cb510672d99048c3f74\n[…]\narlatan:\n    ACK 5b3ea5fa2e7f6dc1c9161ed8b74c9be4bd1e92dd\n\nTree-SHA512: 45cca846e7ed107e3930149f0b616ddbaf2648d6cde381f815331b861b5d67ab39e154883ae174b8abb1dae485bc904318c50c51e5d6b46923d89de51c5eadb0",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#26762: bugfix: Make `CCheckQueue` RAII-styled (…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-11-30T19:28:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ffb021612b8f581cbbaffacc80922d1bc5683706",
          "body": "…TWORK, CDataStream\n\nfa98a097a30bc39f2424c0efd28a7979155faae6 Rename version.h to node/protocol_version.h (MarcoFalke)\nfa4fbd58169a244c14017c62218e443b18a868ef Remove unused version.h include (MarcoFalke)\nfa0ae22ff2c608c94b26c85040c4a1c7e9f7cf90 Remove unused SER_NETWORK, SER_DISK (MarcoFalke)\nfae00\n[…]\nACK fa98a097a30bc39f2424c0efd28a7979155faae6 (looks good)\n\nTree-SHA512: 9f1b9d9f92bda0512610bda6653e892756f637860362a9abfa439faab62de233cbad94b7df78ebacc160d9667aadfed4d9df08c0edefa618c040a049050fb913",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28451: refactor: Remove unused SER_DISK, SER_NE…",
          "author_name": "Ryan Ofsky",
          "author_login": "ryanofsky",
          "committed_at": "2023-11-30T16:11:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "97d53e90badc01224139a4a4356b934f338568d4",
          "body": "Remove no-longer used libz-dev (from DMG compression).\nFollowup to #28432.\nMissed this in #28932.",
          "is_bot": false,
          "headline": "ci: remove libz-dev from macOS build deps",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-30T15:17:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdb772313c037fd71c7dff6f0801a4de93cf0d26",
          "body": "a4980da1ce5e1947fa73ef7057509a26d2c73cfb guix: remove input labels (fanquake)\n\nPull request description:\n\n  Migrate package definitions to use the newer format for propogated inputs. See https://guix.gnu.org/manual/en/html_node/package-Reference.html#index-inputs_002c-of-packages.\n\n  This change rem\n[…]\nan:\n    lgtm ACK a4980da1ce5e1947fa73ef7057509a26d2c73cfb\n\nTree-SHA512: cbb8ca9613125d4c443124b99a600b44533688f322c8535c9d82fb3bb8de66b46e63c6aafcf2917f169494181ece6efd02e2efaa32ef4f138a520731540d600c",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28965: guix: remove input labels",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-30T15:09:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c7f0e9738337e9e8c9bb114023632d5ac98ef3ae",
          "body": "6d05c4fd138b80168d14a8cf1dbcca43782851af msvc: Specify `boost-date-time` package explicitly (Hennadii Stepanov)\n1f97e51d737c1a5a3e4503db3373a792f87f3bc1 msvc: Update vcpkg manifest baseline up to \"2023.08.09 Release\" (Hennadii Stepanov)\n2d2ef2f14f352438afab2e3251d07fd100be7076 msvc: No need to speci\n[…]\nanquake:\n    ACK 6d05c4fd138b80168d14a8cf1dbcca43782851af\n\nTree-SHA512: c71c46c13ad5a6d39ae72982b7765f690e7391092e4983887a53dceeee507c8fc256e887351bbe35c051bf88d2babeb283e17a2588ee86ec9020c4ba426bfcd7",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28938: msvc: Update vcpkg manifest",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-30T15:05:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "05d3f8e822280b262b6b384e3a62305853a80883",
          "body": "…ull byte range\n\ne67634ef19db310511a22f461bb1af7edb3d862b fuzz: BIP324: damage ciphertext/aad in full byte range (Sebastian Falbesoner)\n\nPull request description:\n\n  This PR is a tiny improvement for the `bip324_cipher_roundtrip` fuzz target: currently the damaging of input data for decryption (eith\n[…]\noegge:\n    utACK e67634ef19db310511a22f461bb1af7edb3d862b\n\nTree-SHA512: 1bab4df28708e079874feee939beef45eff235215375c339decc696f4c9aef04e4b417322b045491c8aec6e88ec8ec2db564e27ef1b0be352b6ff4ed38bad49a",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28951: fuzz: BIP324: damage ciphertext/aad in f…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-30T15:03:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d80318d21110419f897a359b49e8f07e5a099f53",
          "body": "fad82fea2bef88c9f11e25ca43c7886a2b9b5da2 ci: Reduce use of bash -c (MarcoFalke)\nfafcee48748d4a4ff229ae94d2bc3a73c5c1db22 ci: Rename test script to 03_test_script.sh (MarcoFalke)\n\nPull request description:\n\n  It is confusing to treat commands as a single string. This change is\n  also required to supp\n[…]\n vasild:\n    ACK fad82fea2bef88c9f11e25ca43c7886a2b9b5da2\n\nTree-SHA512: fb79469d809400739e53da203842fda838f2ec9ab8dcd5e622ccd3db651d629161323bfcc04301562f13f5c407e8865036478a4ac7f6b5265dc4dda1a320c23d",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28954: ci: Reduce use of bash -c",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-30T15:02:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c4d47d2c22fcac2c940d3cde47c149c791a08dd4",
          "body": "…`guix shell`\n\n66c4b58e518aff08030b3c879c44af7716110619 guix: switch from guix environment to guix shell (fanquake)\n\nPull request description:\n\n  See https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-environment.html.\n\n  > Deprecation warning: The guix environment command is deprecated\n  \n[…]\narlatan:\n    ACK 66c4b58e518aff08030b3c879c44af7716110619\n\nTree-SHA512: caa3fd2ca8d0f261c50ecdda3728a75389d24d89b51293dedc704ee77ab1342b2bb08ca8c871dcb4646229f056ec86cb15500934ded1b0c501a3ffc25aaa8ae6",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#26077: guix: switch from `guix environment` to …",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-30T14:52:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fa98a097a30bc39f2424c0efd28a7979155faae6",
          "body": null,
          "is_bot": false,
          "headline": "Rename version.h to node/protocol_version.h",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-30T10:28:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa4fbd58169a244c14017c62218e443b18a868ef",
          "body": null,
          "is_bot": false,
          "headline": "Remove unused version.h include",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-30T10:28:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa0ae22ff2c608c94b26c85040c4a1c7e9f7cf90",
          "body": null,
          "is_bot": false,
          "headline": "Remove unused SER_NETWORK, SER_DISK",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-30T10:28:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fae00fe9c25af80024adda33d9077962964269ea",
          "body": null,
          "is_bot": false,
          "headline": "Remove unused CDataStream",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-30T10:27:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa7eb4f5c3d2438f9689cd46b22dcfd50f6bd751",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: Drop unused version from fuzz input format",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-30T10:27:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66c4b58e518aff08030b3c879c44af7716110619",
          "body": "See https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-environment.html.\n\n> Deprecation warning: The guix environment command is deprecated\nin favor of guix shell, which performs similar functions but is more\nconvenient to use. See Invoking guix shell.\n\n> Being deprecated, guix environment\n[…]\nx.git/commit/?id=80edb7df6586464aa40e84e103f0045452de95db\nwhich isn't part of the 1.3.0 release binaries out of the box, but\ninvoking a guix pull, and updating will make it available for all\nbuilders.",
          "is_bot": false,
          "headline": "guix: switch from guix environment to guix shell",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-29T21:24:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f23ba24aa079d68697d475789cd21bd7b5075550",
          "body": null,
          "is_bot": false,
          "headline": "test_submitpackage: only make a chain of 3 txns",
          "author_name": "Greg Sanders",
          "author_login": "instagibbs",
          "committed_at": "2023-11-29T17:56:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e67a345162912ef7c1bfa3c89c7e7c629505f0a3",
          "body": null,
          "is_bot": false,
          "headline": "doc: submitpackage vsize results are sigops-adjusted",
          "author_name": "Greg Sanders",
          "author_login": "instagibbs",
          "committed_at": "2023-11-29T17:56:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b67db52c399089e5d4c4202ebb905794dfd050d0",
          "body": "Behavior prior to this commit allows some transactions to\nenter into the local mempool but not be reported to the user\nwhen encountering a PackageValidationResult::PCKG_TX result.\n\nThis is further compounded with the fact that any transactions\nsubmitted to the mempool during this call would also not\n[…]\nd, and broadcasting every\ntransaction that was found in the mempool after submission.\n\nNote that this also changes fees and vsize to optional,\nwhich should also remove an issue with other-wtxid cases.",
          "is_bot": false,
          "headline": "RPC submitpackage: change return format to allow partial errors",
          "author_name": "Greg Sanders",
          "author_login": "instagibbs",
          "committed_at": "2023-11-29T17:56:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7bc8c5312bf51edd3d85e1599b5d6ae32c8fd7b5",
          "body": "…allet_notifications fuzz target\n\nfab164f342ae089b3a8ccd33e6e3fd6de6e2217e fuzz: Avoid signed-integer-overflow in wallet_notifications fuzz target (MarcoFalke)\n\nPull request description:\n\n  Should avoid\n\n  ```\n  policy/feerate.cpp:29:63: runtime error: signed integer overflow: 77600710321911316 * 14\n[…]\nrunoerg:\n    ACK fab164f342ae089b3a8ccd33e6e3fd6de6e2217e\n\nTree-SHA512: f416828f4394aa7303ee437f141e9bbd23c0e0f1b830e4ef3932338858249ba68a811b9837c5b7ad8c6ab871b6354996434183597c1a910a8d8e8d829693e4b2",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28969: fuzz: Avoid signed-integer-overflow in w…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-29T17:18:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dd73c229763927cddc56b19ef7b1a311ff952a60",
          "body": "…e of Winsock properly\n\nfd4c6a10f2285f16c5d0215eb56a3060441f3ef2 test: Setup networking globally (Hennadii Stepanov)\n\nPull request description:\n\n  On the master branch, when compiling without external signer support, the `bench_bitcoin.exe` does not initialize Winsock DLL that is required, for examp\n[…]\nko:\n    lgtm ACK fd4c6a10f2285f16c5d0215eb56a3060441f3ef2\n\nTree-SHA512: d360eaf776943f7f7a35ed5a5f9f3228d9e3d18eb824e5997cdc8eadddf466abe9f2da4910ee3bb86bf5411061e758259f7e1ec344f234ef7996f1bf8781dcda",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28486: test, bench: Initialize and terminate us…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-29T17:14:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d00d50e78ac97b7e0bbee7ff5446296e8af805b6",
          "body": "faecde9102f2e4199df3ec760f9378b114a87531 fuzz: Fix nullptr deref in scriptpubkeyman (MarcoFalke)\n\nPull request description:\n\n  This should fix the UB that was found by review (https://github.com/bitcoin/bitcoin/pull/28578#discussion_r1404246109) and by fuzzing (https://bugs.chromium.org/p/oss-fuzz/i\n[…]\nnoerg:\n    crACK faecde9102f2e4199df3ec760f9378b114a87531\n\nTree-SHA512: ff726ed632d8d369c96d316bafebe87ff385e47b74b1d1da79409ddf296559eb991431883858057527e5df2414c01812ecbc99c21c69020228b0747f32b03121",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28968: fuzz: Fix nullptr deref in scriptpubkeyman",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-29T17:07:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fab164f342ae089b3a8ccd33e6e3fd6de6e2217e",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: Avoid signed-integer-overflow in wallet_notifications fuzz target",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-29T16:12:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "faecde9102f2e4199df3ec760f9378b114a87531",
          "body": "Also, add missing includes to scriptpubkeyman.\n\nAlso, export dependecies of the BasicTestingSetup from setup_common.h,\nto avoid having to include them when setup_common.h is already included.",
          "is_bot": false,
          "headline": "fuzz: Fix nullptr deref in scriptpubkeyman",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-29T15:04:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fad82fea2bef88c9f11e25ca43c7886a2b9b5da2",
          "body": "It is confusing to treat commands as a single string. This change is\nalso required to support paths and strings with spaces in them in the\nfuture.\n\nThis requires replacing TEST_RUNNER_ENV with a global export, because it\nno longer works. See:\n\n```bash\n$ export ENV=\"A=1\" && $ENV ls\nbash: A=1: command\n[…]\nci/test/03_test_script.sh: line 166: BITCOIND=bitcoin-node: command not found\n\nhttps://github.com/bitcoin/bitcoin/pull/28954/checks?check_run_id=19096858944\nhttps://cirrus-ci.com/task/6718317604372480",
          "is_bot": false,
          "headline": "ci: Reduce use of bash -c",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-29T14:13:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8cf2137dbeaa681f0178f1e2fd70b639e6d4f717",
          "body": "fa02c08c93e5867b7ea07d79ca1c0917dcde88e0 refactor: Use Txid in CMerkleBlock (MarcoFalke)\n\nPull request description:\n\n  This should also fix a gcc-13 compiler warning, see https://github.com/bitcoin/bitcoin/pull/28922#discussion_r1407856376\n\n  ```\n  rpc/txoutproof.cpp: In lambda function:\n  rpc/txout\n[…]\noegge:\n    reACK fa02c08c93e5867b7ea07d79ca1c0917dcde88e0\n\nTree-SHA512: 2e6837b9d0c90bd6e9d766330e7086d68c6ec80bb27fe2cfc4702b251b00d91a79f8bfbc76d998cbcd90bee5317402cf617f61099eee96d94e7ac8f37ba7a642",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28958: refactor: Use Txid in CMerkleBlock",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-29T10:55:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "453c9ca59014b1aef85cb979cfb4fdb15518fc38",
          "body": "…:processBlockTx suppression\n\nfa9dc92c5362431852a9cfe152c6fdb819710eb4 test: Add missing CBlockPolicyEstimator::processBlockTx suppression (MarcoFalke)\n\nPull request description:\n\n  Fixes https://github.com/bitcoin/bitcoin/pull/28865#discussion_r1408954537\n\n  ```\n  # FUZZ=policy_estimator UBSAN_OPTI\n[…]\noegge:\n    utACK fa9dc92c5362431852a9cfe152c6fdb819710eb4\n\nTree-SHA512: 3898c17c928ecc2bcc8c7086359e9ae00da2197b4d8e10c7bf6d12415326c9bca3ef6e1d8d3b83172ccfa604ce7e7371415262ba705225f9ea4da8b1a7eb0306",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28966: test: Add missing CBlockPolicyEstimator:…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-29T10:23:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fa9dc92c5362431852a9cfe152c6fdb819710eb4",
          "body": null,
          "is_bot": false,
          "headline": "test: Add missing CBlockPolicyEstimator::processBlockTx suppression",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-29T09:51:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16b5b4b674414c41f34b0d37e15a16521fb08013",
          "body": "…pat/assumptions.h\n\nfa1a38470697796a1a67397a815c8f8256f59224 Move compat.h include from system.h to system.cpp (MarcoFalke)\n88887531b704f3943fdb33abbdd5378ecfeee14f Move compat/assumptions.h include to one place that actually needs it (MarcoFalke)\n77774110f4dd591a71441851813d59c03c9e3c78 Remove __cp\n[…]\n theuni:\n    ACK fa1a38470697796a1a67397a815c8f8256f59224\n\nTree-SHA512: f8b6db84be5d8844a2267345c0b1405fcbc39b8b5eeaa24db5b8412a74145fe44cf188b6b0c39cc2b062690ed37ca5b4662473484afe28dbec6469e79961389b",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28579: refactor: Remove redundant checks in com…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-11-28T21:51:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "75462b39d2e35ce2ee585453f905445349103e30",
          "body": "…ameter is passed to getnetworkhashps RPC\n\n9ac114e5cd9d8ade3a1d9f3d76a08ff59a3f1658 Throw error if invalid parameters passed to getnetworkhashps RPC endpoint (Jameson Lopp)\n\nPull request description:\n\n  When writing some scripts that iterated over many blocks to generate hashrate estimates I realize\n[…]\nchow101:\n    ACK 9ac114e5cd9d8ade3a1d9f3d76a08ff59a3f1658\n\nTree-SHA512: eefb465c2dd654fc48267f444e1809597ec5363cdd131ea9ec812458fed1e4bffbbbb0617d74687c9f7bb16274b598d8292f5eeb7953421e5d2a8dc2cc081f2b",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28554: bugfix: throw an error if an invalid par…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-11-28T21:26:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "535424a10b4462a813b9797f3c607b97a0ca9b19",
          "body": "…icitly copyable\n\n705e3f1de00bf30d728addd52a790a139d948e32 refactor: Make CTxMemPoolEntry only explicitly copyable (TheCharlatan)\n\nPull request description:\n\n  This has the goal of prohibiting users from accidentally creating runtime failures, e.g. by interacting with iterator_to with a copied entry\n[…]\nlsadeeq:\n    ACK 705e3f1de00bf30d728addd52a790a139d948e32\n\nTree-SHA512: 62056905c679c919d00f9ae065ed66ac986e7e7062015aea542843d8deecda57104d7a68d002f7b20afa3164f8e9215d2d2d002c167224129540e3b1bd0712cc",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28903: refactor: Make CTxMemPoolEntry only expl…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-11-28T19:45:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "30a055782908702c012bdd5f6a6d41458bf22dfa",
          "body": "…patible with --v2transport\n\n35fb9930adb3501b29d3ad20d2e74c0114f2bcbe test: enable v2 transport for p2p_timeouts.py (Martin Zumsande)\n2c1669c37a9759e15ff5f4e340aeaa8778a81b9a test: enable v2 transport for rpc_net.py (Sebastian Falbesoner)\ncc961c26956859850202f56191981b0306a65fcf test: enable v2 tran\n[…]\nb29d3ad20d2e74c0114f2bcbe\n  stratospher:\n    ACK 35fb993.\n\nTree-SHA512: 80dc0bf211fa525ff1d092043aea9f222f14c02e5832a548fb8b83b9ede1fcee03c5e8ade0d05c331bdaa492af9c1cf3d0f0b15b846673c6eacea82dd4cefbc3",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28805: test: Make existing functional tests com…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-11-28T19:16:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fd4c6a10f2285f16c5d0215eb56a3060441f3ef2",
          "body": null,
          "is_bot": false,
          "headline": "test: Setup networking globally",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-28T19:11:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe4e83f50d5b0e7af9a86836e13ea73c0f4732b9",
          "body": "…thout nVersion\n\nfae76a1f2ac0b352cdd708e6d57f8605bf40112e scripted-diff: Use DataStream in most places (MarcoFalke)\nfac39b56b723f79ba0aa9570708a1d4a600f4e12 refactor: SpanReader without nVersion (MarcoFalke)\n\nPull request description:\n\n  The serialize version is unused, so remove it. This also allow\n[…]\n Code review ACK fae76a1f2ac0b352cdd708e6d57f8605bf40112e\n\nTree-SHA512: 3b487dba8ea380f1eacff9fdfb9197f025dbc30906813d3f4c3e6f1e9e4d9f2a169c6f163f51d135e18af538be78e2d2b13d694073ad25c5762980ae971a4c83",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28912: refactor: VectorWriter and SpanReader wi…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-28T17:35:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a4980da1ce5e1947fa73ef7057509a26d2c73cfb",
          "body": "Migrate package definitions to use the new format for propogated inputs.\nSee\nhttps://guix.gnu.org/manual/en/html_node/package-Reference.html#index-inputs_002c-of-packages.\n\nSee also: https://guix.gnu.org/blog/2021/the-big-change/",
          "is_bot": false,
          "headline": "guix: remove input labels",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-28T16:50:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa02c08c93e5867b7ea07d79ca1c0917dcde88e0",
          "body": null,
          "is_bot": false,
          "headline": "refactor: Use Txid in CMerkleBlock",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-28T16:49:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31ce305d46a191621aaa78a73fa4bbc7e58d8ed0",
          "body": "fa825975b57bc5c4323e5d6f4bc8cd2b8189e238 fuzz: Avoid timeout in process_messages (MarcoFalke)\n\nPull request description:\n\n  Reduce the number of messages per fuzz input. There should be no reason to have more messages than that.\n\n  This should also avoid timeouts, such as https://bugs.chromium.org/p\n[…]\noegge:\n    utACK fa825975b57bc5c4323e5d6f4bc8cd2b8189e238\n\nTree-SHA512: eeff732f7b0bd9a71f23aeecbf813d31fe34d355b906fd0384a43075cbc3cebc46a26df741b0f337208d8b33b3e28210c9b9437e2eed77844f03131bb8f5f2a1",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28952: fuzz: Avoid timeout in process_messages",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-28T16:24:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "26b7bcf10ebcc055cf6226629498a09986ce0e6c",
          "body": "…itness (28107 follow-up)\n\naf1d2ff88344e1545ac8d9ad09f8e37e264da712 [primitives] Precompute result of CTransaction::HasWitness (dergoegge)\n\nPull request description:\n\n  This addresses https://github.com/bitcoin/bitcoin/pull/28107#discussion_r1364961590 from #28107.\n\nACKs for top commit:\n  theStack:\n\n[…]\narlatan:\n    ACK af1d2ff88344e1545ac8d9ad09f8e37e264da712\n\nTree-SHA512: a77654ae429d0d7ce12daa309770e75beec4f8984734f80ed203156199425af43b50ad3d8aab85a89371a71356464ebd4503a0248fd0103579adfc74a55aaf51",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28766: Improve peformance of CTransaction::HasW…",
          "author_name": "Andrew Chow",
          "author_login": "achow101",
          "committed_at": "2023-11-28T13:44:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fafcee48748d4a4ff229ae94d2bc3a73c5c1db22",
          "body": null,
          "is_bot": false,
          "headline": "ci: Rename test script to 03_test_script.sh",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-28T12:25:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fae76a1f2ac0b352cdd708e6d57f8605bf40112e",
          "body": "The remaining places are handled easier outside a scripted-diff.\n\n-BEGIN VERIFY SCRIPT-\n sed --regexp-extended -i 's/CDataStream ([0-9a-zA-Z_]+)\\(SER_[A-Z]+, [A-Z_]+_VERSION\\);/DataStream \\1{};/g' $( git grep -l CDataStream)\n sed -i 's/, CDataStream/, DataStream/g' src/wallet/walletdb.cpp\n-END VERIFY SCRIPT-",
          "is_bot": false,
          "headline": "scripted-diff: Use DataStream in most places",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-28T11:42:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fac39b56b723f79ba0aa9570708a1d4a600f4e12",
          "body": "The field is unused, so remove it.\n\nThis is also required for future commits.",
          "is_bot": false,
          "headline": "refactor: SpanReader without nVersion",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-28T11:42:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c252a0fc0f4dc7d262b971a5e7ff01508159193b",
          "body": "…e version and type\n\nfa79a881ce0537e1d74da296a7513730438d2a02 refactor: P2P transport without serialize version and type (MarcoFalke)\nfa9b5f4fe32c0cfe2e477bb11912756f84a52cfe refactor: NetMsg::Make() without nVersion (MarcoFalke)\n66669da4a5ca9edf2a40d20879d9a8aaf2b9e2ee Remove unused Make() overload\n[…]\ntowns:\n    reACK fa79a881ce0537e1d74da296a7513730438d2a02\n\nTree-SHA512: 785b413580d980f51f0d4f70ea5e0a99ce14cd12cb065393de2f5254891be94a14f4266110c8b87bd2dbc37467676655bce13bdb295ab139749fcd8b61bd5110",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28892: refactor: P2P transport without serializ…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-28T11:24:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dc369af3f5146282f82dddbb96a56a04c2c551a6",
          "body": "ecb46837e7f4fc3a2860ba14f2d3034859e34900 Change petertodd seeds to petertodd.net (Peter Todd)\n\nPull request description:\n\n  I changed my DNS seeds to .net from .org to avoid issues with DNS blacklisting, that falsely thinks my domain name is pointing to IP addresses with malware and similar things. \n[…]\ne34900 - tested that usable addresses are being returned.\n\nTree-SHA512: 285f7101198ea8e2e20900c17b38aa86db812308c6985d762e5fa8b6f1bc5b0d2d278da841fe2e10cf32e3fe18d4c984bc8cf195bd8d40c86b092b545c62acfa",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28936: Change petertodd seeds to petertodd.net",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-28T10:53:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c1b7332441f9b145b38db04a298c58ea0d7cbe1d",
          "body": "70100f8584c762cbc6cbc09d05cc4e9d22a3ec75 Revert \"ci: Avoid toolset ambiguity that MSVC can't handle\" (Hennadii Stepanov)\n1a889f7ea043fc61865511a0d143321bbdc540a5 ci: Set MSVC toolset version explicitly (Hennadii Stepanov)\n4335e553596a0ad5b136d3aa9fc898c906d226b4 ci: Run vcpkg with path prefix (Henna\n[…]\ncc4e9d22a3ec75 since I've reviewed to be reverted #28905.\n\nTree-SHA512: 121a8e40c728060526f380b7946211b5d4eca8821bfe62e6451642ffdf95fe9ab7101e0cffa7f4a777bc9cf94278bb50c1b40b71768e1ac39801bb4831afeb90",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28934: ci: Set MSVC toolset version explicitly",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-28T10:51:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fa825975b57bc5c4323e5d6f4bc8cd2b8189e238",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: Avoid timeout in process_messages",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-28T08:58:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e67634ef19db310511a22f461bb1af7edb3d862b",
          "body": "Currently the damaging of input data for decryption (either ciphertext\nor aad) only ever happens in the lower nibble within the byte at the\ndamage position, as the bit position for the `damage_val` byte was\ncalculated with `damage_bit & 3` (corresponding to `% 4`) rather than\n`damage_bit & 7` (corresponding to the expected `% 8`).",
          "is_bot": false,
          "headline": "fuzz: BIP324: damage ciphertext/aad in full byte range",
          "author_name": "Sebastian Falbesoner",
          "author_login": "theStack",
          "committed_at": "2023-11-28T01:30:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "794f971607f28456e24fa2d39e4cfbbc8b97eb71",
          "body": "fa15861763df71e788849b587883b3c16bb12229 fuzz: Faster wallet_notifications target (MarcoFalke)\nfa971c09f24887d4848082c551d4eed98e7f4edc Export assert from util/check.h (MarcoFalke)\n\nPull request description:\n\n  Avoid read/write from storage to speed the target up.\n\nACKs for top commit:\n  dergoegge:\n\n[…]\nnoerg:\n    reACK fa15861763df71e788849b587883b3c16bb12229\n\nTree-SHA512: 90aa856ae31db27a55ef0dfa2cb303d98e6c4d530d2937ad8d808c5f4048389b7ed3c78c27df92db8fe29531b5530aecbb06a0e8274dda424149f46cd6c19f98",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28933: fuzz: Faster wallet_notifications target",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-27T17:35:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fa15861763df71e788849b587883b3c16bb12229",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: Faster wallet_notifications target",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-27T11:06:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f9fd11680af43b0d0d80a6aa4f315aa04afeac4",
          "body": "…lags target\n\nfaf1fb207fb6e9a12c864074f8c40d5922d93ff4 Fix IWYU for the script_flags fuzz target (MarcoFalke)\nfa71285b7301b2993bcc68525649716afbd9abf8 fuzz: Limit fuzz buffer size in script_flags target (MarcoFalke)\nfa6b87b9ee661d8ef4ec244d230ebdeb7d1841a0 fuzz: CDataStream -> DataStream in script_f\n[…]\nnoerg:\n    utACK faf1fb207fb6e9a12c864074f8c40d5922d93ff4\n\nTree-SHA512: 9301917b353f7409e448b6fd3635de19330856e0742431db5ef04e62873501b5b4cd6cb78ad81ada2747fa2bdae033115b5951d10489dd5d0d320426c8b96bee",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28931: fuzz: Limit fuzz buffer size in script_f…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-26T12:22:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d05c4fd138b80168d14a8cf1dbcca43782851af",
          "body": "Compilation now succeeds only by coincidence, as the `boost-date-time`\npackage is installed as a dependency of the `boost-process` one.",
          "is_bot": false,
          "headline": "msvc: Specify `boost-date-time` package explicitly",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-25T18:27:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f97e51d737c1a5a3e4503db3373a792f87f3bc1",
          "body": "Dependency changes (2023.01.09 --> 2023.08.09):\n- berkeleydb: 4.8.30#8 --> 4.8.30#9\n- boost: 1.81.0 --> 1.82.0#2\n- sqlite3: 3.40.0#1 --> 3.42.0#1\n- zeromq: 4.3.4#6 --> 2023-06-20#1",
          "is_bot": false,
          "headline": "msvc: Update vcpkg manifest baseline up to \"2023.08.09 Release\"",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-25T18:27:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d2ef2f14f352438afab2e3251d07fd100be7076",
          "body": null,
          "is_bot": false,
          "headline": "msvc: No need to specify the default feature for `libevent` package",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-25T18:27:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ecb46837e7f4fc3a2860ba14f2d3034859e34900",
          "body": "I changed my DNS seeds to .net from .org to avoid issues with DNS blacklisting,\nthat falsely thinks my domain name is pointing to IP addresses with malware and\nsimilar things. Right now there are CNAME records, so the .org addresses still\nwork. But eventually, if needed, I'll remove those CNAME's.",
          "is_bot": false,
          "headline": "Change petertodd seeds to petertodd.net",
          "author_name": "Peter Todd",
          "author_login": "petertodd",
          "committed_at": "2023-11-25T13:59:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70100f8584c762cbc6cbc09d05cc4e9d22a3ec75",
          "body": "This reverts commit 91d5bd8ac9a28725c735f8e6900bc85673bb190a.",
          "is_bot": false,
          "headline": "Revert \"ci: Avoid toolset ambiguity that MSVC can't handle\"",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-24T15:47:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a889f7ea043fc61865511a0d143321bbdc540a5",
          "body": "This change avoids toolset incompatibilities that cause linker errors.",
          "is_bot": false,
          "headline": "ci: Set MSVC toolset version explicitly",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-24T15:47:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4335e553596a0ad5b136d3aa9fc898c906d226b4",
          "body": "The GHA VS installation includes its own vcpkg package manager, which is\navailable since VS 17.6. This change avoids any ambiguity about which\ncopy of vcpkg we run.",
          "is_bot": false,
          "headline": "ci: Run vcpkg with path prefix",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-24T15:40:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5a271334ca81a6adcb1c608d85c83621a9eae47",
          "body": "9e58c5bcd96e7ff2062274868814ccae0626589e Use Txid in COutpoint (dergoegge)\n\nPull request description:\n\n  This PR changes the type of the hash of a transaction outpoint from `uint256` to `Txid`.\n\nACKs for top commit:\n  Sjors:\n    ACK 9e58c5bcd96e7ff2062274868814ccae0626589e\n  stickies-v:\n    ACK 9e58\n[…]\narlatan:\n    ACK 9e58c5bcd96e7ff2062274868814ccae0626589e\n\nTree-SHA512: 58f61ce1c58668f689513e62072a7775419c4d5af8f607669cd8cdc2e7be9645ba14af7f9e2d65da2670da3ec1ce7fc2a744037520caf799aba212fd1ac44b34",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28922: Use Txid in COutpoint",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-24T14:41:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c0196bec98d4024d4f4d29b10ccab0d808e8ad4e",
          "body": "…OS build deps\n\n0ffcc5b680b92cf921fc11afb05e4a3607572d41 ci: remove python3-setuptools from mac build deps (fanquake)\n\nPull request description:\n\n  Remove no-longer used python-setuptools.\n  Followup to #28432.\n  Related to #28845.\n\nACKs for top commit:\n  hebasto:\n    ACK 0ffcc5b680b92cf921fc11afb05\n[…]\narlatan:\n    ACK 0ffcc5b680b92cf921fc11afb05e4a3607572d41\n\nTree-SHA512: c3ac441c85f6f203414e5e2ad0c453ee35fa4765c72c5ff79699aa622c0db767651890ac0c8507f5ed18e18e3b0e23f2952f677476424cfda4df93647a367c26",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28932: ci: remove `python3-setuptools` from mac…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-24T13:38:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fa971c09f24887d4848082c551d4eed98e7f4edc",
          "body": "This avoids having to include both headers when assert and Assert are\nused at the same time.",
          "is_bot": false,
          "headline": "Export assert from util/check.h",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-24T12:11:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ffcc5b680b92cf921fc11afb05e4a3607572d41",
          "body": null,
          "is_bot": false,
          "headline": "ci: remove python3-setuptools from mac build deps",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-23T17:52:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "930bcfd4cd2c9f95abb4e202d78b257611e97f33",
          "body": "…join\" tx\n\nfa20f8919c4fe616c24325ed79a46f3b6cafcf58 test: Add gettransaction test for \"coin-join\" tx (MarcoFalke)\n\nPull request description:\n\nACKs for top commit:\n  furszy:\n    utACK fa20f8919c4f\n\nTree-SHA512: 6e92455ef478d6bf2c544910402be9046698ded66f1f68d5fe5b989aafc20ba0537d362331e0e653595bca553166f6197fe548bdd0bcf295743775b8afb663a1",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#18919: test: Add gettransaction test for \"coin-…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-23T17:49:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4073c5395ecc1a1fc85147a4bd7f469327c53de",
          "body": "…bKeyMan`\n\n47e5c9994c087d1826ccc0d539e916845b5648fb fuzz: add target for `DescriptorScriptPubKeyMan` (brunoerg)\n641dddf01812407d163520def83f5975413691e4 fuzz: create ConsumeCoins (brunoerg)\n2e1833ca1341ab4dc92508a59181aa6c7c38db88 fuzz: move `MockedDescriptorConverter` to `fuzz/util` (brunoerg)\n\nPul\n[…]\nrgoegge:\n    ACK 47e5c9994c087d1826ccc0d539e916845b5648fb\n\nTree-SHA512: 519acca6d7b7a3a0bfc031441b02d5980b12bfb97198bd1958a83cd815ceb9eb1499a48a3f0a7fe20e5d06d83b89335d987376fc0a014e2106b0bc0e9838dd02",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28578: fuzz: add target for `DescriptorScriptPu…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-23T17:34:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "faf1fb207fb6e9a12c864074f8c40d5922d93ff4",
          "body": "Also, export script_error.h from interpreter.h, because there should\nrarely be a case where script_error.h is included without interpreter.h",
          "is_bot": false,
          "headline": "Fix IWYU for the script_flags fuzz target",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-23T16:57:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa71285b7301b2993bcc68525649716afbd9abf8",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: Limit fuzz buffer size in script_flags target",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-23T16:56:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa6b87b9ee661d8ef4ec244d230ebdeb7d1841a0",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: CDataStream -> DataStream in script_flags",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-23T16:50:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa20f8919c4fe616c24325ed79a46f3b6cafcf58",
          "body": null,
          "is_bot": false,
          "headline": "test: Add gettransaction test for \"coin-join\" tx",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-23T13:11:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa79a881ce0537e1d74da296a7513730438d2a02",
          "body": null,
          "is_bot": false,
          "headline": "refactor: P2P transport without serialize version and type",
          "author_name": "MarcoFalke",
          "author_login": null,
          "committed_at": "2023-11-23T12:43:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddc4b9850af363fbd446ca0540497c69cd91abe5",
          "body": "…trinsics\" test\n\n228d6a2969e4fcee573c9df7aad31550eab9c8d4 build: Fix regression in \"ARMv8 CRC32 intrinsics\" test (Hennadii Stepanov)\n\nPull request description:\n\n  In the master branch, the `aarch64` binaries lack support for CRC32 intrinsics.\n\n  The `vmull_p64` is a part of the Crypto extensions fro\n[…]\narlatan:\n    ACK 228d6a2969e4fcee573c9df7aad31550eab9c8d4\n\nTree-SHA512: 4c27ca8acb953bf56e972d907a282ee19e3f30f7a4bf8a9822395fe0e28977cd6233e8b65b4a25cc1d3d5ff6a796d7af07653e18531c44ee3efaff1563d96d32",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28919: build: Fix regression in \"ARMv8 CRC32 in…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-22T17:20:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5d13b9586eb97f59d9bb53aae1d8c27dc052b61e",
          "body": "f95af98128f17002bf137a48441167020f3ef9bb guix: default ssp for Windows GCC (fanquake)\n95d55b96c2cfd2a0d5a246d4a9eff9d0744ba223 guix: remove ssp workaround from Windows GCC (fanquake)\n8f43302a0a1bb79129933e4cc174bf8d8d59ec15 build: remove explicit libssp linking from Windows build (fanquake)\n\nPull re\n[…]\narlatan:\n    ACK f95af98128f17002bf137a48441167020f3ef9bb\n\nTree-SHA512: 71169ec513cfe692dfa7741d2bf37b45da05627c0af1cbd50cf8c3c04cc21c4bf88f3284532bddc1e3e648391ec78dbaca5170987a13c21ac204a7bcaf27f349",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28461: build: Windows SSP roundup",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-22T17:17:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "172cd92620167cc437f6d208a20f2698f15835a9",
          "body": "…early exit\n\nfa01f884d3ac128f09bfa57ac2648a19a19d854e ci: Add missing COPY for ./test/lint/test_runner (MarcoFalke)\nfaff3e3b4604519375e122c103b156ec13eef80f lint: Report all lint errors instead of early exit (MarcoFalke)\n\nPull request description:\n\n  `all-lint.py` currently collects all failures. Ho\n[…]\nan:\n    lgtm ACK fa01f884d3ac128f09bfa57ac2648a19a19d854e\n\nTree-SHA512: c0f3110f2907d87e29c755e3b77a67dfae1f8a25833fe6ef8f2f2c58cfecf1aa46f1a20881576b62252b04930140a9e416c78b4edba0780d3c4fa7aaebabba81",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28862: lint: Report all lint errors instead of …",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-22T17:00:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a238356823bd261c4bbada9d9b8f9c850b6ba79e",
          "body": "…nproto deprecation warnings\n\n21bfee0720ba72935d4f9fc4c2a2887ae5b54092 depends: bump libmultiprocess to fix capnproto deprecation warnings (Ryan Ofsky)\n\nPull request description:\n\n  This incorporates PR chaincodelabs/libmultiprocess#88 and reverts the NO_WERROR CI workaround added in #28735\n\n  Upstr\n[…]\nps://github.com/chaincodelabs/libmultiprocess repository.\n\nTree-SHA512: b5addb0deed694eeec62a0ae08b4715a811110201f39f3e6cadee8fc4e6231b0e66c844a98512072a1445bac122ab561dc1711e27fb4d7ac5c08ac46780a4acf",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28907: depends: bump libmultiprocess to fix cap…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-22T11:48:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4374a87879025bc45b7ad6586646a2deb3dfd6bf",
          "body": "…ections to addnode peers\n\n5e7cc4144bb09cfde48ba5bc055a2da3ca4252d1 test: add unit test for CConnman::AddedNodesContain() (Jon Atack)\ncc627169206fe902157806d88fcaf2b05701c38d p2p: do not make automatic outbound connections to addnode peers (Jon Atack)\n\nPull request description:\n\n  to allocate our li\n[…]\nggero:\n    utACK 5e7cc4144bb09cfde48ba5bc055a2da3ca4252d1\n\nTree-SHA512: 2438c3ec92e98aebca2a0da960534e4655a9c6e1192a24a085fc01326d95cdb1b67d8c44e4ee706bc1d8af8564126d446a21b5579dcbec61bdea5fce2f0115ee",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28895: p2p: do not make automatic outbound conn…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-22T11:47:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ca041fc4ab891c92f3de156240e1137d7fab0f32",
          "body": "4eb2a9ea4b6262bec0bc7c20cb3e684ea75caf42 streams: Drop unused CAutoFile (Anthony Towns)\ncde9a4b137e93f1548dffac9b396ca0b472b6187 refactor: switch from CAutoFile to AutoFile (Anthony Towns)\nbbd4646a2ef514c31570ca9d1475fc9ddb35bdfd blockstorage: switch from CAutoFile to AutoFile (Anthony Towns)\nc72ddf\n[…]\nckies-v:\n    ACK 4eb2a9ea4b6262bec0bc7c20cb3e684ea75caf42\n\nTree-SHA512: 1a68c42fdb725ca4bf573e22794fe7809fea764a5f97ecb33435add3c609d40f336038fb22ab1ea72567530efd39678278c9016f92ed04891afdb310631b4e82",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28904: Drop CAutoFile",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-22T11:24:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3dca308bd77cae6489e325e19472338a525def6e",
          "body": "… OpenBSD\n\n007d6f0e85bc329040bb405ef6016339518caa66 test: fix `AddNode` unit test failure on OpenBSD (Sebastian Falbesoner)\n\nPull request description:\n\n  On OpenBSD 7.4, the following check of the unit test `test_addnode_getaddednodeinfo_and_connection_detection` currently fails:\n  ```\n  BOOST_CHECK\n[…]\n vasild:\n    ACK 007d6f0e85bc329040bb405ef6016339518caa66\n\nTree-SHA512: 8ab8393c490e1ecc140e8ff74f6fa4d26d0dd77e6a77a241cd198314b8c5afee7422f95351ca05f4c1742433dab77016a8ccb8d28062f8edd4b703a918a2bbda",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28891: test: fix `AddNode` unit test failure on…",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-22T11:18:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e9beaa749c998ad86e97c98025125cafeec6c9de",
          "body": "…correct alignment\n\nd5b4c0b69e543de51bb37d602d488ee0949ba185 pool: change memusage_test to use int64_t, add allocation check (Martin Leitner-Ankerl)\nce881bf9fcb7c30bb1fafd6ce38844f4f829452a pool: make sure PoolAllocator uses the correct alignment (Martin Leitner-Ankerl)\n\nPull request description:\n\n \n[…]\n:\n    Tested ACK d5b4c0b69e543de51bb37d602d488ee0949ba185\n\nTree-SHA512: 4446793fad6d56f0fe22e09ac9ade051e86de11ac039cd61c0f6b7f79874242878a6a46a2c76ac3b8f1d53464872620d39139f54b1471daccad26d6bb1ae8ca1",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28913: coins: make sure PoolAllocator uses the …",
          "author_name": "fanquake",
          "author_login": "fanquake",
          "committed_at": "2023-11-22T11:15:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "91504cbe0de2b74ef1aa2709761aaf0597ec66a2",
          "body": "This ensures that the most recent fee estimation data is used for the\nfee estimation with `estimateSmartfee` and `estimaterawfee` RPC's.",
          "is_bot": false,
          "headline": "rpc: `SyncWithValidationInterfaceQueue` on fee estimation RPC's",
          "author_name": "ismaelsadeeq",
          "author_login": "ismaelsadeeq",
          "committed_at": "2023-11-22T10:48:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "714523918ba2b853fc69bee6b04a33ba0c828bf5",
          "body": "…ace` notifications\n\n`CBlockPolicyEstimator` will implement `CValidationInterface` and\nsubscribe to its notification to process transactions added and removed\nfrom the mempool.\n\nRe-delegate calculation of `validForFeeEstimation` from validation to fee estimator.\n\nAlso clean up the validForFeeEstimation arg thats no longer needed in `CTxMempool`.\n\nCo-authored-by: Matt Corallo <git@bluematt.me>",
          "is_bot": false,
          "headline": "tx fees, policy: CBlockPolicyEstimator update from `CValidationInterf…",
          "author_name": "ismaelsadeeq",
          "author_login": "ismaelsadeeq",
          "committed_at": "2023-11-22T10:48:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dff5ad3b9944cbb56126ba37a8da180d1327ba39",
          "body": "…ool`\n\nCreate a new struct `NewMempoolTransactionInfo` that will be used as the new parameter of\n`TransactionAddedToMempool` callback.",
          "is_bot": false,
          "headline": "CValidationInterface: modify the parameter of `TransactionAddedToMemp…",
          "author_name": "ismaelsadeeq",
          "author_login": "ismaelsadeeq",
          "committed_at": "2023-11-22T10:48:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91532bd38223d7d04166e05de11d0d0b55e60f13",
          "body": "Update `processBlock` parameter to reference to a vector of `RemovedMempoolTransactionInfo`.",
          "is_bot": false,
          "headline": "tx fees, policy: update `CBlockPolicyEstimator::processBlock` parameter",
          "author_name": "ismaelsadeeq",
          "author_login": "ismaelsadeeq",
          "committed_at": "2023-11-22T10:48:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bfcd401368fc0dc43827a8969a37b7e038d5ca79",
          "body": "…ace`\n\nThis commit adds a new callback `MempoolTransactionsRemovedForBlock` which notify\nits listeners of the transactions that are removed from the mempool because a new\nblock is connected, along with the block height the transactions were removed.\nThe transactions are in `RemovedMempoolTransaction\n[…]\n fields similar to `RemovedMempoolTransactionInfo`,\nwill be added in a later commit, create a struct `TransactionInfo` with all similar fields.\nThey can both have a member with type `TransactionInfo`.",
          "is_bot": false,
          "headline": "CValidationInterface, mempool: add new callback to `CValidationInterf…",
          "author_name": "ismaelsadeeq",
          "author_login": "ismaelsadeeq",
          "committed_at": "2023-11-22T10:48:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0889e07987294d4ef2814abfca16d8e2a0c5f541",
          "body": null,
          "is_bot": false,
          "headline": "tx fees, policy: cast with static_cast instead of C-Style cast",
          "author_name": "ismaelsadeeq",
          "author_login": "ismaelsadeeq",
          "committed_at": "2023-11-22T10:48:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0e3eb7549d2ba4dd3af12b9ce65e29158f59078",
          "body": "…tion\n\nIf the removal reason of a transaction is BLOCK, then the `removeTx`\nboolean argument should be true.\n\nBefore this PR, `CBlockPolicyEstimator` have to complete updating the fee stats\nbefore the mempool clears that's why having removeTx call outside reason!= `BLOCK`\nin `addUnchecked` was not a\n[…]\nl might\nclear before we update the `CBlockPolicyEstimator` fee stats.\nTransactions that are removed for `BLOCK` reasons will also be incorrectly removed from\n`CBlockPolicyEstimator` stats as failures.",
          "is_bot": false,
          "headline": "tx fees, policy: bugfix: move `removeTx` into reason != `BLOCK` condi…",
          "author_name": "ismaelsadeeq",
          "author_login": "ismaelsadeeq",
          "committed_at": "2023-11-22T10:48:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "640b45053020cbbd0af4f4b53ed1b742b6232fb2",
          "body": "710da28c72259e1054bb63d2d81a8f3aea4c9000 ci: Switch from `apt` to `apt-get` (Hennadii Stepanov)\na6cc059ea50b3629a287f66be3658e766b6ddd47 ci: Update apt cache (Hennadii Stepanov)\n\nPull request description:\n\n  This PR aims to fix the recent errors in the \"test each commit\" CI job.\n\nACKs for top commit\n[…]\nadeeq:\n    utACK 710da28c72259e1054bb63d2d81a8f3aea4c9000\n\nTree-SHA512: b42340aea00e80f791000e19791629f27df2da98adefb839cb4389d81b5eee094089ea5092a2d7b56b3990683a72e4d2fa986fc86c823c7245649af37873b790",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28925: ci: Update apt cache",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-22T10:43:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "710da28c72259e1054bb63d2d81a8f3aea4c9000",
          "body": null,
          "is_bot": false,
          "headline": "ci: Switch from `apt` to `apt-get`",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-22T10:02:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6cc059ea50b3629a287f66be3658e766b6ddd47",
          "body": null,
          "is_bot": false,
          "headline": "ci: Update apt cache",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-22T10:01:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e58c5bcd96e7ff2062274868814ccae0626589e",
          "body": null,
          "is_bot": false,
          "headline": "Use Txid in COutpoint",
          "author_name": "dergoegge",
          "author_login": "dergoegge",
          "committed_at": "2023-11-21T13:15:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "daa56f7f665183bcce3df146f143be37f33c123e",
          "body": "…n't handle\n\n91d5bd8ac9a28725c735f8e6900bc85673bb190a ci: Avoid toolset ambiguity that MSVC can't handle (Hennadii Stepanov)\n\nPull request description:\n\n  This PR introduces a workaround, which is similar to the one removed in https://github.com/bitcoin/bitcoin/pull/28796, required to work with the \n[…]\nn4btc:\n    utACK 91d5bd8ac9a28725c735f8e6900bc85673bb190a\n\nTree-SHA512: 13c325a24e09cdaa26b04a1c8c9968fe3525d1c0c887d42739c51fdb62c184667367cf56d0e7f64ff616b1f62998f28197b95291164418bb29c576b3f738a6a7",
          "is_bot": false,
          "headline": "Merge bitcoin/bitcoin#28905: ci: Avoid toolset ambiguity that MSVC ca…",
          "author_name": "Hennadii Stepanov",
          "author_login": "hebasto",
          "committed_at": "2023-11-21T11:07:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "47e5c9994c087d1826ccc0d539e916845b5648fb",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: add target for `DescriptorScriptPubKeyMan`",
          "author_name": "brunoerg",
          "author_login": "brunoerg",
          "committed_at": "2023-11-20T18:57:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "641dddf01812407d163520def83f5975413691e4",
          "body": null,
          "is_bot": false,
          "headline": "fuzz: create ConsumeCoins",
          "author_name": "brunoerg",
          "author_login": "brunoerg",
          "committed_at": "2023-11-20T18:57:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 25,
      "commits_last_year": 0,
      "latest_release_at": "2022-12-06T15:54:10Z",
      "latest_release_tag": "v24.0.1",
      "releases_from_tags": true,
      "days_since_last_push": 0,
      "active_weeks_last_year": 0,
      "days_since_latest_release": 1328,
      "mean_days_between_releases": 124.9
    },
    "community": {
      "has_readme": false,
      "has_license": false,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": null,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 1,
      "stars": 0,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2024-11-01",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "depends/Makefile",
        "src/qt/Makefile",
        "src/qt/test/Makefile",
        "src/test/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "src/qt/android/build.gradle",
        "test/lint/test_runner/Cargo.toml"
      ],
      "largest_source_bytes": 2409168,
      "source_files_sampled": 1779,
      "oversized_source_files": 114,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 5,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "laanwj",
          "commits": 7364,
          "avatar_url": "https://avatars.githubusercontent.com/u/126646?v=4"
        },
        {
          "type": "User",
          "login": "fanquake",
          "commits": 3287,
          "avatar_url": "https://avatars.githubusercontent.com/u/863730?v=4"
        },
        {
          "type": "User",
          "login": "sipa",
          "commits": 2134,
          "avatar_url": "https://avatars.githubusercontent.com/u/548488?v=4"
        },
        {
          "type": "User",
          "login": "hebasto",
          "commits": 1459,
          "avatar_url": "https://avatars.githubusercontent.com/u/32963518?v=4"
        },
        {
          "type": "User",
          "login": "achow101",
          "commits": 1288,
          "avatar_url": "https://avatars.githubusercontent.com/u/3782274?v=4"
        },
        {
          "type": "User",
          "login": "gavinandresen",
          "commits": 1101,
          "avatar_url": "https://avatars.githubusercontent.com/u/331997?v=4"
        },
        {
          "type": "User",
          "login": "jnewbery",
          "commits": 794,
          "avatar_url": "https://avatars.githubusercontent.com/u/1063656?v=4"
        },
        {
          "type": "User",
          "login": "jonasschnelli",
          "commits": 774,
          "avatar_url": "https://avatars.githubusercontent.com/u/178464?v=4"
        },
        {
          "type": "User",
          "login": "practicalswift",
          "commits": 715,
          "avatar_url": "https://avatars.githubusercontent.com/u/7826565?v=4"
        },
        {
          "type": "User",
          "login": "jonatack",
          "commits": 679,
          "avatar_url": "https://avatars.githubusercontent.com/u/2415484?v=4"
        }
      ],
      "contributors_sampled": 100,
      "top_contributor_share": 0.25
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 17 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 5,
            "reason": "5 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "6d5790956f45e3de5c6c4ee6fda21878b0d1287b",
        "ran_at": "2026-07-26T17:28:41Z",
        "aggregate_score": 3.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": null,
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": null,
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/ismaelsadeeq/bitcoin",
    "host": "github.com",
    "name": "bitcoin",
    "owner": "ismaelsadeeq"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": "Abandonment Policy applies a 85% multiplier to weighted overall health.",
      "notes": [
        {
          "code": "abandonment_overall_adjustment",
          "params": {
            "cap": 0,
            "pct": 85
          }
        }
      ],
      "value": 33,
      "inputs": {
        "security": 35,
        "vitality": 34,
        "community": 12,
        "governance": 53,
        "engineering": 57,
        "abandonment_cap": null,
        "abandonment_state": "at_risk",
        "abandonment_multiplier": 85,
        "weighted_overall_before_abandonment": 39,
        "overall_after_abandonment_multiplier": 33
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "at_risk",
        "name": "Vitality",
        "value": 34,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "at_risk",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 36,
            "inputs": {
              "commits_last_year": 0,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 0
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "0/52 weeks with commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "0 commits in the last year",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "at_risk",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 32,
            "inputs": {
              "releases_count": 25,
              "latest_release_tag": "v24.0.1",
              "releases_from_tags": true,
              "days_since_latest_release": 1328,
              "mean_days_between_releases": 124.9
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "25 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 25
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 1328 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 1328
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~124.9 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 124.9
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "cap": null,
              "state": "at_risk",
              "guards": [
                "no_open_demand"
              ],
              "signals": [
                "release_stall",
                "scorecard_unmaintained"
              ],
              "red_flag": true,
              "multiplier_pct": 85,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": 0,
              "unanswered_open_issues": 0,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 964,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "no human commit for 964 days; 2 unmet obligation(s): releases stalled, Scorecard reports it unmaintained",
                "points": 85,
                "status": "partial",
                "details": [
                  {
                    "code": "abandonment_flagged",
                    "params": {
                      "days": 964,
                      "count": 2,
                      "signals": "releases stalled, Scorecard reports it unmaintained"
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 12,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 1,
              "stars": 0,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": false,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 53,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "excellent",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "bus_factor": 5,
              "contributors_sampled": 100,
              "top_contributor_share": 0.25
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "5 contributor(s) cover half of all commits",
                "points": 45.9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 25% of commits",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 25
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "100 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 17 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution",
                    "pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "no decided pull requests or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_decided_prs_or_data",
                    "params": {}
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 65,
            "inputs": {
              "followers": 294,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "ismaelsadeeq",
              "public_repos": 46,
              "account_age_days": 2679
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "294 followers of ismaelsadeeq",
                "points": 17.8,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 294,
                      "login": "ismaelsadeeq"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "46 public repos, account ~7 yr old",
                "points": 24.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 46
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 57,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "at_risk",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "https://bitcoincore.org/en/download",
              "has_readme": false,
              "has_docs_dir": true,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://bitcoincore.org/en/download",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 35,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 35,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 3.5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 17 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "5 existing vulnerabilities detected",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 11
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 57,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.92,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "92 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 92,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 61,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "depends/Makefile",
                "src/qt/Makefile",
                "src/qt/test/Makefile",
                "src/test/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "src/qt/android/build.gradle",
                "test/lint/test_runner/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "depends/Makefile, src/qt/Makefile, src/qt/test/Makefile, src/test/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "depends/Makefile, src/qt/Makefile, src/qt/test/Makefile, src/test/Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "C++ (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C++"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 96,
            "inputs": {
              "primary_language": "C++",
              "largest_source_bytes": 2409168,
              "source_files_sampled": 1779,
              "oversized_source_files": 114
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C++ (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C++"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "114/1779 source files over 60KB",
                "points": 51.5,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1779,
                      "oversized": 114
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Community profile unavailable",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T17:29:02.028685Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/i/ismaelsadeeq/bitcoin.svg",
  "full_name": "ismaelsadeeq/bitcoin",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистика.