Es gibt ein paar unten wiedergegebene Befehle, die ich erfolgreich in verwendet habe truffle console
, ausgeführt auf testrpc
, die funktionieren und die Antworten hervorrufen, die ich erwarte.
Wie kann ich sie ändern, um sie für anwendbar zu machen ropsten
? Wie kann ich sie über die geth
Konsole senden?
Der Vertrag, mit dem ich zu interagieren versuche, wurde in dieser Transaktion im Ropsten-Testnetz bereitgestellt .
Den Code des Vertrages finden Sie auf meinem GitHub .
Der erste Befehl, den ich verwenden möchte, besteht darin, die iteration
Variable zu erhöhen:
Incrementer.deployed().then(function(instance) {
meta = instance;
return meta.increment(1);
})
Als nächstes möchte ich das Ergebnis überprüfen:
Incrementer.deployed().then(function(instance) {
meta = instance;
return meta.getIteration();
})
An dieser Stelle habe ich herausgefunden, dass ich das ABI verwenden muss, aber das ist alles, was ich habe.
Wie kann ich diese Befehle in etwas umwandeln, das ich über die geth
Konsole in das ropsten
Testnetz senden kann?
Wird die Geth-Instanz auf Ropsten unter Verwendung des Standard-RPC-Ports 8545 ausgeführt? Wenn Sie es nicht als Befehlszeilenargument angegeben haben, wird dies der Fall sein. Wenn Sie auch testrpc verwenden, ohne einen Port anzugeben, verwendet testrpc auch 8545. Stellen Sie sicher, dass Sie testrpc beenden, wenn dies der Fall ist. Zwei Anwendungen können nicht denselben Port gleichzeitig verwenden.
Wenn Sie den Port angegeben haben, auf dem die Ropsten Geth-Instanz ausgeführt wird, muss er in der truffle.js-Konfiguration wie hier angegeben geändert werden: http://truffleframework.com/docs/advanced/configuration
Als Randbemerkung sollten Sie die Verwendung des Rinkeby-Testnetzes in Betracht ziehen: https://www.rinkeby.io/ Es ist zuverlässiger und enthält auf dieser einen Seite alles, was Sie zur Verwendung benötigen.
Ich hoffe das hilft.
Wie kann ich sie über die Geth-Konsole senden?
Wenn Sie damit meinen, wie man einen Geth-Knoten im Ropsten-Testnetzwerk einrichtet und mit Trüffel mit ihm interagiert, lesen Sie weiter.
Geben Sie im Terminal Folgendes ein:geth --testnet --rpc console
Warten Sie, bis der Knoten vollständig synchronisiert ist. Sie können überprüfen, indem Sie eingeben, eth.syncing
ob eth.syncing = false fertig ist. (Dieser Teil kann eine Weile dauern)
Überprüfen Sie Ihren http-Endpunkt, er sieht etwa so aus: HTTP-Endpunkt geöffnet url= http://127.0.0.1:8545
Fügen Sie in Ihrer truffle.js-Datei ropsten wie folgt hinzu:
Unter Windows kann es truffle-config.js heißen
networks: {
development: {
host: "127.0.0.1",
port: 7545,
network_id: "*" // Match any network id
},
ropsten: {
host: "localhost",
port: 8545,
network_id: "*",
gas: 4600000
}
}
Wenn Sie noch kein Konto haben, geben Sie es ein personal.newAccount()
und folgen Sie den Anweisungen. Gehen Sie dann zu: http://faucet.ropsten.be:3001/ und fügen Sie testnet ether zu Ihrem Konto hinzu
Gehen Sie zurück zum Terminal und geben Sie einpersonal.unlockAccount("your address")
Erstellen Sie eine zweite Terminal-Registerkarte in Ihrem Projektverzeichnis und führen Sie sie austruffle migrate --network ropsten
Vorausgesetzt, Ihr Vertrag und Ihre Migrationen wurden ordnungsgemäß eingerichtet. Ihr Vertrag sollte erfolgreich im Ropsten-Netzwerk bereitgestellt werden.
Auch ein tolles Tutorial dazu: https://medium.com/@guccimanepunk/how-to-deploy-a-truffle-contract-to-ropsten-e2fb817870c1
smatthewenglisch
willjgriff