Actualmente estoy trabajando con una cantidad de altcoins y necesito respaldar depósitos y retiros en monedas con un límite de número de moneda muy grande como Dogecoin. Me pregunto si el cliente Bitcoin Core que es la base para tales clientes de altcoin admite monedas de tan alta denominación internamente y en su API (por ejemplo, al llamar, getbalance
¿puede mostrar saldos de 10 ^ 12 monedas con una precisión de 1 satoshi?), o hay un límite a la precisión utilizada?
Como dijo Gracchus, Bitcoin usa internamente números enteros de 64 bits. La interfaz JSON de Bitcoin, por otro lado, usa dobles, que solo brindan una precisión de 52 bits. Ambos tipos son lo suficientemente grandes para bitcoin (el doble solo para el intercambio de datos, la precisión de los dobles no es suficiente para los cálculos reales).
En el caso específico de Dogecoin, la precisión de la interfaz JSON (y partes de la GUI) es un problema conocido que esperamos solucionar en el futuro. El manejo de valores en el rango de cientos de millones de dogecoin sufre de esto actualmente.
Los enteros de 64 bits utilizados internamente también son un problema para Dogecoin, que está siendo rastreado. Esto es principalmente un problema si alguien acumula al menos 2 ^ 64 Koinu (Satoshi) en una sola billetera. Este problema debe limitarse a la billetera, a nivel de protocolo, el tamaño de las transacciones está limitado a 10 mil millones de dólares.
No sé cómo otras monedas manejan esto. Hay al menos una moneda que admite precisión arbitraria, pero olvidé su nombre.
Parece como si el cliente oficial estuviera usando ,qint64
por lo que no habrá resolución más allá del punto decimal. El valor máximo es mayor que el máximo esperado de Bitcoin.
Simplemente use los mismos tipos de datos que las monedas en cuestión, y debería estar bien.
Puede usar una precisión arbitraria para las microbalanzas en su propia aplicación, pero no podrá transferirlas en la cadena de bloques oficial. Otros pueden admitir precisión arbitraria, pero todavía no he visto uno que lo haga.
elpiachu
Jannis Froese