Полная реализация биткойнов на Python?

Недавно я узнал, что python-bitcoinlib — это не полная реализация биткойн-узла, а скорее набор инструментов для работы с биткойн-ядром cpp. Я хотел бы знать, есть ли какие-то фундаментальные проблемы с реализацией полного биткойн-узла с использованием python? Кроме того, если бы его можно было попробовать как упражнение по кодовому гольфу (самый короткий код для запуска полного узла), сколько строк кода он составит в python ??

С точки зрения производительности это было бы плохой идеей, поскольку язык динамического программирования Python, как правило, использует больше оперативной памяти для структур данных. Однако это может быть интересным упражнением.
@MikkoOhtamaa: Python отлично справляется с требованиями к производительности биткойн-узла. Ответы пока указывают на несколько проектов, которые делают это.
@GregHewgill: Но ни один из них не может служить полной заменой биткойн-ядра, верно?
@ user2277550: Не понимаю, почему бы и нет. Нет основной причины, по которой Python не подходит для этой цели. Это, безусловно, более чем достаточно. Похоже, вы спрашиваете, написал ли кто-то еще на Python именно то, что вы имеете в виду. Может быть, а может и нет. Но это возможно.
@GregHewgill: Ссылки или не было :)
@MikkoOhtamaa: В существующих ответах уже есть несколько ссылок. Я не уверен, что еще вы просите.
@GregHewgill: Хорошо, спасибо, теперь вижу ответ.

Ответы (4)

Насколько я знаю, нет никаких фундаментальных проблем с реализацией полного биткойн-узла с использованием python, есть даже несколько крутых проектов полного биткойн-узла на Python.

Это сильно зависит от вашего определения полного . Существует ряд реализаций, реализующих части функциональности узла Биткойн. Например , cdecker/pycoin имеет надежную сетевую реализацию, но не включает код управления кошельком и логику проверки. С другой стороны, richardkiss/pycoin имеет некоторую логику кошелька, но не имеет сети. Другие библиотеки включают:

Но, насколько я знаю, нет отдельного клиента, который включает в себя кошелек, а также сетевой код.

Проверьте Тиничейн .

Он не завершен и никогда не будет взаимодействовать с реальной сетью Биткойн, но это подход «код-гольф» для реализации всех основных идей Биткойн (проверка, POW-майнинг, одноранговая архитектура, структуры данных, такие как TxIn). /TxOut/Block и т. д.) в Python.

Есть проект, представляющий собой полную реализацию биткойна на питоне. Исходный код на https://github.com/csunny/py-bitcoin