在区块链上创建合约

我们有一个合约,已经将它编译成字节码。现在,我们需要在以太坊区块链上“登记”合约。我们将使用Ropsten测试网来测试我们的合约,所以这就是我们想要记录的区块链。

在区块链上注册合约涉及创建一个特殊交易,其目标是地址0x0000000000000000000000000000000000000000,也称为_zero address_。零地址是一个特殊的地址,告诉以太坊区块链你想注册一个合约。幸运的是,Remix IDE将为你处理所有这些交易并将交易发送给MetaMask。

首先,切换到“Run”选项卡,并在“Environment”下拉列表框中选择“Injected Web3”。这将Remix IDE连接到MetaMask钱包,并通过MetaMask连接到Ropsten测试网络。一旦你这样做,你可以在Evironment下看到“Ropsten”。另外,在Account选择框中,它显示你的钱包的地址:

Remix IDE Run tab, with Injected Web3 environment selected

Figure 14. Remix IDE “Run” tab, with “Injected Web3” environment selected

在刚刚确认的“Run”设置下方,是Faucet合约,随时可以创建。点击“Create”或“Deploy“按钮:

Click the Create button in the Run tab

Figure 15. Click the Create button in the Run tab

Remix IDE将构建特殊的“creation“交易,MetaMask会要求你批准它。从MetaMask中可以看到,合约创建交易没有ether,但它有258个字节(编译的合约),并且会消耗10个Gwei。点击“Submit”来批准:

MetaMask showing the contract creation transaction

Figure 16. MetaMask showing the contract creation transaction

现在,等待:合约在Ropsten上开采需要大约15到30秒的时间。Remix IDE似乎不会做太多,耐心等待。

合约创建后,它会显示在“运行”选项卡的底部:

The Faucet contract is ALIVE!

Figure 17. The Faucet contract is ALIVE!

请注意,Faucet合约现在有自己的地址:Remix将其显示为 Faucet at 0x72e….c7829。右边的小剪贴板符号允许你将合约地址复制到剪贴板中。我们将在下一节中使用它。