Зріз ринку · ↗Курс Bitcoin$77,735Хешрейт мережі936 EH/sСкладність127.45 T

Прошивки й оптимізація

Bitcoin Core виправляє помилку bitcoin-cli з необмеженим таймаутом на macOS

Публікація джерела: 2026-10-07 · Редакційний аналіз опубліковано: 2026-10-07

PR №36340 прийнято 7 жовтня. Виправлення обмежує очікування сокета для -rpcclienttimeout=0; наявність у готовому релізі чи стабільній гілці потрібно перевіряти окремо.

Сувенірний токен Bitcoin і ноутбук; тематична ілюстрація, не інтерфейс Bitcoin Core
Ілюстративне архівне фото; це не конкретний пристрій чи об’єкт із новини. Перетворено у WebP; за потреби зменшено розмір. Shixart1985 · CC BY 2.0

Аналіз і практичні висновки

У цьому розділі — наш аналіз та умовні розрахунки, окремо від повідомлення джерела.

Сьогоднішня зміна стосується клієнта

Bitcoin Core прийняв pull request №36340 7 жовтня о 07:27:37 UTC — це підтверджує офіційний GitHub API. Зміна виправляє помилку підключення bitcoin-cli на macOS із параметром -rpcclienttimeout=0. Ми перевірили актуальний стан API та остаточні змінені файли, оскільки кешована вебсторінка ще показувала відкритий запит. Підтверджена подія — прийняття коду в гілку розробки. Це не підтверджує наявність виправлення в конкретному готовому пакеті чи прошивці майнера.

Для інфраструктури майнінгу важливий клієнт командного рядка, який звертається до вузла. Невдала команда може порушити моніторинг або адміністративний процес, навіть якщо сам вузол працює. Ми розглядаємо новину як виправлення надійності програмного забезпечення. Це не новий режим налаштування ASIC, не зміна proof-of-work і не обіцянка зростання прийнятого хешрейту. Важливо зберігати точний опис компонента та шляху виконання, якого стосується зміна.

Комутаційна панель стійки; архівна ілюстрація, не RPC-пристрій
Ілюстративне архівне фото; це не конкретний пристрій чи об’єкт із новини. Перетворено у WebP; за потреби зменшено розмір. Tobias Maier · CC0

Нуль у налаштуванні перетворюється на велику тривалість

Автор запиту пояснює: клієнт представляє задокументоване налаштування без таймауту як дуже довгу тривалість, що передається реалізації очікування сокета. Це межа між користувацькою опцією та механізмом операційної системи. Позначення «без обмеження» не означає, що програма передає нескінченне очікування на кожному рівні. Якщо нижчий API не підтримує числове значення, команда може завершитися помилкою, причина якої неочевидна з назви параметра.

Тому повідомлення про помилку підключення не завжди доводить вимкнення вузла або неправильний пароль. Програма може відхилити локальний параметр до завершення очікуваного обміну. Під час діагностики слід розрізняти визначення адреси, встановлення з’єднання, автентифікацію, обробку запиту й очікування відповіді. Це загальні етапи перевірки, а не перелік дефектів Bitcoin Core. У цьому випадку першоджерело вказує на завелику тривалість очікування.

Остаточний код обмежує очікування сокета

Перевірений остаточний перелік змін показує обмеження в Sock::WaitMany і функціональну перевірку параметра нульового таймауту. Для окремого очікування використовується максимальне значення знакового int у мілісекундах — приблизно 24,8 дня. Це не слід описувати як нове нативне нескінченне очікування. В обговоренні розглядали інший підхід, але прийнята зміна залишає обмеження. Наш матеріал спирається на остаточний код, а не проміжну пропозицію.

Мілісекунди та секунди відрізняються у 1000 разів. Значення, яке проходить через кілька програмних рівнів, може стикатися з різними обмеженнями типів. Це питання програмного інтерфейсу, а не електроенергії чи хешрейту. На нашу думку, підтримувана числова тривалість усуває описану негайну помилку, тоді як загальна семантика таймаутів залишається окремим питанням. Приблизна величина обмеження не є гарантією необмеженої роботи з’єднання.

Прийнятий код і випущений пакет — різні етапи

Прийняття зміни підтверджує її наявність у репозиторії розробки. До користувачів вона може потрапити через реліз, перенесення у стабільну гілку або оновлення пакета — із власними строками. Ми не приписуємо виправлення конкретному завантажуваному релізу без перевірки складу. API містить commit прийняття, за яким можна відстежити код. Перед оновленням потрібно звірити встановлену версію та відповідні примітки до релізу, а не покладатися лише на дату статті.

Це особливо важливо для інфраструктури, що свідомо залишається на стабільній гілці. Зміна в розробці не оновлює автоматично всі стабільні пакети. Позначка про необхідність перенесення чи обговорення також не підтверджують завершеного перенесення та випуску. Наступним корисним доказом буде commit відповідної гілки або документація релізу з чітким зазначенням збірки, у якій користувач отримає виправлення.

Попереднє виправлення стосувалося іншого рівня

ASIC.tools раніше писав про виправлення порожніх відповідей і обробки таймауту клієнта в іншому pull request. Сьогоднішня зміна окремо виправляє велике значення, передане очікуванню сокета, тому не дублює попередню подію. Два рівні можуть впливати на той самий робочий процес, але мати різні механізми. Номер запиту й дата прийняття дозволяють однозначно ідентифікувати новину та не видавати стару примітку за новий анонс.

Якщо симптом зберігається після одного оновлення, варто перевірити нижчий рівень очікування, а не відразу припускати відсутність попередньої зміни. Не слід також приписувати всі помилки клієнта одному виправленню. Практична перевірка враховує текст помилки, параметри, операційну систему й конкретний виконуваний файл. Це точніше за загальну фразу «RPC виправлено», яка може створити враження значно ширшого обсягу змін.

Перевірка підключення без зміни майнінгу

Для користувача з цією помилкою контрольний запит лише на читання допоможе відділити збій клієнта від проблеми вузла. Перевірка має відповідати встановленій версії та дозволеній конфігурації вузла. Варто зафіксувати результат, версію клієнта й текст помилки до зміни сторонніх налаштувань. Для перевірки підключення не потрібно змінювати гаманець, адресу пулу, частоту ASIC або охолодження. Прийнятий код не дає підстав вважати такі зміни рішенням цієї проблеми.

Успішний короткий запит підтверджує завершення конкретного обміну за перевірених умов. Він не гарантує безперервного виконання будь-якого довгого запиту. Моніторинг має й надалі фіксувати перерви та відновлення. Це наші операційні міркування, а не твердження про випробування ASIC.tools на всіх платформах. Ми перевірили першоджерело й остаточні зміни, але не відтворювали помилку на кожному випуску macOS і не створювали сертифіковану матрицю сумісності.

Повторення запиту не замінює діагностику

Автоматизація може повторити невдалий запит, але це не визначає рівень помилки. Повторне передавання некоректної локальної тривалості може знову завершитися невдачею. Важливо розрізняти збій до приймання запиту та невідомий результат після його надсилання. Частина адміністративних RPC змінює стан, частина тільки читає його. За невідомого результату потрібно спочатку звірити стан, а не автоматично повторювати дію, що може створити дубль.

Ми не стверджуємо, що виправлення змінює політику транзакцій або робить кожен RPC безпечним для повторення. Воно стосується одного механізму підключення. Загальний практичний висновок — журналювати достатньо даних, щоб визначити, чи запит дійшов до сервера та чи відомий результат. Діагностичний запит на читання дає підтвердження без дублювання операцій. Така дисципліна корисніша за безумовне збільшення кількості повторних спроб.

Що підтверджено для читача ASIC.tools

Підтверджена подія — прийняте клієнтське виправлення з доказами офіційного API та остаточних змінених файлів. Дата новини відповідає сьогоднішньому прийняттю, а не старішій даті відкриття pull request. На цій підставі ми не призначали нові прошивки ASIC. Посилання веде на репозиторій Bitcoin Core, а журнал дослідження містить API-доказ, використаний для уточнення застарілого стану кешованої вебсторінки.

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

Джерело: Bitcoin Core / GitHub ↗

Калькулятор майнінгу ↗

Ще в цій рубриці

HashSmash запускає конкурс AI-криптоаналізу SHA-256 та інших хеш-функцій

HashSmash запускає конкурс AI-криптоаналізу SHA-256 та інших хеш-функцій

5 жовтня Eigen Labs і Shielded Labs запустили відкритий конкурс на Yukon. Він досліджує SHA-256, SHA-3, BLAKE3 та Poseidon; початок конкурсу не є свідченням зламу хешування Bitcoin.

Ранній доступ Braiins Price Adapt закінчується 30 вересня: що насправді змінює автоматичне націлювання на потужність

Ранній доступ Braiins Price Adapt закінчується 30 вересня: що насправді змінює автоматичне націлювання на потужність

Braiins каже, що Price Adapt може налаштувати кожен підтримуваний майнер на прибуткову цільову потужність або скоротити її, коли очікуваний дохід більше не покриває електроенергію. Безкоштовний ранній доступ діє до 30 вересня, тоді як опубліковані прирости є змодельованими результатами, які оператори повинні перевірити на основі своїх власних даних про тарифи, парк і пул.

Luxor Commander додає підтримку встановлення LuxOS для хеш-панель Bitmain HBH1500

Luxor Commander додає підтримку встановлення LuxOS для хеш-панель Bitmain HBH1500

У журналі змін продукту Luxor від 22 вересня зазначено, що Commander тепер може встановлювати LuxOS на хеш-панелі Bitmain HBH1500. Примітка розширює інструмент розгортання, але сама по собі не підтверджує підтримку кожного майнера, плати керування чи образу мікропрограми, які можуть містити плату з подібною назвою.