Import
導入私鑰:為什麼這麼快?
我剛剛導入了兩個私鑰,
geth
並且zcash-cli
. 雖然zcash-cli
(公共t.*
地址)花了超過 15 分鐘*(我猜它掃描了整個區塊鏈),geth
但幾乎立即完成了導入。我的問題是:引擎蓋下發生了什麼?為什麼
geth
速度這麼快?這個答案表明網路中的其他節點被查詢餘額?
謝謝!
*老實說,我離開了電腦,所以這只是一個粗略的估計。
我猜速度比較是針對導入比特幣私鑰的。如果是這樣,差異的原因是由於
- 比特幣基於未使用的交易輸出(UTXO)。每筆比特幣交易都會消耗之前的 UTXO 並輸出新的 UTXO。“餘額”本質上是一個衍生概念,基於錢包 UTXO 的總和。由於它不是“本地的”,因此必須通過從創世塊一直向下遍歷來計算總和,因為可能有一個舊的舊 UTXO 支付到導入的私鑰中。只有知道私鑰的創建時間(因此可以跳過之前的 UTXO),才能優化鏈遍歷。遍歷需要時間,因此速度很慢。
- 相比之下,“餘額”相對於乙太坊來說更加“原生”。乙太坊交易是關於賬戶的狀態轉換。“餘額”是賬戶狀態的一部分(例如,交易正在賬戶之間移動餘額)。因此,正如 Hari 上面的回答,同步節點總是知道每個“狀態”,因此每個帳戶的餘額。
另請參閱:乙太坊餘額與 UTXO 的優缺點是什麼?