Вот все, что я узнал, строив биткойн -кошелек с нуля за 4 месяца

Вот все, что я узнал, строив биткойн -кошелек с нуля за 4 месяца

2 июля 2025 г.

Я потратил 4 месяца, создавая соло биткойн -кошелька,живой поток(наподергиваниеиTwitter) вся сборка откаркасЧтобы закончить аудитории 3. Это дерзкий, это работает, и я узнал больше о технике - и о себе - чем любой учебник мог бы преподавать.

Это эта история.

⚠ Отказ от ответственности: Этот кошелек только для тестовой сети и в альфа. Не используйте его с реальным биткойном. Это учебный проект, а не производственное программное обеспечение.

👉 Ссылка GitHub(Дайте ему быструю звезду! :))

https://youtu.be/yurgi_gpb98<- видео на YouTube

История происхождения

Я ранее основалBitescrow(Незащитная служба условно-депонирования биткойнов) и очень долго работал над ней. Мой основатель CO и я отправили что -то удивительное. Но после 3 длинных, тяжелых, начальных лет я усвоил действительно тяжелый урок:Никто не хочет тратить свой биткойнПолем После того, как этот стартап замолчал, я сделал то, что сделал бы любой разумный человек - я перебилФакторв течение 270 часов ... вмесяцПолем

Мой друг с доктором наук в области компьютерных наук, у которого более 5000 часов в игре, на самом деле настаивал на самом глубоком уровне, и я был полностью подключен. Но во время игры что -то щелкнуло. Системное мышление игры, шаблоны оптимизации и неустанный сосредоточенность на эффективности переосмыслил то, как я подхожу к инженерным проблемам. Я понял, что Factorio - это просто геймфицированная версия реальной системной инженерии, и игра его действительно заострила навык, который я не очень ценил. Когда я вышел из своей Factorio Haze, я знал, что хочу снова построить что -то существенное.

Потратив некоторое время и хорошо отдохнув, я изучил мобильную разработку за 2 недели и начал строить биткойн -кошелек с Absolute Scratch в качестве MVP для более крупного проекта.

Sadly my 3 years of green squares live on BitBucket

Зачем строить еще один биткойн -кошелек?

Краткий ответ:Я снова перейду на инфраструктуру, и этот кошелек был моим техническим глубоким погружением перед прыжком.

Длинный ответ:Первоначально я планировал это как MVP для идеи продукта. Строите кошелек → Стоимость ожидания Grow → Инвесторы PITE. Классическая пьеса. Но четыре месяца сольного развития изменили мою точку зрения.

В течение нескольких недель я понял:

  • Моя идея была слишком нишевой (территория ошибок Bitescrow 2.0)
  • Настоящего рыночного спроса не было
  • Я пропустил строительство инфраструктуры больше, чем потребительские товары
  • Infra зарабатывает гораздо больше денег, когда все сделано правильно

Самое главное, что друг помог мне повторно облегчить мою мысль о указанной идее, когда я был в Биткойн-Лас-Вегасе. К третьему месяцу я знал, что этот кошелек будет моим выпускным проектом, а не моим пунктом назначения.

Путешествие построения в одиночку

Я установил тяжелый срок: 4 месяца с первого коммита. Полный канбанский совет. Судить или умереть. Через два месяца я почти ушел. Канбан переполнен чертами, ничего не работало должным образом, и эти ранние дофаминовые хиты от небольших побед испарились. Вместо этого я серьезно подумал о том, чтобы написать о своем неудавшемся кошельке. Тогда что -то сломалось - в хорошем смысле. Я понял, что совершенство было необязательным. Импульс не был.

Искусство сказать нет

Особенность Creep чуть не убила этот проект. У моего Канбана было все: экраны цен на биткойны, конвертеры USD/SATS, красивая анимация. Все хорошие, которые заблокировали реальный прогресс. Возьмите функцию цены биткойнов, которую я запланировал - я продолжал достигать пределов ставок Coingecko, поэтому я разработал это сложное решение: множество запасных отслеживаний API, что привело к усреднению оркестра, централизованное управление государством. Тогда у меня было прозрение - просто удалите всю функцию.

Удаление преобразования USD устраняло сложность по всей кодовой базе:

  • Нет логики преобразования в sendamountscreen.tsx, sendconfirmscreen, venceicescreen.tsx, rethecreen.tsx
  • Нет хранения исторических цен на биткойны для деталей транзакции
  • Более простое управление государством в целом

Я систематически заблокировал все, что не имеет возможности:

  • Испытания на дым пользовательского интерфейса (я все равно проверял случаи краев вручную)
  • Брендинг и причудливая анимация
  • Пользовательские шрифты и значки
  • Рефакторинг компонента и модуляризация
  • Утверждение безопасности за пределами оснований
  • CI/CD трубопроводы
  • Рефактоники определенных файлов в Go
  • Готовность магазина приложений
  • Обработка полированной ошибки
  • Полный тестовый охват

Одна особенность, которую я отчаянно хотел: Jibberlink для подписания транзакций с воздушным зазором. Было бы круто. Занял бы слишком много времени. Резать.

Основная правда

Вот что на самом деле имеет значение в биткойнском кошельке: отправка и получение. Вот и все. Когда я наконец построил транзакцию, которая прошла всю проверку UTXO, увидел этот экран успеха, и наблюдал, как она подтверждает в меморандуме - этот допаминовый поток был нереальным. Я это построил. С нуля. Просто необработанная конструкция транзакций.

Системное мышление и партнерство с искусственным интеллектом

Где -то около третьего месяца мой мозг изменился. Я перестал думать в коде и начал думать в системах. Я бы лежал в постели, визуализируя архитектуру кошелька - не файлы и функции, а течет и правила. Кошелек, преобразованный от «материала, который работает» в «вещь с внутренней логикой». ИИ стал менее инструментом и скорее как временный соучредитель. Я не просто писал подсказки - я думал в подсказках. Подсказка - это просто замаскированная архитектура программного обеспечения - и благодаря фактору, это навык, который я заточен. Я бы архитектор потоков, и Клод/Курсор справится с реализацией. Это не было идеальным, но это дало мне второй ветер, когда энергия исчезла. Я получилДействительнохорошо подсказывает.

Последний толчок

Последняя неделя была чистой сортировкой. Дни размыты вместе: отладка одну минуту, переписывая пользовательский интерфейс в следующую, а затем теряя часы, чтобы скрыть полифиллы выставки. Переключение контекста стало моим основным навыком. Я продолжал желать рефакторировать. Реорганизовать файлы. Создайте аккуратные структуры папок. Но это была откладываемой одетой как прогресс. Я должен был носить все шляпы и почувствовать вес каждого из них. Когда я наконец совершил этот последний анализ ошибки и наблюдал, как проходит моя транзакция - подписанная, транслировалась, подтверждена - я позволил ему оставаться уродливой. Потому что уродливо честно, а доставка прекрасна.

Технологический стек и архитектура

Я много исследовал, используя синий кошелек в качестве вдохновения. У каждого выбора библиотеки была цель:

Основные библиотеки:

  • Bitcoinjs-Lib V6.1.7- Биткойн -швейцарский армейский нож
  • Отреагировать Native + Expo-Кроссплатформенная мобильная разработка
  • Машинопись- Потому что ванильный javascript отстой
  • Zustand v5.0.4- Государственное управление, которое на самом деле хорошее

Биткойнские стандарты:

  • BIP-32- HD -кошельки (иерархическая детерминистская)
  • BIP-39- Мнемонические семенные фразы
  • @scure/bip39 & secp256k1- Дополнительные криптографические операции

APIS & Infrastructure:

  • Mempool API(первичный) сEsploraотступать
  • Аксиосс пользовательским ограничением ставок
  • ЗодДля проверки схемы
  • MMKVДля быстрого хранения ключевых значений
  • Реагировать запросДля извлечения данных

Ключевые функции построены:

  • Полная отправка/получение с выделенными крючками (useSendBitcoinВuseReceiveHandlers)
  • История транзакций с полным конвейером проверки
  • Поддержка с несколькими сетью (Testnet, Mainnet, Regtest)
  • HD -генерация и импорт кошелька
  • QR -код сканирование
  • Mempool.space Integration

Уроки

Ни один учебник, курс, учебник или буткемп не могли бы научить меня тому, что сделала эта сборка. Четыре месяца сольного развития превышают четыре года теории. Используя «Программирование биткойн» в качестве моей Библии, я стал оценить Биткойн как чудес инженерии, каким он действительно есть. Кошелек работает. Это не красиво. Но я отправил его, и это важно.

Что я узнал (техническое)

  • Создать соло кошелька действительно сложно. Не делайте этого, если вы не готовы к боли. Сделайте это, если хотите быстро повышаться.
  • Ключевое поколение, подписание и адресное вывод будет быстро смирить вас
  • Управление UTXO - это то, где теория встречает реальность (и обычно проигрывает)
  • Bitcoinjs мощный, но сырой. С командой я бы использовал BDK + LDK вместо этого.
  • Управление государством в финансовых приложениях требует внимания на уровне параноидации
  • «Безопасное хранение частных ключей» сложнее, чем кричать «Не свои ключи, а не ваши монеты» в Твиттере
  • Xcode остается худшим опытом разработки в современных вычислениях
  • Программирование AI Pare - это будущее - это делает хорошие разработчики лучше, и плохие разработчики хуже.
  • Как работать, использовать и взаимодействовать с Bitcoin Core - и почему он все еще является золотым стандартом для полных узлов.
  • Segwit на самом деле блестящий, как только вы его реализуете самостоятельно

Чему я узнал (лично)

После 4 месяцев сольной разработки, потоковой передачи в пустые комнаты и борьба с криптографическими примитивами:

  • Совершенство - враг импульса. Корабль уродливой.
  • Исполнение - это окончательный фильтр. Идеи просты, 4-месячные обязательства не являются.
  • Вы можете делать тяжелые вещи в одиночку. Но вы, вероятно, не должны.
  • Постоянство бьет все остальное.

Самый глубокий урок? Я инженер по инфраструктуре в глубине души. В те месяцы микрорешенных пикселей пользовательского интерфейса подтвердили то, что я уже знал-я принадлежу к бэкэнду, архивируя системы, а не пиксели для пользовательского интерфейса.

Что дальше?

Этот кошелек работает. Это некрасиво, недооценивается и отчаянно нуждается в рефакторинге. Могу я усовершенствовать это?Да 100% Я?Нет.

У меня есть большие проекты, которые называют мое имя. Этот кошелек послужил своей цели: углубление моих знаний о биткойнах, обострение моих инженерных навыков и разъяснение того, что я на самом деле хочу построить.

Если ничего другого, я надеюсь, что это поможет одному человеку понять, как биткойн -кошельки на самом деле работают под капюшоном. Архитектура чистая, код организован, и для вас есть все, чтобы исследовать, разорвать и учиться.

👉Репо находится здесь на GitHub👈


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE