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 ropsten
y 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:8545
y 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!!! :)
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>
},
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.
Deepak Surya
Richard Horrocks