¿Por qué las llamadas RPC de Bitcoin usan decimales para las cantidades de monedas?

Las llamadas RPC de Bitcoin utilizan decimales de 8 dígitos ("reales") para codificar cantidades de satoshis. Por ejemplo, si obtengo un resultado de transacción, podría verse así:

{
  "valor": 0.00050000,
  "n": 1,
  "scriptPubKey": {
  "asm": "OP_HASH160 c6e0b29d2aa23b6436cec99e65dfeed2c64a2cad OP_EQUAL",
  "hexadecimal": "a914c6e0b29d2aa23b6436cec99e65dfeed2c64a2cad87",
  "reqSigs": 1,
  "tipo": "scripthash",
  "direcciones" : [
    "3KpatoAjz3H5huJJieSpH4j7qFUeTXMnFC"
  ]
}

¿Hay alguna razón por la cual los desarrolladores decidieron trabajar con "0.00050000" en lugar de solo "50000"? Parece que sería mejor para las computadoras trabajar con un número entero.


EDITAR: Supongo que la otra mitad de esto es que si una persona usa las llamadas RPC, entonces es más fácil usarlas con cantidades en decimales (un humano puede notar la diferencia entre 5.5 y 0.55 mucho más fácil que 55000000 y 5500000 ). Entonces, supongo que la verdadera pregunta es, ¿la interfaz RPC está destinada a usarse más para el uso de la línea de comandos humana o para el uso de aplicaciones de codificación?

Respuestas (1)

Diría que la interfaz RPC está pensada principalmente como una interfaz de aplicación, pero también debe ser lo suficientemente simple para que la use un ser humano. Y a la computadora le importa menos de lo que crees.

Para los usuarios humanos, el uso de bitcoins decimales (en lugar de satoshis enteros) hace la vida mucho más fácil. Para las personas que escriben software para interactuar con él, hace que su vida sea infinitamente más complicada (tiene que escribir tal vez una línea adicional de código para insertar y analizar el punto decimal). La computadora que lo ejecuta tarda tal vez unos nanosegundos más en ejecutar el código, lo que nadie notará. Entonces, en general, parece que se logra más bien al incluir el punto decimal que al no incluirlo.