Wäre es dumm, seine eigene Kryptowährung in einer anderen Sprache als C/C++ zu schreiben?

Ich bin aus Performance-Sicht neugierig, ob es dumm ist, eine Kryptowährung von Grund auf in einer anderen Sprache als C/C++ zu schreiben?

Wenn ich zum Beispiel eine Kryptowährung und ein Protokoll in Python oder Nodejs schreiben wollte, würde ich später auf Leistungs- und Geschwindigkeitsprobleme stoßen, da diese Sprachen nicht so „low-level“ sind?

Oder gibt es neben der Leistung noch andere Probleme, auf die ich stoßen würde?

Alle Gedanken sind willkommen. Vielen Dank

Antworten (3)

Es gibt keinen Grund, warum eine Kryptowährung in einer einfachen Sprache geschrieben werden muss . Es ist nur so, dass Satoshis ursprüngliche Implementierung von Bitcoin zufällig in C++ war (vielleicht war das die Sprache, mit der er/sie sich am wohlsten fühlten), also scheinen jetzt viele Leute zu denken, dass es so sein muss . Das tut es nicht.

Sie könnten sicherlich eine Kryptowährung (entweder eine vorhandene oder eine völlig neu gestaltete) in Python oder Javascript oder so ziemlich alles andere implementieren. Wallet-Software verwaltet meistens eine große Datenbank mit einer Menge Hashing.

Beim Schreiben einer vollwertigen Kryptowährung in einer interpretierten Sprache treten viele Leistungsprobleme auf. Der Unterschied besteht nicht darin, ob Sie den Code in einer Hoch- oder Niedrigsprache implementieren, sondern ob diese Sprache kompiliert oder interpretiert wird.

JavaScript war traditionell eine interpretierte Sprache, aber viele neue JS-Engines (einschließlich Googles V8, die sowohl in Node.js als auch in Chromium verwendet werden) sind eigentlich Just-In-Time (JIT)-Compiler, was bedeutet, dass der Quellcode als Eingabe genommen und für die Maschine kompiliert wird Code zur Laufzeit. Aus diesem Grund sehen wir viele Bitcoin- und andere Kryptowährungsbibliotheken in JavaScript: Leistungssteigerungen durch Kompilieren in Maschinencode, aber Verwendung einer Hochsprache für das, was manche als bessere Entwicklungserfahrung betrachten. Python hingegen kann abhängig von Ihrer Laufzeit eine schlechte Wahl sein (ich weiß, dass es jetzt Python-Umgebungen gibt, die in Maschinencode kompiliert werden können, aber es ist heute meistens eine interpretierte Sprache).

Wallet-Software kann in verschiedenen Sprachen implementiert werden, um Bedenken hinsichtlich Portabilität und einfacher Einrichtung auszuräumen, da die Leistung hier weniger ein Problem sein sollte als bei Software, die für die Validierung von Transaktionen und das Mining entwickelt wurde.

Es gibt keine klare Unterscheidung zwischen "kompilierten" und "interpretierten" Programmiersprachen. Jedenfalls wäre eine solche Unterscheidung keine Eigenschaft der Sprache , sondern der Implementierung der Sprache. Da eine Sprache mehrere unterschiedliche Implementierungen haben kann, können Sie der Sprache als Ganzes kein solches Etikett zuordnen. Außerdem hat Python immer zu einem internen Bytecode kompiliert, der nicht weniger kompiliert ist als beispielsweise Java. Python wäre eine absolut vernünftige Wahl, um Wallet-Software zu schreiben, es kann problemlos mit Datenbanken umgehen und Hashing ist in nativem Code implementiert.

Einige Kryptowährungen/Systeme nach Implementierungssprache:

C++

Bitcoin und Derivate

Erlang

Ewigkeit , Arweave

gehen

Äther

Haskell

Cardano

Python

Chia

Rost

Polkadot und Derivate

Fühlen Sie sich frei, diese Antwort zu aktualisieren ...