Wie kann ich Truffle verwenden, um meinen Vertrag in einem lokalen Testnet (nicht testrpc) bereitzustellen?

Ich habe die Schritte im folgenden Link befolgt, um ein lokales Ethereum-Testnetz zu erstellen, aber jetzt möchte ich einen Vertrag für „MyTestNetNode“ bereitstellen:

https://medium.com/@WWWillems/how-to-set-up-a-private-ethereum-testnet-blockchain-using-geth-and-homebrew-1106a27e8e1e

testrpc war keine gute Option, da test rpc den Status nicht speichert, wenn Sie den Daemon stoppen. Ich muss ein Testnetz mit Geth erstellen, was ich bereits getan habe, und ich möchte einen Vertrag mit Truffle darauf bereitstellen, ohne Fehler zu erhalten. Kann mir jemand helfen?

Sie können ganache-cli/testrpc konfigurieren, um eine Datenbank zu erstellen, die zwischen Sitzungen bestehen bleibt ethereum.stackexchange.com/questions/26759/… .

Antworten (2)

Sie müssen lediglich die Truffle-Konfigurationsdatei entsprechend Ihrer lokalen Konfiguration ändern:

module.exports = {
  networks: {
    development: {
      host: 'localhost',
      port: 8545, //the port of your local testnet
      network_id: '*' //any network ID
    }
  }
}

Darüber hinaus können Sie auch ganache-cli als testrpc-Client verwenden und den Parameter --dbzum Speichern der Datenbank hinzufügen. Auf diese Weise können Sie den Testknoten mit den gespeicherten Daten erneut ausführen, anstatt jederzeit von neuem zu beginnen

Meiner Erfahrung nach ist es einfacher, Testnetzwerke wie Rinkeby oder Ropsten zu verwenden. Ihr Status würde für die spätere Verwendung gespeichert. Sie müssen nur Ether für diese Netzwerke haben. Suchen Sie zum Beispiel nach Wasserhahn für Rinkeby und Sie werden eine Website finden, die Ihnen einen gefälschten Ether zur Verwendung in diesem Netzwerk zur Verfügung stellt.

Stellen Sie dann die truffle-config wie folgt ein:

rinkeby: {<
    provider: () => new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/${INFURA_KEY}`),
    network_id: 4,       // Rinkeby's id
    gas: 5500000,        // Rinkeby has a lower block limit than mainnet
    confirmations: 1,    // # of confs to wait between deployments. (default: 0)<
    timeoutBlocks: 200,  // # of blocks before a deployment times out  (minimum/default: 50)
    skipDryRun: true     // Skip dry run before migrations? (default: false for public nets )
  }

Und dann laufentruffle deploy --network rinkeby

Hinweis: Sie können hier auch Ihr eigenes privates Netzwerk definieren. Definieren Sie einfach einen Namen für Ihr Netzwerk und weisen Sie die IP, den Port und andere Dinge zu. Hier verwende ich Infra, um auf Rinkeby zuzugreifen, was wiederum für Entwicklungszwecke einfacher ist.