溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么部署智能合約到infura中

發(fā)布時間:2021-12-29 14:39:25 來源:億速云 閱讀:93 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內(nèi)容主要講解“怎么部署智能合約到infura中”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么部署智能合約到infura中”吧!

在這個特定的例子中,我們將遷移到Ropsten測試網(wǎng)絡(luò)。 我們假設(shè)你已經(jīng)有了一個dapp, 如果需要一個測試dapp,可以使用Truffle提供的寵物店dapp。

安裝HDWalletProvider

Infura的HDWalletProvider是一個獨立的npm軟件包,如下安裝:

npm install truffle-hdwallet-provider

注意 :如果你在Windows上安裝并且遇到MSBUILD錯誤,則可能需要安裝Windows構(gòu)建工具。 在具有管理員權(quán)限的控制臺中,運行npm install -g windows-build-tools然后再次嘗試安裝。

注冊Infura

在使用Infura之前,需要注冊Infura訪問令牌 。

填寫并提交表格后你就可以收到訪問令牌。 相關(guān)信息將顯示在屏幕上并發(fā)送到你提供的電子郵件。 需要記錄下來這個訪問令牌并確保它不被別人看到!

配置Truffle項目

下一步是編輯你的truffle.js文件來啟用HDWalletProvider并為部署到Ropsten進行必要的配置。

STEP 1:首先,在配置文件中定義HDWalletProvider對象。 在truffle.js文件的頂部添加以下代碼:

var HDWalletProvider = require("truffle-hdwallet-provider");

STEP 2:接下來,提供助記詞(mnemonic )來生成你的賬戶。

var mnemonic = "orange apple banana ... ";

警告 :在此過程中,我們強烈建議將助記符存儲在另一個(秘密)文件中,以降低助記符泄漏風險。 如果有人知道你的助記符,他們將擁有你所有的地址和私鑰!

STEP 3:添加Ropsten網(wǎng)絡(luò)定義:

module.exports = { 
  networks: { 
    ropsten: { 
      provider: function() { 
        return new HDWalletProvider(mnemonic,
                "https://ropsten.infura.io/<INFURA_Access_Token>") 
        }, 
      network_id: 3 
    }
  } 
};

注意事項:

  • 雖然該示例僅定義了單個網(wǎng)絡(luò),但你可以像往常一樣定義多個網(wǎng)絡(luò)。

  • ropsten網(wǎng)絡(luò)定義中的provider將使用實例化的HDWalletProvider 。

  • HDWalletProvider以助記符和期望的網(wǎng)絡(luò)為參數(shù)。 Infura主頁上提供Infura支持的 網(wǎng)絡(luò)列表。

  • 確保使用前面拿到的Infura訪問令牌替換<INFURA_Access_Token> 。

  • provider值被封裝在一個函數(shù)中,這可以確保它在需要之前不會被初始化。 如果連接到多個網(wǎng)絡(luò),這一點尤為重要。 關(guān)于該主題的更多信息,請參閱Truffle文檔的網(wǎng)絡(luò)配置部分。

  • 默認情況下,由助記符產(chǎn)生的第一個賬戶將負責執(zhí)行合約遷移任務(wù)。 但如果需要的話,你可以傳入?yún)?shù)以指定要使用的帳戶。 例如,要使用第三個帳戶:

new HDWalletProvider(mnemonic, 
    "https://ropsten.infura.io/<Infura_Access_Token>", 2);

賬戶索引是從零開始的,所以2表示第三個地址。

使用Faucet獲取ether

確保你的帳戶有足夠的賬戶余額來進行部署。 可以通過稱Faucet的服務(wù)在Ropsten網(wǎng)絡(luò)上獲取Ether。 雖然在那里有多個Faucet網(wǎng)站,我們推薦的一個服務(wù)是在EthTools上托管的 。

  • 導航至EthTools的Ether Faucet 。

  • 輸入你的助記符,并選擇你想要多少ether(最多5個)。

  • Faucet將鏈接到你的第一個帳戶。 點擊“Request Ether”提交請求。

  • 很快,你的賬戶將獲得請求的ether。

注意 :也可以通過MetaMask申請ether。 在Ropsten上連接你的帳戶,然后點擊“Buy”按鈕,該按鈕將提供MetaMask的Ropsten測試Faucet的鏈接,它的工作方式與上述類似。

我們現(xiàn)在可以開始將合約部署到Ropsten上了!

部署合約

STEP 1: 編譯項目:

truffle compile

STEP 2:部署到Ropsten網(wǎng)絡(luò):

truffle migrate --network ropsten

如果一切順利,應(yīng)該可以看到類似于以下內(nèi)容的輸出:

Using network 'ropsten'. 

Running migration: 1_initial_migration.js 
  Deploying Migrations... 
  ... 0xd79bc3c5a7d338a7f85db9f86febbee738ebdec9494f49bda8f9f4c90b649db7
  Migrations: 0x0c6c4fc8831755595eda4b5724a61ff989e2f8b9 
Saving successful migration to network... 
  ... 0xc37320561d0004dc149ea42d839375c3fc53752bae5776e4e7543ad16c1b06f0 
Saving artifacts... 
Running migration: 2_deploy_contracts.js 
  Deploying MyContract... 
  ... 0x7efbb3e4f028aa8834d0078293e0db7ff8aff88e72f33960fc806a618a6ce4d3 
  MyContract: 0xda05d7bfa5b6af7feab7bd156e812b4e564ef2b1 
Saving successful migration to network... 
  ... 0x6257dd237eb8b120c8038b066e257baee03b9c447c3ba43f843d1856de1fe132 
Saving artifacts...

需要提醒的是,你的交易ID將與上面的不同。

注意 :如果收到錯誤Error: Exceeds block gas limit ,你可能需要為合約手動設(shè)置油量上限(gas limit)。 

STEP 3:如果想驗證合約是否已成功部署,可以在Etherscan的Ropsten部分進行檢查。 在搜索字段中,輸入部署交易ID。 在上面的例子中,交易ID是:

0x7efbb3e4f028aa8834d0078293e0db7ff8aff88e72f33960fc806a618a6ce4d3

你應(yīng)該可以看到有關(guān)交易的詳細信息,包括交易受到保護的區(qū)塊號。

到此,相信大家對“怎么部署智能合約到infura中”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI