Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ethereum 混音以太坊合同到哪里去了?_Ethereum_Web3js_Remix - Fatal编程技术网

Ethereum 混音以太坊合同到哪里去了?

Ethereum 混音以太坊合同到哪里去了?,ethereum,web3js,remix,Ethereum,Web3js,Remix,当我点击remix.ethereum.org下的create时,我不明白智能合约到底去了哪里。例如,如果我选择注入的Web3,这应该将合同发布到ropsten测试网,对吗?那我怎么才能拿到合同呢?当我使用metamask时,它会在我使用web3.js时为我注入正确的提供者,但是如果我不想使用注入的web3,而是在web3.js中手动选择提供者地址,那么我现在如何才能找到这个契约呢?我可以通过这种方式访问智能合约吗 编辑:我不知道我的问题有什么不对。我真的没有发现如何连接到智能合约,例如在没有注入

当我点击remix.ethereum.org下的create时,我不明白智能合约到底去了哪里。例如,如果我选择注入的Web3,这应该将合同发布到ropsten测试网,对吗?那我怎么才能拿到合同呢?当我使用metamask时,它会在我使用web3.js时为我注入正确的提供者,但是如果我不想使用注入的web3,而是在web3.js中手动选择提供者地址,那么我现在如何才能找到这个契约呢?我可以通过这种方式访问智能合约吗

编辑:我不知道我的问题有什么不对。我真的没有发现如何连接到智能合约,例如在没有注入web3的ropsten测试网络中。通常在web3.js中执行此操作:

if (typeof web3 !== 'undefined') {
            web3 = new Web3(web3.currentProvider);
        } else {
            // set the provider you want from Web3.providers
            web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
        }
}

但是如果没有注入的web3,那么就使用localhost。但我无法连接到智能合约,因为它不知道我在哪个网络上发布了智能合约,对吗?

Remix有3个不同的环境选项可用于部署/测试坚固性合约:JavaScript虚拟机、注入式Web3和Web3提供者。可以在“运行”选项卡下的“环境”下拉列表中更改此选项。(看起来你已经得到了这个部分…只是为了完整性而记录)

  • JavaScriptVM:这是Remix自己的内部沙盒。它不连接到MainNet、TestNet或任何专用网络。它是一个内存区块链,可用于简单测试和快速挖掘
  • 注入Web3:这是用于浏览器插件(MetaMask)的选项。这里,您告诉Remix将区块链集成的所有控制权推迟到MetaMask插件。此时,元掩码控制要连接到的网络。在插件中,您可以通过Infura的节点网络连接到MainNet、Ropsten、Rinkeby等。在本例中,您没有在本地运行节点。MetaMask还有一个localhost选项,您可以在本地运行自己的节点,MetaMask将向其发送所有事务(该本地网络可以是使用任何节点客户端的专用网络,也可以使用TestRPC之类的测试区块链)
  • Web3提供者:这允许您在Remix中输入URL以连接到区块链。这里最常见的设置是运行本地节点并通过其IP/端口连接到它。这与使用MetaMask的localhost选项几乎相同,但您只是将插件从中间人的角色中删除。与选项2一样,连接到的网络取决于您如何配置本地节点(可以是主节点、测试节点、专用节点等)
  • 因此,“智能合约的去向”取决于您已设置的配置。选择Injected Web3并不自动意味着您的合同正在部署到Ropsten。这取决于您在MetaMask插件中选择的网络

    当通过混音使用MetaMask时,您需要使用插件选择适当的帐户并确认/拒绝交易。选择帐户有点让人困惑,因为Remix不会选择导入MetaMask的所有帐户。“帐户”下拉列表将仅包含元掩码中当前选定的帐户。此外,如果您在MetaMask中更改帐户,则必须重新加载混音才能在下拉列表中选择该帐户。它不会自动检测帐户在MetaMask中的更改时间

    一旦正确选择了帐户(并且假设您使用的是持有ether的帐户),您现在就可以部署合同了。点击“在混音中创建”,然后再次切换到插件。在这里,您应该看到一个等待批准的挂起事务。选择事务,然后单击提交

    交易清单:

    批准/拒绝屏幕:


    提交后,需要几秒钟才能挖掘事务。元掩码完成后将显示。就这样!要与合同交互,您可以通过与上述部署步骤类似的混音启动交易。

    谢谢,这对我帮助很大。因此,对于我的测试,我将使用metamask将契约部署到ropsten测试网中,然后运行连接到ropsten测试网的本地节点。@AdamKipnis非常简洁的答案,应该在混音常见问题解答中找到。谢谢