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.
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
npm install ethereumjs-wallet bip39 web3-provider-engine web3 --save
(Ich habe die Antwort mit den Details bearbeitet)geth --light
?AssertionError [ERR_ASSERTION]: The field nonce must not have more 32 bytes
. Mit truffle-hdwallet-provider 0.0.5.
Richard Horrocks