2

I am following the MyEtherWallet: Use Your Own Server Guide to use MyEtherWallet on my private ethereum network. I am doing this setup on my node, where my ethereum node runs.

I have done first 4 steps.

In response.js file: I have set host as:

host: '127.0.0.1'

In runLocalServer.js file: I have set app.use as:

app.use(vhost('127.0.0.1', require('./index.js').app));

Since port 80 is occupied, I have changed port number 80 to my free port number as 8000;

  • httpServer.listen(80); in runLocalServer.js.

  • httpServer.listen(80); in runServer.js

As recommended on Step-2 I run:

[~]$ node runLocalServer.js
//waits

But on Step-3, when I navigate to http://localhost/api.mew inside my node, I do have 404 or timeout errors. I was not able to end up on a empty/white page.

I was not able to figure out how to overcome this problem or where I am doing something wrong/missing. Any valuable guidance will be appreciated.

Thank you for your valuable time and help.

1 Answer 1

2

As you changed port from 80 to 8000, you need to navigate to http://localhost:8000/api.mew

Also later when changing SERVERURL you should put the same http://localhost:8000/api.mew

Please note that currently Use Your Own Server Guide does not correspond with recent release (3.4.2):

  • you need to change addresses in nodeIP.json, not response.js
  • when changing etherwallet-master.js it is easier to search for rpc.myetherwallet.com to get the line with SERVERURL

You can serve both api.mew and index.html from single port. Just edit json_relay_node/index.js and add app.use(express.static('../dist'));:

app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(express.static('../dist'));
app.get('/api.mew', function(req, res) {
    wait.launchFiber(handleRequest, req, res);
});
app.post('/api.mew', function(req, res) {
    wait.launchFiber(handleRequest, req, res);
});
10
  • It works one small question. As ip address I used: 127.0.0.1. I can only open index.html inside my local machine. But later on can I do something like: <mydomain>:8000/index.html using nodejs? for clients to reach the website.
    – alper
    Commented Jan 8, 2017 at 16:50
  • Yep, you need to change SERVERURL in etherwallet-master.js to <domain>:8000/api.mew and ensure that port 8000 is accessible from internet. Commented Jan 8, 2017 at 17:33
  • Changed Line: mewServer.prototype.SERVERURL = "http://<my_ip>:8000/api.mew"; I replaced 127.0.0.1 with my server's IP address in nodeIP.json and I do face with following error when I try to navigate into http://<my_ip>:8000/index.html error: Cannot GET /index.html and navigate into http://<my_ip>:8000/api.mew error: Cannot GET /api.mew
    – alper
    Commented Jan 8, 2017 at 17:41
  • 1
    Sorry, I misunderstood the question. You need to serve index.html and etherwallet-master.js separately. E.g. with nginx or python -m SimpleHTTPServer 8000. In this case you need two ports: one to serve api.mew and another one to serve index.html. Another option is to rewrite runLocalServer.js to serve both. Commented Jan 8, 2017 at 17:49
  • 1
    seems like it can't find your eth node Commented Jan 8, 2017 at 19:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.