8 Top Websites Paying $50-$750 to Freelance Writers For Writing Articles | Easy Money Making
Are you a beginner looking for an opportunity that will pay you for writing?Freelance writing provides you with the opportunity to earn money while working from home. It's interesting to be a writer and to earn money with your skills. You can work with local or international clients and you can also work with websites that look interesting to you. There are many ways to earn money by freelancing, but we were not aware of them in the beginning. You need to be good at your skill in order t...
Metamask的使用教程
Metamask(小狐狸)钱包是目前应用范围最广泛地加密钱包,几乎全部以太坊和EVM兼容链的应用都支持metamask。因此,用户掌握小狐狸的使用非常有必要。 通过上一篇教程,用户基本可以清楚metamask的安装和钱包创建,本篇主要介绍metamask的网络配置、转账、常见问题处理、交易所充提等功能的使用。Metamask简介Metamask钱包是加密货币钱包和区块链应用程序的认证程序。目前全球有超过2100万用户使用。 MetaMask的主要使用途径是浏览器扩展程序和手机APP,可提供加密钱包、安全登录、代币交换等功能。密码、助记词和私钥均在使用设备上生成,不会传输到服务器端。只有用户自己能访问本地账户和数据。根据上图,我们要使用metamask,首先要创建一个钱包账号,具体操作步骤见:加密钱包的选择 以及Metamask的使用 钱包建好后,使用钱包一般可分为以下几步:1、配置网络2、充提币3、交易4、应用交互下面我们来具体将如何操作以上步骤。同时,接下来几篇文章会针对不同区块链网络以实例化的方式,进行具体操作的演示。Metamask网络配置对区块链网络的理解可参见,“区块链...
MetaMask小狐狸钱包安装使用教程(小白必读),分享两个丢邮箱就给的空投,Jumbo抽大奖特斯拉
MetaMask(小狐狸)是在谷歌类型浏览器Chrome 上使用的插件钱包,该钱包不需要下载,在谷歌器添加对应的扩展程序即可,非常轻量级,使用起来也非常方便,支持以太坊ETH主链、币安智能链,火币生态链等以太坊侧链,可以说是混币圈尤其是撸空投的必备工具,但是仍有很多刚入圈的小白不会用,总是来问我怎么用,今天我就详细教给大家小狐狸钱包的用法。 闲话少说,直奔主题,跟我来,打开电脑,是的要用电脑。 首先去装好谷歌浏览器,下载地址到搜索引擎里一搜就有了。其他如Firefox(火狐)浏览器、Brave浏览器、微软Edge浏览器也能用,但是建议还是规规矩矩就用谷歌浏览器,兼容性最好。 1.安装MetaMask 钱包下载地址:https://metamask.io/download.html 选择相应的浏览器,去相应的应用商店下载。 注意,这里可能需要佛跳墙,不会的就没办法了。 注意,最好使用官方推荐的方式进行安装(过程需佛跳墙),否则可能造成数字资产被盗的情况。 1.点击跳转安装页面: 例如在 Google Chrome 安装,则点击Install MetaMask for Chrome ...
8 Top Websites Paying $50-$750 to Freelance Writers For Writing Articles | Easy Money Making
Are you a beginner looking for an opportunity that will pay you for writing?Freelance writing provides you with the opportunity to earn money while working from home. It's interesting to be a writer and to earn money with your skills. You can work with local or international clients and you can also work with websites that look interesting to you. There are many ways to earn money by freelancing, but we were not aware of them in the beginning. You need to be good at your skill in order t...
Metamask的使用教程
Metamask(小狐狸)钱包是目前应用范围最广泛地加密钱包,几乎全部以太坊和EVM兼容链的应用都支持metamask。因此,用户掌握小狐狸的使用非常有必要。 通过上一篇教程,用户基本可以清楚metamask的安装和钱包创建,本篇主要介绍metamask的网络配置、转账、常见问题处理、交易所充提等功能的使用。Metamask简介Metamask钱包是加密货币钱包和区块链应用程序的认证程序。目前全球有超过2100万用户使用。 MetaMask的主要使用途径是浏览器扩展程序和手机APP,可提供加密钱包、安全登录、代币交换等功能。密码、助记词和私钥均在使用设备上生成,不会传输到服务器端。只有用户自己能访问本地账户和数据。根据上图,我们要使用metamask,首先要创建一个钱包账号,具体操作步骤见:加密钱包的选择 以及Metamask的使用 钱包建好后,使用钱包一般可分为以下几步:1、配置网络2、充提币3、交易4、应用交互下面我们来具体将如何操作以上步骤。同时,接下来几篇文章会针对不同区块链网络以实例化的方式,进行具体操作的演示。Metamask网络配置对区块链网络的理解可参见,“区块链...
MetaMask小狐狸钱包安装使用教程(小白必读),分享两个丢邮箱就给的空投,Jumbo抽大奖特斯拉
MetaMask(小狐狸)是在谷歌类型浏览器Chrome 上使用的插件钱包,该钱包不需要下载,在谷歌器添加对应的扩展程序即可,非常轻量级,使用起来也非常方便,支持以太坊ETH主链、币安智能链,火币生态链等以太坊侧链,可以说是混币圈尤其是撸空投的必备工具,但是仍有很多刚入圈的小白不会用,总是来问我怎么用,今天我就详细教给大家小狐狸钱包的用法。 闲话少说,直奔主题,跟我来,打开电脑,是的要用电脑。 首先去装好谷歌浏览器,下载地址到搜索引擎里一搜就有了。其他如Firefox(火狐)浏览器、Brave浏览器、微软Edge浏览器也能用,但是建议还是规规矩矩就用谷歌浏览器,兼容性最好。 1.安装MetaMask 钱包下载地址:https://metamask.io/download.html 选择相应的浏览器,去相应的应用商店下载。 注意,这里可能需要佛跳墙,不会的就没办法了。 注意,最好使用官方推荐的方式进行安装(过程需佛跳墙),否则可能造成数字资产被盗的情况。 1.点击跳转安装页面: 例如在 Google Chrome 安装,则点击Install MetaMask for Chrome ...

Subscribe to Rogger

Subscribe to Rogger
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
来源 | medium.com/@somubhargava97
作者 | Somu Bhargava
\
图片来源:executium ,unsplash
EVM 对于以太坊状态机就好比处理器对于计算机般至关重要。它主要是用于执行智能合约的逻辑和进行相应的状态转换。在我们深入 EVM 时,现在先简单看看以太坊吧。
以太坊简介
以太坊是开源、去中心化的区块链,具有智能合约的额外功能。它意味着,在网络上发生的交易种类大致是 ETH 转账 (或) 智能合约部署 (或) 智能合约调用——所有这些都会改变以太坊区块链的状态。一堆这些交易按照特定顺序组合成一个区块,执行该区块里交易合起来所需的 gas 应小于或等于区块 gas 上限 (译者注:EIP-1559 后 gas 上限是 30 m) 。
一笔交易大概如下:
Transaction -
nonce - 由交易发件人发送的交易号
gas price - 这笔交易的 gas 价格 (单位为 wei)
gas limit - 这笔交易可以使用的最高 gas 量
to - 这笔交易的受款人
value - 转给受款人的 wei 数值
data - 信息调用的输入数据
v, r, s - 可恢复的发件人 Secp256K1 签名
以太坊的世界状态就是地址和其对应的账户状态之间的映射。账户状态大概如下:
Account -
nonce - 到现在从该相应账户发送的交易数量的值
balance - 这个账户持有的 wei 数量
storageRoot - 256 位键值对之间的映射
codeHash - 属于这个账户的的 EVM 代码的不可变哈希值。当有人与这个账户进行交易时,此代码将被执行。
矿工通过汇集一些交易来形成一个区块,并获取打包该区块的工作量证明。这个区块随后会在网络被广播到其他参与以太坊区块链的节点。现在,其他接收到此区块的节点必须验证其有效性,因为矿工可能是恶意的,可能会出现传输错误,中间人攻击 (man-in-the-middle attack)。每个节点 (大致) 从以下方面验证区块:
它们按照以太坊协议验证区块特性 (如区块高度、父块哈希值、时间戳、gas 上限、使用的 gas 量等)
然后这个区块里的交易会被逐一执行。执行每笔交易都会消耗一些 gas 并改变区块链的状态。因此,在区块执行的最后,我们会得到一个结果状态,它由状态树根来表示,这个根是唯一的。如果矿工和验证节点对协议和交易都达成共识,那么状态根应该是唯一的。矿工添加在区块头获得的状态根,随后其他节点根据区块头提到的状态根对其进行验证。
以太坊虚拟机 (Ethereum Virtual Machine, EVM) 负责执行交易和更新区块链状态。让我们在下文了解更多 EVM 的细节。
以太坊虚拟机
智能合约可以被编译成 EVM 字节码。作为类比,把 Solidity 代码 (编写智能合约的通用语言) 想象成 C++代码。把 EVM 字节码看作是机器代码,它是可以被处理器理解和执行的。因此,EVM 可以被认为是以太坊的一个处理器。EVM 字节代码是操作码和数据序列,可以被 EVM 处理,形成状态转换。
因此,EVM 在执行交易中的作用:
使一个账户转账 WEI (1 ETH = 10¹⁸ WEI) 到另一个账户变得可能
如果交易的受款人账户有一些字节码与 EVM 相关,EVM 必须执行相应的字节码 (可能使用从 transaction.data 栏位获取的输入数据)。
现在,任何账户都可以有与 EVM 相关的字节码吗?答案是否定的。以太坊有两种类型的账户——外部所有账户 (EOA) 和合约账户 (CA)。EOA 是具有私人密钥关联的账户,由像个人、组织等的外部实体操作。另一方面,合约账户是通过部署智能合约创建的。它们没有相关私钥,并由外部实体对其进行的代码调用 (通过区块链上的交易) 控制。
基本上,每个节点上都会启动一个 EVM 实例来执行每笔交易。但是,只有当交易的受款方 (或目标) 是一个合约账户时,EVM 实例才会执行字节码。
现在,让我们来看看 EVM 的架构。
\
图表来自 https://ethereum.org/en/developers/docs/evm/
启动的每个 EVM 实例都是为运行一个特定的字节码 (由于交易的目标是一个合约账户)。因此,字节码就像是 EVM 实例的 ROM,是不能修改的。类似于图灵机,EVM 由一个程序计数器 (Program Counter)、堆栈 (Stack)、内存 (Memory) 和外部存储器。这个外部存储器对所有交易进行永久存储,但其余组件的存储是易失的,并会对 EVM 的每个实例进行重新实例化。
让我们来逐个了解这些组件——
程序计数器 (PC) 只是一个指向字节码中下一个操作码的指针,由 EVM 执行。它是一个非负整数,范围是 [0, number_of_bytes(bytecode)-1]
EVM 里的堆栈可以有最多 1024 个条目,每个条目都是 256 位 (32 字节) 的无符号整数。
EVM 里的内存是可以无限扩充的 (尽管你必须为内存扩充本身支付额外的费用) 且每个条目都有一个 8 位 (1字节) 的无符号整数。
这里的外部存储就是所有账户存储的集合。( EVM 的字节码可以写到目标账户或外部账户的存储空间 )
与计算机处理器如何根据每个指令集理解特定的操作码类似,EVM 也需要理解操作码。每个 EVM 操作码都是一个字节,因此根据理论,最多可以有 256 个操作码,但这里就不列出全部 256 个操作码了。EVM 操作码主要可分为以下几类——
控制像 PC、堆栈、内存和存储状态的操作码
算数运算和按位运算
环境信息——关于区块、当前交易或某特定账户的属性的信息
日志操作——添加日志记录
系统操作——创建新的合约账户、对另一个账户进行信息调用、销毁已创建的合约账户等
很快会出下一篇更详细的关于操作码的文章。敬请关注!
原文链接: https://medium.com/@somubhargava97/introduction-to-evm-part-1-b27203883a03
ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ETH中文站。若需长期转载,请联系eth@ecn.co进行授权。
作者郑重申明:截至发文时,作者与文中提及项目存在利益关系,特此告知。利益关系包括但不限于下述情况:本人为项目团队成员、本人是项目团队成员的直系亲属或配偶、参与投资该项目、持有该项目发行的股份或通证、参与做空或做多该项目、收取回报进行有偿撰文等。
来源 | medium.com/@somubhargava97
作者 | Somu Bhargava
\
图片来源:executium ,unsplash
EVM 对于以太坊状态机就好比处理器对于计算机般至关重要。它主要是用于执行智能合约的逻辑和进行相应的状态转换。在我们深入 EVM 时,现在先简单看看以太坊吧。
以太坊简介
以太坊是开源、去中心化的区块链,具有智能合约的额外功能。它意味着,在网络上发生的交易种类大致是 ETH 转账 (或) 智能合约部署 (或) 智能合约调用——所有这些都会改变以太坊区块链的状态。一堆这些交易按照特定顺序组合成一个区块,执行该区块里交易合起来所需的 gas 应小于或等于区块 gas 上限 (译者注:EIP-1559 后 gas 上限是 30 m) 。
一笔交易大概如下:
Transaction -
nonce - 由交易发件人发送的交易号
gas price - 这笔交易的 gas 价格 (单位为 wei)
gas limit - 这笔交易可以使用的最高 gas 量
to - 这笔交易的受款人
value - 转给受款人的 wei 数值
data - 信息调用的输入数据
v, r, s - 可恢复的发件人 Secp256K1 签名
以太坊的世界状态就是地址和其对应的账户状态之间的映射。账户状态大概如下:
Account -
nonce - 到现在从该相应账户发送的交易数量的值
balance - 这个账户持有的 wei 数量
storageRoot - 256 位键值对之间的映射
codeHash - 属于这个账户的的 EVM 代码的不可变哈希值。当有人与这个账户进行交易时,此代码将被执行。
矿工通过汇集一些交易来形成一个区块,并获取打包该区块的工作量证明。这个区块随后会在网络被广播到其他参与以太坊区块链的节点。现在,其他接收到此区块的节点必须验证其有效性,因为矿工可能是恶意的,可能会出现传输错误,中间人攻击 (man-in-the-middle attack)。每个节点 (大致) 从以下方面验证区块:
它们按照以太坊协议验证区块特性 (如区块高度、父块哈希值、时间戳、gas 上限、使用的 gas 量等)
然后这个区块里的交易会被逐一执行。执行每笔交易都会消耗一些 gas 并改变区块链的状态。因此,在区块执行的最后,我们会得到一个结果状态,它由状态树根来表示,这个根是唯一的。如果矿工和验证节点对协议和交易都达成共识,那么状态根应该是唯一的。矿工添加在区块头获得的状态根,随后其他节点根据区块头提到的状态根对其进行验证。
以太坊虚拟机 (Ethereum Virtual Machine, EVM) 负责执行交易和更新区块链状态。让我们在下文了解更多 EVM 的细节。
以太坊虚拟机
智能合约可以被编译成 EVM 字节码。作为类比,把 Solidity 代码 (编写智能合约的通用语言) 想象成 C++代码。把 EVM 字节码看作是机器代码,它是可以被处理器理解和执行的。因此,EVM 可以被认为是以太坊的一个处理器。EVM 字节代码是操作码和数据序列,可以被 EVM 处理,形成状态转换。
因此,EVM 在执行交易中的作用:
使一个账户转账 WEI (1 ETH = 10¹⁸ WEI) 到另一个账户变得可能
如果交易的受款人账户有一些字节码与 EVM 相关,EVM 必须执行相应的字节码 (可能使用从 transaction.data 栏位获取的输入数据)。
现在,任何账户都可以有与 EVM 相关的字节码吗?答案是否定的。以太坊有两种类型的账户——外部所有账户 (EOA) 和合约账户 (CA)。EOA 是具有私人密钥关联的账户,由像个人、组织等的外部实体操作。另一方面,合约账户是通过部署智能合约创建的。它们没有相关私钥,并由外部实体对其进行的代码调用 (通过区块链上的交易) 控制。
基本上,每个节点上都会启动一个 EVM 实例来执行每笔交易。但是,只有当交易的受款方 (或目标) 是一个合约账户时,EVM 实例才会执行字节码。
现在,让我们来看看 EVM 的架构。
\
图表来自 https://ethereum.org/en/developers/docs/evm/
启动的每个 EVM 实例都是为运行一个特定的字节码 (由于交易的目标是一个合约账户)。因此,字节码就像是 EVM 实例的 ROM,是不能修改的。类似于图灵机,EVM 由一个程序计数器 (Program Counter)、堆栈 (Stack)、内存 (Memory) 和外部存储器。这个外部存储器对所有交易进行永久存储,但其余组件的存储是易失的,并会对 EVM 的每个实例进行重新实例化。
让我们来逐个了解这些组件——
程序计数器 (PC) 只是一个指向字节码中下一个操作码的指针,由 EVM 执行。它是一个非负整数,范围是 [0, number_of_bytes(bytecode)-1]
EVM 里的堆栈可以有最多 1024 个条目,每个条目都是 256 位 (32 字节) 的无符号整数。
EVM 里的内存是可以无限扩充的 (尽管你必须为内存扩充本身支付额外的费用) 且每个条目都有一个 8 位 (1字节) 的无符号整数。
这里的外部存储就是所有账户存储的集合。( EVM 的字节码可以写到目标账户或外部账户的存储空间 )
与计算机处理器如何根据每个指令集理解特定的操作码类似,EVM 也需要理解操作码。每个 EVM 操作码都是一个字节,因此根据理论,最多可以有 256 个操作码,但这里就不列出全部 256 个操作码了。EVM 操作码主要可分为以下几类——
控制像 PC、堆栈、内存和存储状态的操作码
算数运算和按位运算
环境信息——关于区块、当前交易或某特定账户的属性的信息
日志操作——添加日志记录
系统操作——创建新的合约账户、对另一个账户进行信息调用、销毁已创建的合约账户等
很快会出下一篇更详细的关于操作码的文章。敬请关注!
原文链接: https://medium.com/@somubhargava97/introduction-to-evm-part-1-b27203883a03
ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ETH中文站。若需长期转载,请联系eth@ecn.co进行授权。
作者郑重申明:截至发文时,作者与文中提及项目存在利益关系,特此告知。利益关系包括但不限于下述情况:本人为项目团队成员、本人是项目团队成员的直系亲属或配偶、参与投资该项目、持有该项目发行的股份或通证、参与做空或做多该项目、收取回报进行有偿撰文等。
No activity yet