Leveldb
為什麼乙太坊可以同時使用級別 db 執行這麼多程序?
Leveldb 只能在單個程序中執行。
為什麼乙太坊可以同時執行p2p、create block、rpc server,而leveldb沒有鎖?
您提到的所有模組:p2p、blocks、rpc 等,都在一個獨特的程序中執行:
geth
.在
geth
不同的模組內部可以訪問通過互斥鎖和其他同步原語(如鎖)同步的 leveldb。
當您執行像 levelDb 這樣的鍵值儲存時,瓶頸不是 CPU 使用,而是磁碟 IO。因此,如果您使用 1 個或多個程序來處理集合和獲取並不重要,但主要是硬碟驅動器的速度是相關的。