無法連接到託管在本地 VM 上的私有區塊鏈
我想使用 remix IDE 並想連接需要連接到本地 VM 上執行的私有區塊鏈的 web3provider。我的系統在 Windows 10 上執行,我正在使用 vagrant 在本地執行 VM,隨後的 vagrant 文件是
Vagrant.configure("2") do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. config.vm.provider "virtualbox" do |vb| vb.customize ["modifyvm", :id, "--memory", "3072", "--cpus", "2", "--natnet1", "10.252/16"] end # Every Vagrant development environment requires a box. You can search for # boxes at https://vagrantcloud.com/search. config.vm.box = "ubuntu/xenial64" config.vm.box_version = "20190625.2.0" config.vm.network "forwarded_port", guest: 8000, host: 8080 config.vm.network "forwarded_port", guest: 3503, host: 8073 config.vm.network "forwarded_port", guest: 3505, host: 8075 config.vm.network "forwarded_port", guest: 8090, host: 8070 end
`
我創建了一個用作礦工的帳戶並使用命令連接該帳戶
nohup geth --datadir node1/ --syncmode 'full' --allow-insecure-unlock --port "30303" --rpc --rpcaddr "127.0.0.1" --rpcport "3503" --rpcapi 'personal,db,eth,net,web3,txpool,miner' --bootnodes 'enode://6b9a53203cd41106bf21c8496a1ff7d1e41b7437b9b41dedd557d89be35fcc3b18562f8ce81287b4872ca0adfc27c7b5ea98b159698ca7ac833ae133b82b672d@127.0.0.1:30302' --networkid 1505 --gasprice '1' --unlock 0 --p assword node1/password.txt --mine > node1/01.log 2>&1 &
儘管區塊鍊網路已啟動並正在執行,但無法連接本地瀏覽器上的混音 IDE 以連接到 VM 的區塊鏈。我用來連接 remix IDE 的 http 端點是**http://127.0.0.1:3503**
我嘗試將 rpcaddr 更改為“0.0.0.0”,但沒有用。你能幫我確定我會出錯的地方嗎?我是新手,請幫我解決這個問題。
把你的虛擬機想像成一台完全不同的機器。例如,它有另一個 IP。
127.0.0.1
訪問localhost
並因此訪問您的主機。那麼你如何解決這個問題?
您需要使用正確的 IP 連接到您的虛擬機。進入您的虛擬機並執行命令
ifconfig
。很多東西都被退回了。當您看到它時,您肯定會辨識出正確的 IP。例如 192.xxx.xxx.xxx(即使是第一個數字也會變化 192 或 172 或 10)。
然後,您可以使用這個新 IP 從您的主機系統進行連接。
e.g. http://192.168.21.145:3503
還有更多的東西需要考慮
要允許外部連接(主機 -> 虛擬機),您需要允許此 IP。
最簡單的方法是使用
rpcaddr 0.0.0.0
. 但這是非常不安全的。現在每個人都可以訪問您的節點(如果伺服器在 Internet 中執行而不是在本地 VM 上)。所以你應該指定哪個 IP 可以訪問你的節點。要麼手動輸入進行所有呼叫的設備 IP,要麼圍繞它建構一個 API 來為你處理這些東西。