本文已参与「新人创作礼」活动,一起开启掘金创作之路。
概述
以太坊虚拟机或 EVM 是以太坊中智能合约的运行时环境。它不仅是沙盒,而且实际上是完全隔离的,这意味着在 EVM 内运行的代码无法访问网络、文件系统或其他进程。智能合约甚至对其他智能合约的访问权限有限。 #remix环境安装 1、下载node.js nodejs.org/en/
2、cmd输入命令下载remix
npm install remix-ide -g
3、启动remix-ide
remix-ide
4、可打开127.0.0.1:8080/index或直接打开remix.ethereum.org/
account 账户
1、以太坊中有两种账户共享相同的地址空间:由公私钥对(即人类)控制的外部账户和由与账户一起存储的代码控制的合约账户。
外部账户的地址是由公钥确定的,而合约的地址是在合约创建时确定的(由创建者地址和从该地址发送的交易数量得出,即所谓的“随机数”)。
无论账户是否存储代码,EVM 都会平等对待这两种类型。
每个帐户都有一个持久的键值存储,将 256 位字映射到 256 位字,称为storage。
此外,每个账户都有一个Ether余额(准确地说是“Wei” ),可以通过发送包含 Ether 的交易进行修改。1 ether``10**18 wei
Transactions(交易)
交易是从一个帐户发送到另一个帐户的消息(可能相同或为空,见下文)。它可以包括二进制数据(称为“有效负载”)和以太币。
如果目标帐户包含代码,则执行该代码并将有效负载作为输入数据提供。
如果没有设置目标账户(交易没有收款人或收款人设置为null),则交易创建一个新合约。如前所述,该合约的地址不是零地址,而是从发送者及其发送的交易数量(“nonce”)派生的地址。这种合约创建交易的有效负载被视为 EVM 字节码并被执行。此执行的输出数据作为合约代码永久存储。这意味着,为了创建合约,您无需发送合约的实际代码,而是发送实际执行时返回该代码的代码。
在创建合约时,其代码仍然是空的。因此,在构造函数完成执行之前,您不应该回调正在构建的合约。