-
web3 以太坊开发-53-数据结构与编码 简单序列化 SSZ
简单序列化
简单序列化 (SSZ) 是信标链上使用的序列化方法。
这种方法取代了除对等点发现协议以外的共识层各处执行层上所用的递归长度前缀序列化。
简单序列化设计具有确定性,也可以有效地进行默克尔化。
可以认为,简单序列化有两个组成部分:序列化方案和默克尔化方案,后者设计用于有效地处理序列化数据结构。
简单序列化的工作原理
序列化
简单序列化是一种非自描述性序列化方案,依赖于必...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-53-数据结构与编码 帕特里夏默克尔树
递归长度前缀 (RLP) 序列化
递归长度前缀 (RLP) 序列化广泛用于以太坊的执行客户端。
数据在节点之间以节省空间的格式传输,而递归长度前缀可使这一过程标准化。
递归长度前缀的目的在于,对任意嵌套的二进制数据数组进行编码,而递归长度前缀是用于序列化以太坊执行层中对象的主要编码方法。
递归长度前缀的唯一目的是对结构进行编码;而对特定数据类型(例如字符串、浮点数)进行编码的工作,则...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-52-网络层 networking-layer
网络层
以太坊是一个由数千个节点组成的点对点网络,节点之间必须能够使用标准化协议相互通信。
“网络层”是使节点能够找到彼此并交换信息的协议栈。
可交换信息包括网络上的“广播”信息(一对多通信),以及特定节点之间的交换请求和答复(一对一通信)。
每个节点必须遵守特定的网络规则,以确保发送和接收正确的信息。
客户端软件由两部分组成(执行客户端和共识客户端),它们都具有各自的网络堆栈。
...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-51-Data availability 数据可用性
数据可用性
去信任是公共区块链的一个主要前提(“不信任,验证”)。
以太坊减少信任假设的方法之一是强制执行数据可用性规则。
区块生产者需要发布每个区块的数据,哪些节点在本地参与以太坊的共识存储。
以太坊网络上的所有节点都在从对等方接收到的块中执行交易,以确保块生产者提出的更改与节点独立计算的更改精确匹配。这就是节点验证新信息是否有效的方式,而不是必须相信区块生产者是诚实的。如果缺少任...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-50-缩放 scaling
扩容概述
随着以太坊使用人数增加,区块链已经达到了一定的容量限制。 这提高了网络使用成本,从而导致需要“扩容解决方案”。
目前正在研究、测试和执行多种解决方案,这些方案采取不同的办法来实现类似的目标。
扩容的主要目标是提升交易速度(更快确定交易)和交易吞吐量(提高每秒交易量),而不影响去中心化或安全性(详情请见以太坊愿景)。 在第一层以太坊区块链上,高需求导致交易速度减慢和燃料价格难以...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-49-预言机 oracles
预言机
预言机是一个数据输入应用程序,它从区块链外部(链外)的数据源获取数据,并输入到区块链(链上),以供智能合约使用。
预言机之所以需要,是由于在以太坊上运行的智能合约无法访问存储在区块链网络之外的信息。
赋予智能合约使用链外数据输入的能力,扩展了去中心化应用程序的价值。
例如,去中心化市场预测依靠预言机来提供有关结果的信息,从而可以验证用户的预测。
假设Alice下注20ETH...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-48-最大可提取价值 (MEV)
最大可提取价值 (MEV)
最大可提取价值 (MEV) 是指通过在区块中添加和排除交易并更改区块中的交易顺序,可以从区块生产中提取的超过标准区块奖励和燃料费用的最大值。
矿工可提取价值
这一概念最先应用在工作量证明的背景下,最初被称为“矿工可提取价值”。
这是因为在工作量证明中,矿工掌握了交易的包含、排除和顺序。
然而,在通过合并过渡为权益证明后,验证者将负责这些角色,而挖矿将不再...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-47-以太坊开发标准 standards
标准概述
以太坊社区已经采用了许多标准,这有助于在项目的不同实现中保持统一的兼容性(例如以太坊客户和钱包),并确保智能合约和 dapps 仍保持兼容。
通常,标准作为以太坊改进提议 (EIP) 提出,由社区成员通过标准流程讨论确定。
EIPS 简介
EIP 列表
EIP GitHub 存储库
EIP 讨论板
...
2022-10-28 13:01:55 |
web3