Implementación de contratos en Ropsten con Truffle

Tengo otra pregunta n00b... lo siento por eso :(

Estoy tratando de implementar un contrato inteligente en Ropsten. He sincronizado la red de Ropsten con geth --testnet --fast --rpc --rpcapi eth,net,web3,personal, y parece perfectamente actualizada.

Luego intento implementar ese contrato inteligente (que ya implementé en mi red privada de prueba y funciona perfectamente) en Ropsten. Para hacerlo, estoy ejecutando truffle migrate --network ropsteny recibo este molesto error:

Could not connect to your Ethereum client. Please check that your Ethereum client:
    - is running
    - is accepting RPC connections (i.e., "--rpc" option is used in geth)
    - is accessible over the network
    - is properly configured in your Truffle configuration file (truffle.js)

De hecho, la instancia de geth está en funcionamiento, ya que puedo conectarme geth attach http://127.0.0.1:8545y funciona bien. Está aceptando conexiones, ya que usé la opción --rpc. Es accesible a través de la red porque ya he accedido... y creo que mi archivo de configuración de Truffle está bien, así es como se ve:

require('babel-register')

module.exports = {
  networks: {
    development: {
      host: 'localhost',
      port: 8545,
      network_id: '*' // Match any network id
    },
    ropsten: {
      host: "localhost",
      port: 8545,
      network_id: "3",
    }
  }
}

¿Alguien puede decirme por qué recibo este error y qué puedo hacer para solucionarlo?

¡¡¡Muchas gracias de antemano!!! :)

si agrego desde el campo, devuelve una dirección no válida, pero si elimino el campo desde, se atasca
Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación , podrá comentar cualquier publicación ; en su lugar, proporcione respuestas que no requieran aclaración por parte del autor de la pregunta . - De la revisión

Respuestas (2)

Cuando estaba implementando mi contrato a través de truffle en la red rinkeby, también recibí el mismo error después de agregar desde la dirección y el gas que se implementó. Prueba esto

networks: {
  ropsten: {
    network_id: 3,
    host: '127.0.0.1',
    port: 8545,
    gas: 4000000,
    from: <your unlocked ropsten account address>
  },
¡Muchas gracias Jazz! Bueno, se ve un poco mejor, ahora obtengo estas 2 líneas nuevas, pero aún falla :( --->Usando la red 'ropsten'. --->Ejecutando migración: 1_initial_migration.js No se pudo conectar a su cliente Ethereum (etc. ...)
Ok, parece que el problema podría ser que mi base de datos de blockchain se ha dañado, así que necesito sincronizar de nuevo... ¡¡Aaaarrgghhh!!
Por fin funciono, muchas gracias!! :) Es importante tener en cuenta que el único contenido de truffle.js debe ser lo que escribiste... Tuve que eliminar otra red que había configurado en ese archivo para que todo esto pudiera funcionar.
También puede usar el siguiente comando para usar específicamente una red, si tiene varias redes configuradas. migración de trufa --red ropsten

Es difícil desbloquear su cuenta de ropsten. Puede optar por la implementación de clave privada. He compilado lib para algo como esto.

const etherlime = require('etherlime');

const ICOTokenContract = require('./build/contracts/ICOToken.json');

const randomAddress = '0xda8a06f1c910cab18ad187be1faa2b8606c2ec86';

const defaultConfigs = {
    gasPrice: 20000000000,
    gasLimit: 4700000
}

const deployer = new etherlime.InfuraPrivateKeyDeployer('Your Privste KEY', 'ropsten', 'Your infura API key', defaultConfigs);

const runICODeployment = async () => {
    const contractWrapper = await deployer.deploy(ICOTokenContract);
    const transferTransaction = await contractWrapper.contract.transferOwnership(randomAddress);
    const result = await contractWrapper.verboseWaitForTransaction(transferTransaction.hash, 'Transfer Ownership');
}
runICODeployment()

Coloque esto en un archivo js simple y ejecútelo con node. Espero que esto ayude.