web3.isConnected() devuelve falso cuando se conecta a geth con web3.js

Soy totalmente nuevo en cosas de criptomonedas. He instalado geth y web3 . Quiero crear una página web que muestre el saldo de la cuenta. Comienzo geth con el siguiente comando

build/bin/geth --rpc  --rpcaddr 127.0.0.1 --rpcport 8545 --rpcapi web3,db,eth,net,personal

[ec2-user@ip ethereum]$ curl http://127.0.0.1:8545  
[ec2-user@ip ethereum]$ curl http://127.0.0.1:8545  
[ec2-user@ip ethereum]$ sudo netstat -nlp | grep :8545   tcp        0      0 127.0.0.1:8545              0.0.0.0:*                   LISTEN      18238/build/bin/get

Mi código en stest.html es:

<script src="web3.js/dist/web3.js"></script> 
<script>  
if (typeof web3 !== 'undefined') {  
  web3 = new Web3(web3.currentProvider);  
} else {  
  // set the provider you want from Web3.providers  
  var web3 = new Web3(new Web3.providers.HttpProvider("http://127.0.0.1:8545"));  
  //var web3 = new Web3('http://localhost:8545'); // TypeError:   this.provider.send is not a function
}  
console.log(web3); // {eth: .., shh: ...} // it's here!  
if(!web3.isConnected()) {  
  console.log("fail");  
} else {  
  console.log("succ");  
}  
//var coinbase = web3.eth.coinbase;  
//var balance = web3.eth.getBalance(coinbase);  
//console.log(web3.eth.accounts);  
var version = web3.version.api;  
console.log(version); // "0.2.0"  
var version = web3.version.node;  
console.log(version);

Recibo los siguientes errores en la consola del navegador cuando ejecuto stest.html:

Object { _requestManager: {…}, currentProvider: {…}, eth: {…}, db: {…}, shh: {…}, net: {…}, personal: {…}, bzz: {…}, settings: {…}, version: {…}, … }
stest.html:13:1


fail

0.20.5

Error: CONNECTION ERROR: Couldn't connect to node http://127.0.0.1:8545.
web3.js:3118:16

Source map error: request failed with status 404
Resource URL: http://34.215.167.9/plugins/ethereum/web3.js/dist/web3.js
Source Map URL: web3.js.map

A continuación se muestra la información que obtuve de la terminal:

[ec2-user@ip go-ethereum]$ build/bin/geth version  
Geth
Version: 1.8.0-unstable   
Git Commit: 722bac84fa503199b9c485c1a3e2bfba03bc487d  
Architecture: amd64  
Protocol Versions: [63 62]  
Network Id: 1  
Go Version: go1.8.4  
Operating System: linux  
GOPATH=
GOROOT=/usr/lib/golang
  1. Perdón por el formato de la pregunta. Quería agregar la mayor cantidad de información posible. Edite la pregunta o solicite más información.
  2. ¿Cómo puedo evitar el "Error de conexión"?
  3. ¿Es correcto este método de conexión a Ethereum?
  4. ¿Cómo puedo mejorar mi código?
  5. He intentado algunas preguntas aquí, pero ninguna respuesta resuelve mi error.

ACTUALIZACIÓN : ahora CURL da resultado después de comenzar con el siguiente comando geth

build/bin/geth --rpc --rpccorsdomain "http://localhost:8545"

$ curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' http://127.0.0.1:8545  
{"jsonrpc":"2.0","id":67,"result":"Geth/v1.8.0-unstable-722bac84/linux-amd64/go1.8.4"}

Pero en el error de la consola del navegador cambió a

ReferenceError: Web3 is not defined
¿Está seguro de que el script existe en la ubicación dada <script src="web3.js/dist/web3.js"></script> ? Web3 no está definido. ¿Error al vincular su biblioteca?
sí, el script está cargado. La consola no muestra el error 404
He clonado git web3 de github en el mismo directorio que stest.html
<script> var Web3 = require('web3'); if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); } else { // set the provider you want from Web3.providers var web3 = new Web3(new Web3.providers.HttpProvider("http://127.0.0.1:8545")); //var web3 = new Web3('http://localhost:8545'); // TypeError: this.provider.send is not a function }

Respuestas (1)

Una posibilidad es el tema CORS. No puedo estar seguro con la información dada. Agregue la siguiente opción a su comando de inicio geth

--rpccorsdomain "*"
Error: CONNECTION ERROR: Couldn't connect to node http://127.0.0.1:8545.El problema permanece.
La mía es una instancia ec2. ¿Qué otra información podría ayudarlo a depurar el problema?