Javascript 无法将Solidity合约部署到Rinkeby网络(asm.js无效:stdlib的无效成员)

Javascript 无法将Solidity合约部署到Rinkeby网络(asm.js无效:stdlib的无效成员),javascript,node.js,node-modules,ethereum,solidity,Javascript,Node.js,Node Modules,Ethereum,Solidity,我一直在学习Stephen Grider使用的Solidity,到目前为止进展顺利,我正在尝试将其部署到Rinkeby测试网络 作为参考,我正在使用节点版本11.15.0和npm版本6.7.0,其中包含以下依赖项: "dependencies": { "ganache-cli": "^6.4.3", "mocha": "^6.1.4", "nan": "^2.14.0", "scrypt": "^6.0.3", "solc": "^0.4.25",

我一直在学习Stephen Grider使用的Solidity,到目前为止进展顺利,我正在尝试将其部署到Rinkeby测试网络

作为参考,我正在使用节点版本11.15.0和npm版本6.7.0,其中包含以下依赖项:

"dependencies": {
    "ganache-cli": "^6.4.3",
    "mocha": "^6.1.4",
    "nan": "^2.14.0",
    "scrypt": "^6.0.3",
    "solc": "^0.4.25",
    "truffle": "^4.1.15",
    "truffle-hdwallet-provider": "0.0.4",
    "web3": "^1.0.0-beta.35" }
我花了数小时在Node.js、npm和各种依赖项组合的版本之间切换,从最新版本切换到课程中指定的版本。虽然我遇到了很多问题,但最突出的两个问题似乎是

(node:32436) V8: C:\Desktop\solidity\inbox\node_modules\solc\soljson.js:3 Invalid asm.js: Invalid member of stdlib

C:\Desktop\solidity\inbox\node\u modules\solc\soljson.js:1
var模块;如果(!Module)模块=(模块类型!=“未定义”?模块:null)|{};var moduleOverrides={};对于(模块中的var-key){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}var-ENVIRONMENT\u IS\u-WEB=typeof-window==“object”;var环境\u是\u工作者=导入文件类型==“函数”;var环境_IS_节点=typeof进程==“对象”&&typeof需求==“函数”&&!环境是网络&!环境是工人;var环境是SHELL=!环境是网络&!环境是节点&!环境是工人;if(ENVIRONMENT_IS_NODE){if(!Module[“print”])Module[“print”]=函数print(x){process[“stdout”].write(x+“\n”)};if(!Module[“printErr”])Module[“printErr”]=函数printErr(x){process[“stderr”]。write(x+“\n”)};var nodeFS=require(“fs”);var nodePath=require(“path”);Module[“read”]=函数读取(文件名,二进制文件名=nodePath[“normalize”];var ret=nodeFS[“readFileSync”](文件名);if(!ret&&filename!=nodePath[“resolve”](文件名)){filename=path.joi
错误:连接错误:无法连接到节点rinkeby.infura.io/v3/acb10732334e4450ba7dc55e618eb70a。
在Object.InvalidConnection(C:\Desktop\solidity\inbox\node\u modules\truffle hdwallet provider\node\u modules\web3\lib\web3\errors.js:28:16)
在HttpProvider.sendAsync(C:\Desktop\solidity\inbox\node\u modules\truffle hdwallet provider\node\u modules\web3\lib\web3\HttpProvider.js:129:25)
在Web3Subprovider.handleRequest(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\subviders\web3.js:13:17)
下一步(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\index.js:95:18)
在FilterSubprovider.handleRequest(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\subviders\filters.js:87:7)
下一步(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\index.js:95:18)
在HookedWalletSubprovider.handleRequest(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\subviders\hooked wallet.js:109:7)
下一步(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\index.js:95:18)
在Web3ProviderEngine.\u handleAsync(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\index.js:82:3)
在Web3ProviderEngine.\u fetchBlock(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\index.js:191:8)
在Web3ProviderEngine.\u fetchLatestBlock(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\index.js:167:8)
在Web3ProviderEngine.\u开始下载(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\index.js:144:8)
在Web3ProviderEngine.start(C:\Desktop\solidity\inbox\node\u modules\web3 provider engine\index.js:38:8)
在新的HDWalletProvider(C:\Desktop\solidity\inbox\node\U modules\truffle hdwallet provider\index.js:46:15)
at对象。(C:\Desktop\solidity\inbox\deploy.js:6:18)
at模块编译(内部/modules/cjs/loader.js:816:30)
在Object.Module.\u extensions..js(internal/modules/cjs/loader.js:827:10)
at Module.load(内部/modules/cjs/loader.js:685:32)
at Function.Module._load(内部/modules/cjs/loader.js:620:12)
位于Function.Module.runMain(内部/modules/cjs/loader.js:877:12)
在internal/main/run_main_module.js:21:11
我的问题是,基于我的代码,这些问题是否有任何修复,或者是否有更简单的方法部署到区块链?请提前感谢

错误:连接错误:无法连接到节点rinkby.infura.io/v3/acb10732334e4450ba7dc55e618eb70a。


你的意思可能是
https://rinkeby.infura.io/...
(您缺少
https://

我遵循与OP相同的教程。如果您使用的是
节点
v14.15.4和
npm
v6.14.10,我想确认以下package.json解决了问题:

{
  "name": "inbox",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "mocha"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "ganache-cli": "^6.4.3",
    "mocha": "^6.1.4",
    "solc": "^0.4.25",
    "truffle-hdwallet-provider": "0.0.4",
    "web3": "^1.0.0-beta.35"
  }
}

然后通过删除项目的
节点\u模块
来重建依赖项,然后运行

npm install

同样遵循上述课程。我能够按照用户1506104的建议解决这个问题。删除node_模块,并使用web3^1.0.0-beta.35和solc^0.4.25重新格式化package-lock.json,然后运行npm安装。

这就解决了问题,谢谢,我不敢相信我没有注意到。我还在努力有效的asm.js错误,但它似乎不会影响程序,因为我的程序正在返回有效的哈希。你能解决无效的asm.js错误吗?修复方法是什么?你应该对某人的答案进行投票,而不是再次将其作为答案提及。这对任何人都没有帮助,只能看到重复的答案。
npm install