Bereitstellung von Verträgen in Ropsten mit Truffle

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 ropstenund 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:8545und 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!!! :)

Wenn ich aus dem Feld hinzufüge, gibt es eine ungültige Adresse zurück, aber wenn ich das aus-Feld entferne, bleibt es hängen
Damit ist die Frage nicht beantwortet. Sobald Sie über einen ausreichenden Ruf verfügen , können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten an, die keine Klärung durch den Fragesteller erfordern . - Aus Bewertung

Antworten (2)

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>
  },
Vielen Dank Jazz! Nun, sieht ein bisschen besser aus, jetzt bekomme ich diese 2 neuen Zeilen, aber es schlägt immer noch fehl :( --->Using network 'ropsten'. --->Running migration: 1_initial_migration.js Konnte keine Verbindung zu Ihrem Ethereum-Client herstellen (etc ...)
Ok, sieht so aus, als ob das Problem darin besteht, dass meine Blockchain-Datenbank beschädigt wurde, also muss ich erneut synchronisieren ... Aaaarrgghhh!!
Endlich hat es geklappt, vielen Dank!! :) Es ist wichtig zu beachten, dass der einzige Inhalt von truffle.js das sein muss, was Sie geschrieben haben ... Ich musste ein anderes Netzwerk entfernen, das ich in dieser Datei konfiguriert hatte, damit das Ganze funktionieren konnte.
Sie können auch den folgenden Befehl verwenden, um speziell ein Netzwerk zu verwenden, wenn Sie mehrere Netzwerke konfiguriert haben. trüffel migrieren --network ropsten

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.