Javascript
Hardhat:如何在特定區塊號“啟動”本地 JSON-RPC 分叉節點,並在其中部署我的新合約?
我可以在終端使用“旋轉”本地假區塊鏈
$ hardhat node
我還可以使用 Alchemy 使其分叉真正的主網,甚至將其固定到特定的塊
N
。然後其他本地應用程序可以連接http://localhost:8545
到分叉的本地鏈並與之互動,直到我按下Ctrl+C
該終端視窗並且我的本地JSON-RPC
節點消失。到現在為止還挺好。我的問題是:如何將此功能與部署合約結合起來?
我該怎麼做:
- 在 block 啟動分叉鏈
N
,因此它可以通過埠 8545 使用(啟動一個JSON-RPC
執行直到我停止它的伺服器)- 當我的分叉鏈啟動時,我如何將測試合約“部署到其中”(可能會將我的塊數從
N
增加到N + 1
)?我試過的:
我試過部署腳本。似乎我可以暫時在塊 N 處“啟動”所需的分叉鏈,但任何時候都無法通過埠 8545 訪問其他應用程序。
在腳本中,我可以使用通常的部署命令部署合約,甚至可以與我的合約進行互動。
不過,我真正需要的是一個“實時”(可通過埠 8545 或 8546 訪問)分叉鏈,其中包含我的全新合約,因此另一個應用程序(不是通過
hardhat
或hh
命令啟動的)可以與之互動。這可能嗎?
就像 Franco 在上一個答案中所說的那樣,您可以使用
--network
標籤部署到您正在執行的節點。為了便於部署,您可以使用hardhat deploy外掛。我想補充一點,例如,您可以通過執行使其他人在本地可以訪問您正在執行的應用程序
ngrok
。由於您正在執行的節點是 onlocalhost:8545
,您可以執行ngrok http 8545
它會給您一個類似的 url,https://XXXX-XXXX.ngrok.io
然後您可以與其他人共享該連結(他們可以將其輸入到他們的 Metamask 中,或者您可以在您的 Web 應用程序中使用它。這很棒從本地主機快速測試應用程序的方法