主页 > imtoken最新版客户端 > 区块链100讲:开发者视角速读以太坊白皮书

区块链100讲:开发者视角速读以太坊白皮书

imtoken最新版客户端 2023-01-17 08:58:37

原文链接:

添加微信baobaotalk_com,加入技术布道群

以太坊经典和以太坊_有余额的以太坊私钥_查询以太坊代币钱包余额

最近有个以太坊项目急需充值。 个人一直认为直接从上层开发会比较混乱。 从底层原理入手可能比较枯燥,但是对于学习和理解来说非常重要。 基础不扎实,永远走不远。

因此,本文将从开发者的角度出发,快速解读以太坊的白皮书,并对技术点进行提炼,以期快速切入关键技术点,从而在实际中少走很多弯路。发展。 完整的以太坊白皮书见官方wiki:。 本文并非旨在普及区块链概念,因此需要读者具备一定的区块链基本概念。

1个

以太坊账户

以太坊通过账户传递价值来完成状态转换。 以太币(Ether)是以太坊内部的主要加密燃料,用于支付交易手续费(交易手续费的计算方法将在后面介绍)。 以太坊账户由四部分组成:

以太坊中有两种账户:外部拥有账户(由私钥控制)和合约账户(由合约代码控制)。 交易通过发送消息触发,发送到合约账户后,执行合约内部代码。 合约可以读取和写入内部存储、发送消息或创建其他合约。

TIPS:关于以太坊钱包的备份:

2个

以太坊新闻和交易

以太坊交易由外部储户发送签名消息触发。 一笔交易包含消息的接收者、确认发送者的签名、以太账户余额、要发送的数据,以及两个名为 STARTGAS 和 GASPRICE 的值。 STARTGAS为最大消耗GAS限额,GASPRICE为每一步缺勤支付费用。 当STARTGAS耗尽时,所有状态变化都会恢复到原来的状态,但交易费(GAS)不会退还。 如果还有剩余的GAS,剩余的GAS会返还给发送者的账户。

以太坊交易将账户价值从发送方转移到接收方。 如果接收方账户不存在,则创建目标账户。 如果接收账户是合约账户,则合约代码会一直执行到执行完毕或者GAS耗尽。

3个

交易费用的计算

首先,GAS的价格不是一成不变的,其价格和交易过程类似于股票交易的过程。 目前的行情可以在很多地方查看,比如这里:

交易时,您可以自行设置GASPRICE。 就像股票交易一样,如果你的手续费太低,你会很长时间得不到交易确认,如果要价太高,你就会赔钱。 因此,有必要对交易手续费进行合理的评估。

估算消耗的GAS可以调用web3提供的估算方法estimateGas。

目前提供一个简单的gas消耗表供参考,鼓励设计更高效的智能合约以减少gas浪费:

step 1 为一个执行周期支付的默认gas量。

停止 0 没有为 SUICIDE 操作支付任何费用。

sha3 20 为 SHA3 运算付费。

sload 20 为 SLOAD 操作付费。

sstore 100 为正常的 SSTORE 操作付费(有时加倍或免除)。

balance 20 为 BALANCE 操作支付

create 100 为 CREATE 操作付费

call 20 为 CALL 操作付费。

memory 1 扩展内存时,每增加一个字就付费

txdata 5 为交易的每个数据或代码字节付费

transaction 500 每笔交易支付

4个

关于智能合约

目前以太坊的智能合约是用Solidity语言编写,编译成字节码部署在以太坊中,通过EVM执行。 部署合约的过程与创建账户的过程基本相似。 部署成功后会返回合约的地址,需要记录下来,以备日后调用。

合约也有生命周期,可以调用kill方法销毁合约。 注意这里的销毁只是将合约地址标记为僵尸地址,访问僵尸地址会报错。 合约本身仍然存储在区块链上有余额的以太坊私钥,因此无法抹去痕迹。

5个

关于发行硬币

以太坊允许发行自己的代币,这些代币也是以太坊内置的数字资产,通过智能合约发行和控制。 符合ERC20标准的代币将直接兼容以太坊有余额的以太坊私钥,因此鼓励代币系统尽可能兼容ERC20标准:

发行代币的过程本质上就是执行智能合约的过程,所以也需要消耗GAS让矿工根据智能合约的执行过程进行确认。

--- 在线课程推荐 ---

有余额的以太坊私钥_以太坊经典和以太坊_查询以太坊代币钱包余额

有余额的以太坊私钥_查询以太坊代币钱包余额_以太坊经典和以太坊