Ich habe noch eine n00b-Frage ... Entschuldigung dafür :(
Ich versuche, Ropsten einen intelligenten Vertrag bereitzustellen. Ich habe das Ropsten-Netzwerk mit synchronisiert geth --testnet --fast --rpc --rpcapi eth,net,web3,personal
, und es sieht absolut aktuell aus.
Dann versuche ich, diesen intelligenten Vertrag (den ich bereits in meinem privaten Testrpc-Netzwerk bereitgestellt habe und der einwandfrei funktioniert) für Ropsten bereitzustellen. Dazu führe ich aus truffle migrate --network ropsten
und erhalte diesen lästigen Fehler:
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)
Die Geth-Instanz läuft tatsächlich, da ich mich damit verbinden kann geth attach http://127.0.0.1:8545
und es funktioniert gut. Es akzeptiert Verbindungen, da ich die Option --rpc verwendet habe. Es ist über das Netzwerk zugänglich, weil ich bereits darauf zugegriffen habe ... und ich denke, dann ist meine Truffle-Konfigurationsdatei in Ordnung, so sieht es aus:
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",
}
}
}
Kann mir bitte jemand sagen, warum ich diesen Fehler bekomme und was ich tun kann, um ihn zu beheben?
Vielen Dank im Voraus!!! :)
Als ich meinen Vertrag über Trüffel im Rinkeby-Netzwerk einsetzte, bekam ich auch den gleichen Fehler, nachdem ich von Adresse und Gas hinzugefügt hatte, es wurde eingesetzt. Versuche dies
networks: {
ropsten: {
network_id: 3,
host: '127.0.0.1',
port: 8545,
gas: 4000000,
from: <your unlocked ropsten account address>
},
Es ist schwierig, Ihr Ropsten-Konto freizuschalten. Sie können sich für die Bereitstellung privater Schlüssel entscheiden. Ich habe lib für so etwas gebaut.
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()
Platzieren Sie dies in einer einfachen js-Datei und führen Sie es mit node. Hoffe das hilft.
Deepak Surya
Richard Horrocks