Javascript

Hardhat:如何在特定區塊號“啟動”本地 JSON-RPC 分叉節點,並在其中部署我的新合約?

  • December 31, 2021

我可以在終端使用“旋轉”本地假區塊鏈

$ hardhat node

我還可以使用 Alchemy 使其分叉真正的主網,甚至將其固定到特定的塊N。然後其他本地應用程序可以連接http://localhost:8545到分叉的本地鏈並與之互動,直到我按下Ctrl+C該終端視窗並且我的本地JSON-RPC節點消失。到現在為止還挺好。

我的問題是:如何將此功能與部署合約結合起來?

我該怎麼

  1. 在 block 啟動分叉鏈N,因此它可以通過埠 8545 使用(啟動一個JSON-RPC執行直到我停止它的伺服器)
  2. 當我的分叉鏈啟動時,我如何將測試合約“部署到其中”(可能會將我的塊數從N增加到N + 1)?

我試過的:

我試過部署腳本。似乎我可以暫時在塊 N 處“啟動”所需的分叉鏈,但任何時候都無法通過埠 8545 訪問其他應用程序。

在腳本中,我可以使用通常的部署命令部署合約,甚至可以與我的合約進行互動。

不過,我真正需要的是一個“實時”(可通過埠 8545 或 8546 訪問)分叉鏈,其中包含我的全新合約,因此另一個應用程序(不是通過hardhathh命令啟動的)可以與之互動。

這可能嗎?

就像 Franco 在上一個答案中所說的那樣,您可以使用--network標籤部署到您正在執行的節點。為了便於部署,您可以使用hardhat deploy外掛。

我想補充一點,例如,您可以通過執行使其他人在本地可以訪問您正在執行的應用程序ngrok。由於您正在執行的節點是 on localhost:8545,您可以執行ngrok http 8545它會給您一個類似的 url,https://XXXX-XXXX.ngrok.io

然後您可以與其他人共享該連結(他們可以將其輸入到他們的 Metamask 中,或者您可以在您的 Web 應用程序中使用它。這很棒從本地主機快速測試應用程序的方法

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