Truffle stellt den angegebenen Vertrag im angegebenen Netzwerk bereit

Zusammenfassung: Der angegebene Vertrag wird in Truffle bereitgestellt, was anhand des Index der Datei unterschieden werden kann.Im Verzeichnis /migrations befinden sich beispielsweise die folgenden drei Dateien: 1_inital_migrations.js

    Die Bereitstellung des angegebenen Vertrags in Truffle kann anhand des Index der Datei unterschieden werden.Im Verzeichnis /migrations befinden sich beispielsweise die folgenden drei Dateien:
    1_inital_migrations.js
    2_deploy_HWT.js
    3_deploy_SZT.js

    Verwenden Sie den folgenden Befehl, um den zweiten Vertrag bereitzustellen: 2_deploy_HWT.js:

migrate -f 2 --to 2

    Stellen Sie auf ähnliche Weise den dritten Vertrag bereit: 2_deploy_SZT.js, verwenden Sie den Befehl:

migrate -f 3 --to 3

    Stellen Sie analog den n-ten Vertrag bereit: n_deploy_XXX.js, verwenden Sie den Befehl:

migrate -f n --to n

1 Geben Sie das angegebene Netzwerksegment ein

1.1 Gemeinsame Konfiguration

    Aktivieren Sie die Mnemonik, den privaten Schlüssel und andere Konfigurationen in truffle-config.js.

const fs = require('fs');

const HDWalletProvider = require('@truffle/hdwallet-provider');
const infuraKey = fs.readFileSync(".infuraKey").toString().trim();
const mnemonic = fs.readFileSync(".mnemonic").toString().trim();

1.2 ropsten Netzwerksegmentkonfiguration

    Aktivieren Sie im Netzwerkfeld von truffle-config.js die Ropsten-Netzwerksegmentkonfiguration

    ropsten: {
      provider: () => new HDWalletProvider(mnemonic, `https://ropsten.infura.io/v3/` + infuraKey),
      network_id: 3,       // Ropsten's id
      gas: 5500000,        // Ropsten has a lower block limit than mainnet
      confirmations: 2,    // # of confs to wait between deployments. (default: 0)
      timeoutBlocks: 20000,  // # of blocks before a deployment times out  (minimum/default: 50)
      skipDryRun: true,     // Skip dry run before migrations? (default: false for public nets )
      port: 8545
    },

1.3 rinkeby-Netzwerksegmentkonfiguration

    Aktivieren Sie im Netzwerkfeld von truffle-config.js die Netzwerksegmentkonfiguration von rinkeby

    rinkeby: {
      provider: () => new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/` + infuraKey),
      network_id: 4,
    },

1.4 Konfiguration des Kovan-Netzwerksegments

    Aktivieren Sie im Netzwerkfeld von truffle-config.js die Kovan-Netzwerksegmentkonfiguration

    kovan: {
      provider: () => new HDWalletProvider(mnemonic, `https://kovan.infura.io/v3/` + infuraKey),
      network_id: 42,
    },

1.5 Mainnet-Konfiguration

    Aktivieren Sie im Netzwerkfeld von truffle-config.js die Hauptnetzwerkkonfiguration

    mainnet: {
      provider: () => new HDWalletProvider(mnemonic, `https://mainnet.infura.io/v3/` + infuraKey),
      network_id: 1,
    },

1.6 Ganache-Konfiguration

    Fügen Sie im Netzwerkfeld von truffle-config.js ein Ganache-Netzwerksegment für lokale Tests hinzu

    ganache: {
      host: "127.0.0.1",     // Localhost (default: none)
      port: 8545,            // Standard Ethereum port (default: none)
      network_id: "*",       // Any network (default: none)
    },

    Die vollständige Konfiguration von truffle-config.js sieht wie folgt aus:
    //truffle-config.js

const fs = require('fs');

const HDWalletProvider = require('@truffle/hdwallet-provider');
const infuraKey = fs.readFileSync(".infuraKey").toString().trim();
const mnemonic = fs.readFileSync(".mnemonic").toString().trim();

module.exports = {
  networks: {
  
    ganache: {
      host: "127.0.0.1",     // Localhost (default: none)
      port: 8545,            // Standard Ethereum port (default: none)
      network_id: "*",       // Any network (default: none)
    },
    // development: {
    //   host: "127.0.0.1",     // Localhost (default: none)
    //   port: 8545,            // Standard Ethereum port (default: none)
    //   network_id: "*",       // Any network (default: none)
    // },
    // develop: {
    //   host: "127.0.0.1",     // Localhost (default: none)
    //   port: 8545,            // Standard Ethereum port (default: none)
    //   network_id: "*",       // Any network (default: none)
    //   gas: 8500000,           // Gas sent with each transaction (default: ~6700000)
    //   gasPrice: 20000000000,  // 20 gwei (in wei) (default: 100 gwei)
    // },

    // Another network with more advanced options...
    // advanced: {
    // port: 8777,             // Custom port
    // network_id: 1342,       // Custom network
    // gas: 8500000,           // Gas sent with each transaction (default: ~6700000)
    // gasPrice: 20000000000,  // 20 gwei (in wei) (default: 100 gwei)
    // from: <address>,        // Account to send txs from (default: accounts[0])
    // websockets: true        // Enable EventEmitter interface for web3 (default: false)
    // },

    // Useful for deploying to a public network.
    // NB: It's important to wrap the provider as a function.
    ropsten: {
      provider: () => new HDWalletProvider(mnemonic, `https://ropsten.infura.io/v3/` + infuraKey),
      network_id: 3,       // Ropsten's id
      gas: 5500000,        // Ropsten has a lower block limit than mainnet
      confirmations: 2,    // # of confs to wait between deployments. (default: 0)
      timeoutBlocks: 20000,  // # of blocks before a deployment times out  (minimum/default: 50)
      skipDryRun: true,     // Skip dry run before migrations? (default: false for public nets )
      port: 8545
    },

    rinkeby: {
      provider: () => new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/` + infuraKey),
      network_id: 4,
    },
    
    kovan: {
      provider: () => new HDWalletProvider(mnemonic, `https://kovan.infura.io/v3/` + infuraKey),
      network_id: 42,
    },
    
    mainnet: {
      provider: () => new HDWalletProvider(mnemonic, `https://mainnet.infura.io/v3/` + infuraKey),
      network_id: 1,
    },
    // Useful for private networks
    // private: {
    // provider: () => new HDWalletProvider(mnemonic, `https://network.io`),
    // network_id: 2111,   // This network is yours, in the cloud.
    // production: true    // Treats this network as if it was a public net. (default: false)
    // }
  },

  // Set default mocha options here, use special reporters etc.
  mocha: {
    timeout: 300000,
	  reporter: 'eth-gas-reporter',
    reporterOptions: { excludeContracts: ['Migrations'] }
  },

  // Configure your compilers
  compilers: {
    solc: {
      version: "0.5.12",    // Fetch exact version from solc-bin (default: truffle's version)
      // docker: true,        // Use "0.5.1" you've installed locally with docker (default: false)
      // settings: {          // See the solidity docs for advice about optimization and evmVersion
      //  optimizer: {
      //    enabled: false,
      //    runs: 200
      //  },
      //  evmVersion: "byzantium"
      // }
    },
  },
};

2 Stellen Sie den angegebenen Vertrag im angegebenen Netzwerk bereit

2.1 Geben Sie ropsten ein und stellen Sie es bereit

    Drücken Sie Strg+C, Strg+D, um die aktuelle Truffle-Konsole zu verlassen und die folgenden Befehle erneut zu verwenden:

truffle console --network ropsten
//部署第2个合约
migrate -f 2 --to 2

2.2 Rinkeby eingeben und bereitstellen

    Drücken Sie Strg+C, Strg+D, um die aktuelle Truffle-Konsole zu verlassen und die folgenden Befehle erneut zu verwenden:

truffle console --network rinkeby
//部署第2个合约
migrate -f 2 --to 2

2.3 Geben Sie Kovan ein und setzen Sie es ein

    Drücken Sie Strg+C, Strg+D, um die aktuelle Truffle-Konsole zu verlassen und die folgenden Befehle erneut zu verwenden:

truffle console --network kovan
//部署第2个合约
migrate -f 2 --to 2

2.4 Geben Sie das Hauptnetzwerk ein und stellen Sie es bereit

    Drücken Sie Strg+C, Strg+D, um die aktuelle Truffle-Konsole zu verlassen und die folgenden Befehle erneut zu verwenden:

truffle console --network mainnet
//部署第2个合约
migrate -f 2 --to 2

2.5 Ganache eingeben und bereitstellen

    Drücken Sie Strg+C, Strg+D, um die aktuelle Truffle-Konsole zu verlassen und die folgenden Befehle erneut zu verwenden:

truffle console --network ganache
//部署第2个合约
migrate -f 2 --to 2

Ich denke du magst

Origin blog.csdn.net/u013288190/article/details/123849688
Empfohlen
Rangfolge