执行 "Truffle init" 时出错

error on doing "Truffle init"

我是智能合约编程的新手,最近在 Node 上使用 npm 安装了 truffle(版本:6.10.3) 当我第一次 运行 命令 truffle init 时,我收到这个错误:

events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: connect ETIMEDOUT 151.101.8.133:443
    at Object.exports._errnoException (util.js:1018:11)
    at exports._exceptionWithHostPort (util.js:1041:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)

下次我 运行 truffle init,我得到了这个错误:

events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at exports._errnoException (util.js:1018:11)
    at TLSWrap.onread (net.js:568:26)

关于如何解决这个问题的任何想法

如果没有代码,很难说哪里出了问题。但是你在 truffle 配置中指定的端口上有一个 ethereum rpc 节点 运行 吗?

Truffle configuration

在检查您的错误代码时,我看到您尝试连接到 151.101.8.133:443 此端口上是否有 rpc 节点 运行?

当我尝试在公司 http 代理后面执行 truffle init 并找到解决方法时,我也遇到了类似的问题。

修改了 cli.bundled.js:将 https.request 替换为 request

差异:

    diff --git a/build/cli.bundled.js b/build/cli.bundled.js
    index 01c69e3..aa2605c 100755
    --- a/build/cli.bundled.js
    +++ b/build/cli.bundled.js
    @@ -202412,12 +202412,8 @@ var Init = {
           // will fail spectacularly in a way we can't catch, so we have to do it ourselves.
           return new Promise(function(accept, reject) {

    -        var options = {
    -          method: 'HEAD',
    -          host: 'raw.githubusercontent.com',
    -          path: '/trufflesuite/' + expected_full_name + "/master/truffle.js"
    -        };
    -        req = https.request(options, function(r) {
    +        var request = require('request');
    +        request({ method: 'HEAD', uri: 'https://raw.githubusercontent.com/trufflesuite/'+expected_full_name+'/master/truffle.js'}, function (error, r, body) {
               if (r.statusCode == 404) {
                 return reject(new Error("Example '" + name + "' doesn't exist. If you believe this is an error, please contact Truffle support."));
               } else if (r.statusCode != 200) {
    @@ -202425,7 +202421,6 @@ var Init = {
               }
               accept();
             });
    -        req.end();

           });
         }).then(function() {
    @@ -212634,4 +212629,4 @@ module.exports = require("solc");
     module.exports = require("string_decoder");

     /***/ })
    -/******/ ]);
    \ No newline at end of file
    +/******/ ]);

先决条件:

  1. 通过 npm 安装请求(npm install -g request)
  2. 代理 - 按照描述设置环境 here