Programming Bitcoin — техническая книга Jimmy Song, вышедшая в 2019 году. Она объясняет Bitcoin через библиотеку на Python: набор повторно используемых частей программы, которые читатель постепенно создаёт сам. Это учебник для людей с основами программирования, а не готовый кошелёк.
Пользоваться приложением и понимать его устройство — разные навыки. Song хочет провести читателя от первого ко второму: вместо одного лишь описания Bitcoin предлагает написать и проверить его компоненты. Цель — понять, как получить нужные данные, создать транзакцию и передать её сети. Денежные и общественные вопросы остаются за рамками книги. [3]
В книге 14 глав, последовательно опирающихся друг на друга. Она начинается с математики, необходимой для работы с ключами и подписями. Далее идёт сериализация — преобразование данных в точный формат хранения и передачи, а затем транзакции, блоки и сетевое взаимодействие. Порядок не случаен: более сложные задачи используют уже созданные части. [3]
Главы 1–12 содержат упражнения. Читатель меняет файлы Python и с помощью готовых тестов проверяет, соответствует ли решение заданию. Jupyter notebook здесь — не переносной компьютер, а рабочий документ, в котором можно выполнять код и сразу видеть результат. Решения есть в приложении и репозитории; смысл в том, чтобы понять свою ошибку, а не просто переписать правильный ответ. [3]
Последнее упражнение по программированию объединяет предыдущую работу: подключиться к другому узлу, определить доступные средства, создать и подписать транзакцию, затем распространить её. Всё происходит в testnet — отдельной сети для экспериментов. Этот учебный план автора не означает, что мы сами выполнили упражнение или проверили его работу в современной среде. [3]
Библиотека использует Python 3. Song рекомендует средний уровень владения языком, но считает многие понятия доступными и начинающему программисту. Для математики должно хватить основ алгебры; новые инструменты вводятся постепенно. Если вы никогда не программировали, проще сначала освоить основы Python, чем одновременно изучать язык и протокол Bitcoin. [3]
В последней главе Song подчёркивает сложность защиты приватных ключей. Кошельку нужны также понятное управление, резервные копии и история транзакций. Успешный тест отдельной функции поэтому не подтверждает безопасность всей программы. Библиотека создана для обучения, а не как полная или оптимизированная реализация; нельзя автоматически считать её подходящей для настоящих средств. [3] [4]
Автор предлагает создать тестовый кошелёк, обозреватель блоков, интернет-магазин или вспомогательную библиотеку. Для магазина он советует начать с testnet и использовать безопасные криптографические библиотеки. Другой путь — участие в открытых проектах. Это идеи для дальнейшей учёбы, а не актуально проверенный список сервисов или обещание работы. [4]
O’Reilly указывает февраль 2019 года, а README репозитория автора — март 2019 года. Мы сохраняем различие между записями. Обзор основан на издательских данных, полном предисловии и заключительной главе Advanced Topics and Next Steps. Это не рецензия на всю книгу и не тест её кода. Онлайн-текст может меняться; старые инструкции по установке нужно сверять с актуальной документацией перед применением. [1] [2] [3] [4]
Для полной картины прочитайте эту статью вместе с Private Key, Транзакция, Bitcoin Script, Full Node.
01Подойдёт ли книга полному новичку?+
Новичку в разработке для Bitcoin — да, если у него уже есть основы программирования. Предисловие предполагает прежде всего знание Python и математики примерно на уровне алгебры. Тем, кто хочет сначала понять использование Bitcoin без написания кода, проще начать со вводных руководств.
02Можно ли доверить библиотеке свои биткоины после упражнений?+
Самого выполнения упражнений для такого вывода недостаточно. Автор прямо определяет библиотеку как учебное средство. Безопасная работа с настоящими деньгами требует гораздо более широкой проверки, включая защиту ключей и восстановление из резервных копий; этот обзор её не предоставляет.