¿Sería estúpido escribir la propia criptomoneda en un lenguaje que no sea C/C++?

Tengo curiosidad desde la perspectiva del rendimiento si escribir una criptomoneda desde cero en un lenguaje que no sea C/C++ sería estúpido.

Por ejemplo, si quisiera escribir una criptomoneda y un protocolo en Python o Nodejs, ¿me encontraría con problemas de rendimiento y velocidad más adelante, ya que estos lenguajes no son de "bajo nivel"?

¿O hay otros problemas además del rendimiento con los que me encontraría?

Cualquier pensamiento es apreciado. Gracias

Respuestas (3)

No hay ninguna razón por la que una criptomoneda deba escribirse en un lenguaje de bajo nivel. Es solo que la implementación original de Bitcoin de Satoshi estaba en C ++ (quizás ese era el lenguaje con el que se sentía más cómodo), por lo que ahora mucha gente parece pensar que tiene que ser así. no lo hace

Sin duda, podría implementar una criptomoneda (ya sea una existente o una totalmente nueva), en Python, Javascript o prácticamente cualquier otra cosa. El software de billetera administra principalmente una gran base de datos con un montón de hash.

Escribir una criptomoneda completa en un lenguaje interpretado verá muchos problemas de rendimiento. La diferencia no es si implementa el código en un lenguaje de alto o bajo nivel, es si ese lenguaje es compilado o interpretado.

JavaScript era tradicionalmente un lenguaje interpretado, pero muchos motores JS nuevos (incluido el V8 de Google, utilizado en Node.js y Chromium) son en realidad compiladores Just-In-Time (JIT), lo que significa que el código fuente se toma como entrada y se compila en la máquina. código en tiempo de ejecución. Esta es la razón por la que vemos muchas bibliotecas de Bitcoin y otras criptomonedas en JavaScript: ganancias de rendimiento al compilar en código de máquina, pero usando un lenguaje de alto nivel para lo que algunos consideran una mejor experiencia de desarrollo. Python, por otro lado, puede ser una mala elección, dependiendo de su tiempo de ejecución (sé que ahora hay entornos de Python que pueden compilar en código de máquina, pero hoy en día es principalmente un lenguaje interpretado)

El software de billetera se puede implementar en diferentes idiomas para resolver las preocupaciones sobre la portabilidad y la facilidad de configuración, ya que el rendimiento debería ser un problema menor aquí que en el caso del software diseñado para validar transacciones y minería.

No existe una distinción clara entre lenguajes de programación "compilados" e "interpretados". En todo caso, tal distinción no sería una propiedad de la lengua , sino de la implementación de la lengua. Dado que un idioma puede tener múltiples implementaciones diferentes, no puede adjuntar una etiqueta de este tipo al idioma en su conjunto. Además, Python siempre se ha compilado en un código de bytes interno, que no está menos compilado que, por ejemplo, Java. Python sería una opción perfectamente razonable para escribir software de billetera, puede manejar bases de datos sin problemas y el hashing se implementa en código nativo.

Algunas criptomonedas/sistemas por lenguaje de implementación:

C++

Bitcoin y derivados

Erlang

Eternidad , Arweave

Vamos

Etéreo

Haskell

Cardano

Pitón

chía

Óxido

Polkadot y derivados

Siéntete libre de actualizar esta respuesta...