Ganache
“ganache”是否實現了黃皮書中的規範?
我想知道在我的機器上生成區塊鏈並用於開發的 ganache 是否實現了乙太坊黃皮書協議。
請按照我的邏輯:
那就是編譯 Solidity 程式碼並生成字節碼的時候。在我的 CPU 上執行的 EVM 將字節碼解釋為機器碼,並讓我的 CPU 執行它,並勾選本地區塊鏈 ganache。
所以我假設 EVM(軟體)在本地和主測試網之間是相同的,但是這個機器程式碼的執行位置不同,一個在本地 CPU 上,另一個在執行完整節點的所有 CPU 上。我的解釋正確嗎?
是的,Ganache 通過使用 Ethereumjs 來模擬完整的客戶端行為來實現黃皮書中的規範,請參閱doc。
Ethereumjs是 Ethereum 虛擬機 (EVM) 的 Javascript/typescript 實現,因此您希望在 Geth、Parity 等客戶端上看到的任何行為都在 Ethereumjs 中得到支持。
所以是的,當部署在測試網/主網上時,你的 Solidity 程式碼應該以與在 Ganache 區塊鏈上執行的方式相同的方式執行。