Json-Rpc
為什麼比特幣 RPC 呼叫使用小數表示硬幣金額?
比特幣 RPC 呼叫都使用 8 位小數(‘reals’)來編碼 satoshis 的數量。例如,如果我得到一個交易輸出,它可能看起來像這樣:
{ “價值”:0.00050000, “n”:1, “scriptPubKey”:{ "asm" : "OP_HASH160 c6e0b29d2aa23b6436cec99e65dfeed2c64a2cad OP_EQUAL", “十六進制”:“a914c6e0b29d2aa23b6436cec99e65dfeed2c64a2cad87”, “reqSigs”:1, “類型”:“腳本雜湊”, “地址”:[ "3KpatoAjz3H5huJJieSpH4j7qFUeTXMnFC" ] }
開發人員決定使用“0.00050000”而不是“50000”是否有原因?一個整數似乎更適合電腦使用。
編輯:我想另一半是,如果 RPC 呼叫被一個人使用,那麼使用小數位數更容易(人類可以比 55000000 和 5500000 更容易分辨 5.5 和 0.55 之間的差異)。所以我想真正的問題是,RPC 介面是更多地用於人類命令行使用還是用於編碼應用程序的使用?
我會說 RPC 介面主要用作應用程序介面,但它也意味著足夠簡單以供人類使用。並且電腦比您想像的要少。
對於人類使用者來說,使用十進制比特幣(而不是整數 satoshis)讓生活變得更加輕鬆。對於編寫軟體來與之互動的人來說,這只會讓他們的生活變得更加複雜(您可能必須編寫一行額外的程式碼來插入和解析小數點)。執行它的電腦可能需要幾納秒才能執行程式碼,沒有人會注意到。所以總的來說,包含小數點似乎比不包含小數點更好。