-
web3 以太坊开发-53-web3-secret-storage
Web3 secret storage definition
为了让你的应用在以太坊上运行,你可以使用 web3.js 库提供的 web3 对象。
在后台,它通过 RPC 调用与本地节点通信。 web3 适用于任何暴露 RPC 层的以太坊节点。
web3 包含 eth 对象 - web3.eth。
var fs = require("fs")
var recognizer = req...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-53-数据结构与编码 帕特里夏默克尔树
帕特里夏默克尔树
帕特里夏默克尔树提供经加密认证的数据结构,可用于存储所有 (key, value) 对。
帕特里夏默克尔树完全具有决定性,意味着可以保证具有相同 (key, value) 对的前缀树从第一个到最后一个字节完全相同。
这意味着他们有相同的根哈希值,从而提供强大的 O(log(n)) 级别的插入、查找和删除效率。
此外,与其他更复杂的基于比较的数据结构(如红黑树)相比,...
2022-10-28 13:01:55 |
web3
-
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