Luke Dashjr, известный как luke-jr, — разработчик Bitcoin. Его работа касается интерфейсов майнинга, Bitcoin Knots и документов BIP — публично описанных предложений и стандартов. Эти примеры помогают понять, как человек может заметно влиять на разработку, не принимая решений за всю сеть.
На GitHub Luke Dashjr использует имя luke-jr. Сервис хранит исходный код, предложения изменений и их историю. В профиле есть ссылки, в частности, на Bitcoin Knots и программу для майнинга BFGMiner. Но профиль — не полная биография всех участников и не перечень работ, выполненных одним человеком. Более точные свидетельства дают конкретные изменения и авторство спецификаций. Далее речь пойдёт о практических вопросах: как передать майнеру задание, заранее обнаружить ошибку и понять, действительно ли предложение используется. [1]
Майнинг многократно выполняет вычисления над подготовленным блоком, пока результат не удовлетворит требуемой сложности. Но сначала нужно собрать содержимое. BIP 22 за авторством Dashjr описывает getblocktemplate — интерфейс, через который программа получает структуру предполагаемого блока вместе с транзакциями. Ей необязательно получать только короткий заголовок для хеширования: она может собрать блок и внести допустимые изменения. Это похоже на получение материалов для всего заказа вместо отдельной операции. Правила действительности готового блока при этом остаются обязательными. [2]
Представьте транзакцию, которая тратит выход другой транзакции в том же предполагаемом блоке. Эта предыдущая транзакция тоже должна быть включена. Поле depends в BIP 22 описывает такие зависимости. Если его нет, зависимости неизвестны; программа не вправе считать, что их нет. То же относится к отсутствующему размеру комиссии или sigops — числу операций проверки подписей, учитываемому в лимитах блока. Отсутствие информации не равно нулю. Эта кажущаяся мелочь помогает не собрать недействительный блок из-за неверного понимания исходных данных. [2]
BIP 23 от Dashjr расширяет интерфейс для пулов, объединяющих работу майнеров. Необязательный режим proposal позволяет отправить подготовленный блок серверу на проверку, исключая доказательство работы. Так ошибку в содержимом можно обнаружить до затратного поиска подходящего результата вычислений. Положительный ответ означает лишь, что предложение соответствует правилам этого сервера. Необходимое доказательство работы и оценка остальных узлов ещё впереди. Предварительная проверка не означает, что новый блок уже добыт. [3]
Другая область — введение изменений правил. BIP 8, авторами которого являются Shaolin Fry и Luke Dashjr, задаёт этапы по высоте блока, его позиции в цепочке. Параметр lockinontimeout определяет, должен ли последний период при оговорённых условиях требовать сигнализации майнеров, чтобы закрепить будущую активацию. LOCKED_IN — не ACTIVE: первый статус обеспечивает последующий переход в рамках этого механизма, а новое правило применяется только во втором. Это различие между назначенным моментом вступления в силу и его наступлением. Само написание предложения не переключает всю сеть. [4]
Bitcoin Knots — программа для собственного узла, компьютера, который загружает и полностью проверяет блоки и транзакции. Документация описывает перенос разработок из Bitcoin Core и возможность дополнительных изменений; также могут включаться кошелёк и графический интерфейс. На момент этой ревизии официальный сайт называет Dashjr главным ответственным за сопровождение. Ответственность за программу не позволяет навязать всей сети новые правила. Выбирая ПО, стоит читать о функциях и настройках каждого выпуска, а не предполагать, что обе программы всегда ведут себя одинаково. [5] [6]
Скачивая Bitcoin Knots, важно убедиться, что файл получен от ожидаемого издателя. Сайт рекомендует подписи OpenPGP и сверку открытых ключей по независимым источникам. Открытый ключ позволяет проверить цифровую подпись, но сначала нужно установить, кому он принадлежит. Корректная подпись с надлежащим образом проверенным ключом подтверждает происхождение файла и неизменность подписанных данных. Она не гарантирует программу без ошибок. Проверка происхождения, анализ кода и выбор настроек — разные задачи. [6]
Dashjr также написал BIP 2 о подготовке и публикации предложений. Сейчас его заменяет BIP 3 от Murch. В нём прямо сказано, что опубликованный BIP сам по себе не выражает консенсус сообщества Bitcoin или всеобщую рекомендацию к внедрению. Предложение может остаться на бумаге, попасть в определённую программу или со временем изменить совместно соблюдаемые правила. Присвоение номера ничего не активирует. Читая о новом BIP, спрашивайте также, кто его реализовал и используется ли он на практике. [7] [8]
Для полной картины прочитайте эту статью вместе с Matt Corallo, Peter Todd, Satoshi Nakamoto. На эту статью также ссылаются Matt Corallo, Peter Todd.