Solidity

如何在不執行完整節點的情況下編譯和部署智能合約?

  • May 24, 2018

我是 Solidity 和智能合約程式的新手。我已經成功地製作和部署了智能合約,但始終使用 Mist。

現在我做不到,因為我無法用完整的區塊鏈完成一個節點更新,現在我覺得我永遠不會結束。所以我正在尋找替代品。

所以,我的問題可能是非常基本的,但是有沒有辦法在不執行完整節點的情況下部署合約?

  1. 安裝https://metamask.io/
  2. 導航https://remix.ethereum.org/
  3. 點擊設置-> 選擇您的編譯器(例如 0.4.19+commit.c4cbbb05)。請注意,優化未選中。
  4. 登錄metmask選擇你的網路(我建議首先使用ropsten測試網路進行測試並使用購買按鈕從免費水龍頭中獲取ETH)
  5. 返回編譯選項卡
  6. 刪除範例合約的內容
  7. 粘貼到您的契約中(它應該自動編譯)
  8. 點擊執行選項卡
  9. 點擊部署按鈕
  10. Metamask 將打開,選擇您的 gas 價格並點擊送出簽署您的交易
  11. 再次打開metmask,點擊transaction hash,它會將你重定向到類似https://ropsten.etherscan.io/tx/0xabc123 …。
  12. 一經發布。點擊合約地址,該地址應為https://ropsten.etherscan.io/address/0x987cba之類的 url …
  13. 點擊 etherscan 上的合約程式碼選項卡,點擊驗證並發布
  14. 將合約的名稱設置為與 remix 中相同的名稱,將 Compiler 設置為與 remix 中相同的版本,如果您在步驟 3 中未在 remix 中點擊它,請將優化設置為“No”。

您現在應該有一個已發布的合約,其中包含 etherscan 上的原始碼。

我經常使用 truffle 和 infura.io 以程式和可重複的方式部署合約。

Infura 提供公共 web3 服務,您已經註冊到他們提供的服務,ACCESS_TOKEN您必須使用,例如https://mainnet.infura.io/ACCESS_TOKEN.

這不是一個完整的 geth 節點,有些東西還不支持

我按照本指南配置 truffle 以使用提供的 infura 端點Using Infura (or a custom provider)

另一種可能性是在QuickNode或類似服務中租用節點。

引用自:https://ethereum.stackexchange.com/questions/33536