Ich arbeite derzeit mit einer Reihe von Altcoins und muss Ein- und Auszahlungen in Währungen mit sehr großer Obergrenze für die Münzanzahl wie Dogecoin unterstützen. Ich frage mich, ob der Bitcoin Core-Client, der die Grundlage für solche Altcoin-Clients bildet, solche Währungen mit hohem Nennwert intern und in seiner API unterstützt ( getbalance
kann er beispielsweise beim Aufrufen von Guthaben von 10^12 Münzen mit einer Genauigkeit von 1 Satoshi anzeigen?), oder gibt es eine Grenze für die verwendete Genauigkeit?
Wie Gracchus sagte, verwendet Bitcoin intern 64-Bit-Ganzzahlen. Die JSON-Schnittstelle von Bitcoin hingegen verwendet Doubles, die nur eine Genauigkeit von 52 Bit ergeben. Beide Arten sind groß genug für Bitcoin (Double nur für den Datenaustausch, die Genauigkeit von Doubles reicht für tatsächliche Berechnungen nicht aus).
Im speziellen Fall von Dogecoin ist die Genauigkeit der JSON-Schnittstelle (und Teilen der GUI) ein bekanntes Problem, das wir hoffentlich in Zukunft beheben werden. Darunter leidet derzeit der Umgang mit Werten im Bereich von mehreren hundert Millionen Dogecoins.
Die intern verwendeten 64-Bit-Ganzzahlen sind auch ein Problem für Dogecoin, das verfolgt wird. Dies ist vor allem ein Problem, wenn jemand jemals mindestens 2^64 Koinu (Satoshi) in einer einzigen Brieftasche ansammelt. Dieses Problem sollte auf die Brieftasche beschränkt werden, auf Protokollebene ist die Größe der Transaktionen auf 10 Milliarden Dogen begrenzt.
Wie andere Coins das handhaben, weiß ich nicht. Es gibt mindestens eine Münze, die beliebige Präzision unterstützt, aber ich habe ihren Namen vergessen.
Es sieht so aus , als würde der offizielle Client verwenden qint64
, also gibt es keine Auflösung nach dem Dezimalkomma. Der Maximalwert ist größer als das erwartete Maximum von Bitcoin.
Verwenden Sie einfach die gleichen Datentypen wie die fraglichen Münzen, und Sie sollten in Ordnung sein.
Sie könnten Mikrowaagen in Ihrer eigenen App mit beliebiger Genauigkeit verwenden, aber Sie können sie nicht auf die offizielle Blockchain übertragen. Andere unterstützen möglicherweise willkürliche Genauigkeit, aber ich habe noch keine gesehen, die dies tut.
DerPiachu
Jannis Fröse