¿Una implementación completa de bitcoin en Python?

Recientemente me di cuenta de que python-bitcoinlib no es una implementación completa de un nodo de bitcoin, sino un conjunto de herramientas para trabajar con bitcoin-core cpp. Me gustaría saber si hay algunos problemas fundamentales con la implementación de un nodo bitcoin completo usando python. Además, si se probara como un ejercicio de golf de código (el código más corto para ejecutar el nodo completo), ¿cuántas líneas de código ascendería en python?

En cuanto al rendimiento, esto sería una mala idea, ya que el lenguaje de programación dinámico Python tiende a usar más RAM en las estructuras de datos. Sin embargo, podría ser un ejercicio interesante.
@MikkoOhtamaa: Python es perfectamente capaz de manejar los requisitos de rendimiento de un nodo de Bitcoin. Las respuestas hasta ahora apuntan a varios proyectos que hacen esto.
@GregHewgill: Pero ninguno de ellos puede servir como un reemplazo completo de bitcoin-core, ¿verdad?
@ user2277550: No veo por qué no. No hay una razón subyacente por la que Python no sea adecuado para este propósito. Ciertamente es más que capaz. Parece que estás preguntando si alguien más ya ha escrito en Python exactamente lo que tienes en mente. Tal vez tal vez no. Pero es posible hacerlo.
@GregHewgill: Enlaces o no sucedieron :)
@MikkoOhtamaa: Las respuestas existentes ya tienen varios enlaces. No estoy seguro de qué más estás pidiendo.
@GregHewgill: Ok, gracias, ahora veo la respuesta.

Respuestas (4)

AFAIK, no hay problemas fundamentales con la implementación de un nodo de bitcoin completo usando python, incluso hay algunos proyectos geniales de nodo completo de Bitcoin en Python

Eso depende en gran medida de su definición de completo . Hay una serie de implementaciones que implementan partes de la funcionalidad del nodo Bitcoin. Por ejemplo , cdecker/pycoin tiene una implementación de red sólida, pero no incluye código de administración de billetera ni lógica de validación. richardkiss/pycoin , por otro lado, tiene algo de la lógica de la billetera, pero carece de redes. Otras bibliotecas incluyen:

Pero, que yo sepa, no existe un cliente independiente que incluya una billetera además del código de red.

Echa un vistazo a Tinychain .

No está completo y nunca interoperará con la red Bitcoin real, pero es un enfoque de "código de golf" para implementar todas las ideas centrales de Bitcoin (validación, minería POW, arquitectura peer-to-peer, estructuras de datos como TxIn /TxOut/Block, etc.) en Python.

Hay un proyecto, que es una implementación completa de bitcoin en python. El código fuente en https://github.com/csunny/py-bitcoin