为什么不可能使用 Truffle 部署智能合约(到主网)?

GN.*_*GN. 5 ethereum smartcontracts truffle consensys-truffle

为什么使用 Truffle 部署到主网如此困难?

这是尝试部署到主网的概述......

  1. 当前 Gasprice 为 110 威。所以110000000000 wei

让我们插上它..

mainnet: {
      provider: () =>
        new HDWalletProvider({
          mnemonic: { phrase: process.env.MNEMONIC },
          providerOrUrl: process.env.RPC_URL_1_WSS,
        }),
      network_id: 1, 
      from: process.env.DEPLOYERS_ADDRESS,
      gasPrice: 110000000000, /*  GAS PRICE!! */
      confirmations: 2,
      timeoutBlocks: 200,
      skipDryRun: false, public nets )
    },
  },
Run Code Online (Sandbox Code Playgroud)
  1. 让我们来估算一下部署的 gas 成本。这将在 的gas参数中设置truffle-config

NODE_ENV=production truffle migrate --network mainnet --dry-run

Summary
=======
> Total deployments:   2
> Final cost:          0.001403824 ETH
Run Code Online (Sandbox Code Playgroud)

0.001403824 ETH 是 2.04 美元。
所以这很可能是错误的。

??失败??


  1. 第二次尝试。好的,试运行对于获得气体估计没有用。我将gas留空并尝试仅使用gasPrice.

结果在.. Message: insufficient funds for gas * price + value ??失败??

  1. 好的,我dry-run没有对部署的合同成本给出有用的估计,我只是根据其他合同进行猜测。将在gas这里添加参数。
mainnet: {
      provider: () =>
        new HDWalletProvider({
          mnemonic: { phrase: process.env.MNEMONIC },
          providerOrUrl: process.env.RPC_URL_1_WSS,
        }),
      network_id: 1, 
      from: process.env.DEPLOYERS_ADDRESS,
      gasPrice: 110000000000, /*  GAS PRICE!! */
      gas: 140000000000000000, / That's about $200 in Wei/
      confirmations: 2,
      timeoutBlocks: 200,
      skipDryRun: false, public nets )
    },
  },
Run Code Online (Sandbox Code Playgroud)

RuntimeError: abort(Error: Assertion failed). Build with -s ASSERTIONS=1 for more info..

??再次失败??


  1. 第三次尝试。好的,要试着离开gasgasPrice空白..

Block timesout in 750 seconds.

??失败??


尝试混音..

  1. 将提供程序设置为注入的 Web3
  2. 设置网络为主网
  3. 部署
  4. 成本 $135

这很棒,但现在我没有使用 Truffle 的迁移,并且将 Remix ABI 与 Truffle 一起使用也不是那么容易。

我真的很喜欢松露只是工作。

为什么 Truffle 在部署到主网时很难使用?无法部署到主网。