Schritte zum Bereitstellen eines Vertrags mit MetaMask und Truffle [geschlossen]

Ich bin ein Anfänger, ich möchte meinen Vertrag im Ropsten-Netzwerk mit MetaMask & Truffle bereitstellen. Bitte erklären Sie mir die Schritte zur Bereitstellung.

Hi. Ich fürchte, Ihre Frage wird als zu allgemein gekennzeichnet. Sie könnten irgendwo wie Reddit fragen, und wenn Sie dann spezifische Probleme haben, fragen Sie sie hier. www.reddit.com/r/ethereum

Antworten (1)

Lösung 1: Mit Ihrem eigenen Knoten

Sie können problemlos im Ropsten-Netzwerk bereitstellen, wenn Sie einen vollständigen Knoten besitzen, der auf Ihrem Computer ausgeführt wird.

ich. Lauf geth

$ geth --fast --cache=1048 --testnet --unlock "0xmyaddress" --rpc --rpcapi "eth,net,web3" --rpccorsdomain '*' --rpcaddr localhost --rpcport 8545

ii. Fügen Sie in truffle.js die folgende Konfiguration für das Ropsten-Netzwerk hinzu

module.exports = {
  networks: {
    localhost: {
      host: "localhost", 
      port: 8546,
      network_id: "*" 
    },  
    ropsten: {
      host: "localhost",
      port: 8545,
      network_id: "3"
    }
  }
};

iii. Bereitstellung im Ropsten-Netzwerk

$ truffle migrate --network ropsten

Lösung 2: Mit einem öffentlichen Knoten wie Infura

ich. Installieren Sie die benötigten Bibliotheken

Navigieren Sie in den Projektordner und führen Sie den folgenden Befehl aus:

npm init

npm install truffle-hdwallet-provider --save

ii. Fügen Sie in truffle.js den folgenden Code hinzu, um Ihr Metamask-Konto zu entsperren, und konfigurieren Sie den Infura Ropsten-Knoten als Einstiegspunkt, indem Sie die mnemonische Phrase angeben (Metamask / Settings / Reveal Seed Words).

var HDWalletProvider = require("truffle-hdwallet-provider");

var infura_apikey = "XXXXXX";
var mnemonic = "twelve words you can find in metamask/settings/reveal seed words blabla";

module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 8545,
      network_id: "*" // Match any network id
    },
    ropsten: {
      provider: new HDWalletProvider(mnemonic, "https://ropsten.infura.io/"+infura_apikey),
      network_id: 3
    }
  }
};

iii. Bereitstellung im Ropsten-Netzwerk

$ truffle migrate --network ropsten

EDIT: Ersetzen Sie die Lösung durch truffle-hdwallet-provider.Weise einfachere Lösung alsethereumjs-wallet bip39 web3-provider-engine web3

Muss ich alle Blöcke herunterladen?
Bei der ersten Lösung benötigen Sie einen lokalen synchronisierten Full Node (alle Blöcke). Die zweite Lösung setzt auf einen Drittanbieter mit einem vollständig synchronisierten Knoten, Sie benötigen überhaupt keinen Knoten
Ich habe einen Fehler, wenn ich die zweite Lösung ausführe. Fehler: Modul „ethereumjs-wallet/hdkey“ kann nicht gefunden werden.
Hallo, sorry, ich habe einen Punkt in der zweiten Lösung vergessen. Sie müssen diesen Befehl zuerst ausführen: npm install ethereumjs-wallet bip39 web3-provider-engine web3 --save(Ich habe die Antwort mit den Details bearbeitet)
Das Problem wurde nicht behoben,Fehler: Modul 'ethereumjs-wallet/hdkey' kann nicht gefunden werden
Ich habe meinen Code auf Github gepusht, um Ihnen ein Beispiel zu geben: github.com/gjeanmart/stackexchange/tree/master/…
Ich habe viele fehlende Pakete wie Error: Cannot find module 'babel-register'. können Sie einige Informationen hinzufügen, um Sie über Ihr Profilkonto zu kontaktieren
Gibt es einen Grund, warum das nicht funktionieren sollte geth --light?
Für die zweite Lösung bekomme ich AssertionError [ERR_ASSERTION]: The field nonce must not have more 32 bytes. Mit truffle-hdwallet-provider 0.0.5.
Ich bin so nah dran, aber ich erhalte den Fehler: Fehler aufgetreten, Kaution. Netzwerkstatus unbekannt. Überprüfen Sie erfolgreiche Transaktionen manuell. unzureichende Mittel für Gas * Preis + Wert. Ich versuche, 1 Milliarde Token mit den folgenden Gas-Ropsten zu pushen: { Provider: new HDWalletProvider(mnemonic, " ropsten.infura.io/MYAPIADDRESS" ), network_id: 3, host: "127.0.0.1", port: 8545, gas : 2900000 Wie erhalte ich die Wallet-Adresse, damit ich sie über die ETH finanzieren kann? oder habe ich die Gaspreise falsch eingestellt?