首页 > 解决方案 > React.js 未连接到 EC2 上的 (localhost) Ganache:ERR_CONNECTION_REFUSED 127.0.0.1:8545

问题描述

在 Ubuntu Server 20.04 上使用以下安装:

sudo apt-get update 
sudo apt-get install nodejs 
sudo apt install python2 
sudo apt install npm 
npm install ganache-cli 
npm install node-gyp@3.6.2 
npm install truffle@5.1.39 
sudo npm install create-react-app@3.3.1 -global 
npm install

我遇到错误无法加载资源:net::ERR_CONNECTION_REFUSED 127.0.0.1:8545/:1

我正在使用命令行界面运行 ganache:

在此处输入图像描述

我可以通过节点命令提示符测试连接

在此处输入图像描述 我可以验证与 ganache 私有区块链的连接 在此处输入图像描述

然后我在 React 中尝试 App.js

在此处输入图像描述

获得以下错误: 在此处输入图像描述

我尝试了以下方法:

1.) Setting up a proxy under package.json   :    http://127.0.0.1:8545
2.) Trying http://0.0.0.0:8545
3.) Setting up a middleware proxy account as presented in the following solution: 
https://medium.com/bb-tutorials-and-thoughts/react-how-to-proxy-to-backend-server-5588a9e0347
"proxy": "http://127.0.0.1:8545"
4.) addressing cache related issues through  rm -r package-lock.json node_modules and npm install updating react.js to latest version 
5.) trying different port: 7545
6.) updating react to latest version on ubuntu

标签: reactjsganache

解决方案


我想通了 - 感谢所有审查我的问题的人。- 希望这会对处于相同情况的人有所帮助。要使用 React.js / blockchain dapp 连接到 ec2 实例,您需要遵循五个步骤: 1.) 设置适当的安全规则(您需要允许实例访问您的服务器)自由时尚,因为这只是一个测试: 在此处输入图像描述

  1. 您需要使用指定的显式chainId 和对您的公共域IPv4 DNS 域的直接引用来启动ganache,例如( http://ec2-54-186-149-26.us-west-2.compute.amazonaws.com

该命令应如下所示:在此处输入图像描述

3.) 需要在元掩码中指定相同的域助记符(以及从您的 ganache 服务器导入的帐户)它应该如下所示: 在此处输入图像描述

4.) React.js 还需要直接从 EC2 访问域(不要使用 localhost ,即使你在服务器上运行,环回也不起作用! - 也不要使用带有或(||)条件的快捷方式也为我产生了错误)。它应该如下所示:

在此处输入图像描述

5.) 你的智能合约也需要明确指定这个域 - 所以你还需要编辑你的 truffle-config.js 如下:

在此处输入图像描述

最后,我可以通过 EC2 在测试网络(ganache)上通过 React.js 读取我的区块链。以下是显示在屏幕上的区块链数据。

我希望这对那里的人有所帮助-这不容易找到。关于约翰 D。

在此处输入图像描述


推荐阅读