Truffle
甘納許和松露的區別
這兩者有什麼區別?我知道 Ganache 就像一個
fake
區塊鏈,但 Truffle 也有嗎?每個有什麼限制,我們在什麼情況下使用它們中的任何一個?
Ganache允許您創建一個私有的乙太坊區塊鏈,以便您在控制鏈的執行方式的同時執行測試、執行命令和檢查狀態。它使您能夠在沒有成本的情況下執行您在主鏈上執行的所有操作。許多開發人員在開發過程中使用它來測試他們的智能合約。它提供了方便的工具,例如高級採礦控制和內置的區塊瀏覽器。
Truffle是區塊鏈的開發環境、測試框架和資產管道。它允許開發人員通過點擊按鈕啟動智能合約項目,並為您提供項目結構、文件和目錄,使部署和測試更加容易(否則您必須自己配置這些)。
在哪種情況下我們使用它們中的任何一個
作為開發人員,您將啟動一個Truffle (
truffle init
) 項目,該項目會列出您的項目結構。一旦你開始一點點編碼,你會想要測試程式碼,但需要一個區塊鏈來這樣做。現在你執行Ganache作為這個區塊鏈。在您的部署文件(Truffle 在您創建項目時提供給您的文件)中,您可以將您的項目指向使用 Ganache 或使用主網路。然後,您可以執行truffle migrate
(它會自動truffle compile
為您執行),使用您在遷移文件中提供的數據部署契約。各有什麼限制
Truffle 並沒有真正受到限制,因為它所做的只是為您提供一個框架來塑造一個項目。唯一的“限制”只是他們可能尚未添加的功能。
Ganache 有點不同,因為它試圖模仿主網路。這裡有幾個問題:
- Ganache 上沒有礦工。因此,您無法準確地模仿主網路上的礦工行為。舉個例子,假設你想發送一個幾乎填滿整個區塊的交易。您可以在 Ganache 上將區塊高度設置為 7M,然後發送 6.9M 的交易沒問題。在主網路上(取決於目前的吞吐量),此交易可能會或可能不會被探勘。
- 主
gasLimit
網路上的 是一個移動的目標(它可以由礦工更改。如果由於某種原因,你依賴於一個確切的數字(你可以在 Ganache 中設置),你可能會發現你會遇到問題。