区块见闻 区块见闻
Ctrl+D收藏区块见闻

比特币:科普 | 如何开发出好用的轻量级客户端:从以太坊状态说起_区块链

作者:

时间:

科普|如何开发出好用的轻客户端,Part-1

科普|如何开发出好用的轻客户端,Part-2

大多数钱包软件都依赖于Infura等中心化提供商。如果我们想要别出心裁一些,就需要开发一个可以在低资源设备上运行的新型轻客户端。

在本文中,我们将介绍以太坊状态是什么,以及如何让轻客户端轻而易举地获得它。

以太坊状态

当我们提到“状态”时,我们指的是所有账户信息以及所有存储在智能合约中的数据。目前,状态包括:

1.32亿个账户大约10GB的账户数据大约30GB的合约storage数据大约60GB的Trie节点经常性数据我们先来看一下客户端目前是如何访问状态的。

同步

以太坊节点需要访问完整的状态才能处理新挖出的区块。我们可以通过执行从创世块开始到链首块的每个区块来从头计算出状态。通常情况下,我们不会采用这个方法,因为计算成本太高。

客户端倾向于直接从其它完全同步的客户端那里获取完整的状态副本。虽然不同的客户端执行该操作的具体方式不同,但无论是哪种客户端,在首次上线或离线一段时间后再次上线的情况下,通常都要花费一段时间同步至最新区块。

稳定币crvUSD科普创新清算机制LLAMMA,可在抵押品价格下跌时逐步替换为稳定币:1月17日消息,Curve官方科普其稳定币crvUSD创新的清算机制LLAMMA,解释了LLAMMA通过AMM的特性进行针对债务人更友善的清算方式,让抵押品在价格下跌时逐渐转移成稳定币,让原本要清偿的债务有一定程度的稳定币可以偿还,同时在价格回稳时再逐渐把稳定币换回抵押品,而不是直接的触发清算导致债务人的亏损。

此前报道,2022年11月23日,去中心化交易平台CurveFinance开发者发布Curve即将推出的去中心化Stablecoin“crvUSD”的官方代码和白皮书。[2023/1/17 11:17:13]

同步可能需要花费很多时间。如果你使用自己的节点与区块链交互,这会是一大缺陷。要让客户端一直保持同步状态,你不仅需要花时间等待客户端同步,还需要消耗计算机的计算和存储资源。

我们的解决方案是专门针对资源受限的设备而设计的,可以一举解决上述两个问题。我们的轻客户端在运行时只需消耗最少的CPU/RAM/HDD/带宽资源,而且可以保证永远在线。

民盟中央建议加速元宇宙科普和立法:3月4日消息,民盟中央已起草了《关于“元宇宙”技术发展的提案》,并将提交全国政协十三届五次会议。在提案中,民盟中央建议,在科普层面需加速知识传播,法律层面则需加快立法步伐。民盟中央拟提交的提案指出,目前,在新兴网络层面,相关政策法规相对缺失。“元宇宙”在未来将会带动形成全新的网络形态,当遇到突发舆情,全虚拟的环境、场景将更难进行源头追踪、问题疏导。因此建议应尽早加快立法研究,尽快形成与技术、市场发展相适应的治理模式和法律基础,全面提升我国社会治理的水平。建议组织相关部门,针对“元宇宙”相关需求、风险进行立法研究,并尽快发布。此前消息,民进中央拟向全国政协十三届五次会议提交《关于积极稳妥推进元宇宙技术和产业发展的提案》。建议推进元宇宙技术产业发展,建立相关监管治理体系。(华夏时报)[2022/3/4 13:37:12]

当然了,不同的设备之间存在差异,甚至有可能出现无法承受基础负载的情况。为了应对这一情况,我们正在努力免去完全同步的需求。在我们设计的模型下,客户端只需要准确获得链首块的信息即可。

我们的最终目标是构建一个在首次安装或离线一段时间后再次上线能够立即使用的客户端。这个客户端只需能访问正确的数据即可。

声音 | 浪潮集团云南分公司总经理:云南区块链产业发展需从“科普”到“专精”不断深化:据昆明日报消息,浪潮集团云南分公司总经理郑昕表示,云南区块链产业发展需从“科普”到“专精”不断深化。下一步,浪潮将继续加大云南农业产业高质量发展体系建设力度,重点以普洱茶等云南优势产业为切入点,打造云南“绿色、有机农产品高地”的品牌形象,并在此基础上,开展基于区块链的供应链金融服务,解决中小企业贷款难、贷款贵问题。[2019/11/11]

按需状态可得性

在如今的DevP2P以太坊协议中,有一个名为GetNodeData的消息。它可以用来检索以太坊状态的任意部分。我们已经在Trinity中使用该网络消息来开发“Beam”同步模式并证明了其可行性。这是我们进行的基础研究之一,旨在证明这种新型轻客户端是可以实现的。

遗憾的是,当前的DevP2P以太坊网络并不合适用于轻客户端用例,因为它需要每个节点都能存储超过40GB的状态数据,并提供状态的任意部分。无法响应这些状态数据请求的节点不太可能维持健康的对等连接。

按需状态访问模式

声音 | 火星人朋友圈科普RAM:火星人在朋友圈发文称,“什么是RAM?简单来说就是EOS这个国家的土地,所有的经济行为都离不开土地。只要EOS的BP们能投票形成一个稳定的供给预期,并且不改变目前的Bancor算法,那么RAM后续的价格有可能会像北上广深的房价走势。房价下跌不行,房价过快上涨也不行,EOS的生态越来越像某国了,真有意思。”[2018/7/6]

当前网络的设计是同步完整状态。GetNodeData消息适合我们的按需状态检索实验只是一个巧合。为了让客户端能够同步完整的状态,高效的访问模式是按顺序遍历数据,获得连续的大数据块。然而,在钱包用例以及我们的新型轻节点用例中,访问状态的需要需要很大程度上是随机的。

钱包访问状态的主要方式是通过以下JSON-RPC方法:

eth_getBalance用来检查账户余额eth_call用来查询合约数据eth_getTransactionCount和eth_estimateGas用来构建交易eth_getBalance和eth_getTransactionCount仅从主要账户Trie中读取值。因此,可以通过调用该方法获得Trie上现有的1亿多个账户中任意一个地址的情况。

中科院自动化研究所将面向大中小学生开展区块链等主题的科普讲座:5月21日,新华网讯,今年,中国科学院自动化研究所将举办第十四届“自动化之光”公众科学开放日活动。届时,自动化所将面向大中小学生分别开展《脑与智能》、《区块链技术与平行智能》、《大数据时代的视觉智能》、《动画真奇妙》等4个主题报告,用实例和生动的演示深入浅出地为大家揭示智能技术的原理和奥妙。[2018/5/21]

eth_call和eth_estimateGas都涉及实际的EVM执行。EVM执行可以从1亿多个账户中的任意一个及其底层合约存储Trie中读取数据。

我们发现,钱包只需读取少量数据,而且读取的需要是随机的。这在根本上与同步完整状态不同,因此这两个用例不太可能通过同一个解决方案来解决。

我们需要解决的问题

新的网络需要解决当前网络存在的一些缺陷。

如何分担并降低存储压力

这个网络上的节点要能为存储完整状态贡献少量存储空间。我们想让网络中的每个节点存储一小部分状态,而非完全复制所有状态。有了足够多的节点,整个网络就可以轻而易举地以极高的复制因子存储所有状态。

如何找到你需要的状态

由于每个节点只需存储小部分状态,我们再也不能盲目地向网络中的任意节点请求数据。因此,网络需要一个节点发现机制,以便节点获取所需数据。

如何确保数据永远是最新的

不同于可以构建成只能添加型文件的区块链历史记录,以太坊状态是持续变化的。每个交易都会导致账户余额和合约存储发生变化,这些更新需要在网络中广播。

如何从网络中读取数据

重要的是,客户端要能高效地从网络中读取数据。调用eth_estimateGas将根据最新的状态根预测执行交易,来确定交易需要消耗的gas。如果是一个只涉及两个账号的简单转账交易,所需的数据量相对较小。然而,如果是与智能合约交互并且需要用到合约存储的复杂交易,客户端需要从数据库读取的数据量则大得多。

假设一次网络往返需要100ms,那么一笔需要100个状态部分的交易需要花费大约10秒时间来估算gas使用量。如果延迟太久,一些操作可能需要花费过多时间才能完成,这会大幅降低网络的可用性。

如何解决合约存储失衡问题

账户Trie在设计上是平衡的,但合约存储不是。这就导致合约存储很难处理。

潜在解决方案

人们正在积极研究按需状态可得性。目前,我们还不清楚该研究的未来方向,但是我们目前主要聚焦于两个不同的方法。

GetNodeData风格的原生KademliaDHT

我们可以采用的最简单的解决方案之一就是,采用与GetNodeData相同的运作方式,但是仅要求每个节点存储距离自己最近的数据,而非所有数据。Trie上的每个节点都有一个哈希值,我们可以使用这些哈希值将Trie数据与DHT键空间关联起来。你可能还记得,KademliaDHT网络有一个新特性:遍历键空间只需O(log(N))。

这个方法的缺陷在于效率和速度。存储由单个节点哈希哈希作为键的Trie数据需要存储大量中介Trie节点,这会导致网络需要存储的数据总量翻倍。

这个方法也会让数据检索变得低效。通过该结构查找数据时,你必须从状态根开始遍历Trie节点。对于账户Trie来说,这平均需要7次查询,才能获得实际的账户数据。

这个方法确实具有很大的优势。它彻底避开了合约存储失衡问题,因为各个Trie节点的哈希值是随机的,因此数据会自动呈随机分布。再进一步来看,如果网络大到足以存储完整的6TB存档历史,这个网络最终将变成一个归档节点。

这个方法的另一个主要优势是,可以免去对证明的需求。我们直接构建Trie和所有中间节点,因此无需相关的默克尔证明。

目前,我们正在努力确定这个方法是否能够达到性能要求。

叶子节点和证明

另一个方法是将Trie的叶子节点组成共享同一条基础路径的连续的块。各个节点会存储KademliaDHT网络中离自己最近的Trie路径“周围”的所有叶子节点。对于高度平衡的账户Trie来说,这个方法非常有吸引力。

通过Trie路径处理数据,我们无需遍历Trie,访问叶子数据的复杂度将下降到O(1)。如果你还记得的话,GetNodeData风格的原生方法平均需要7次网络往返,才能访问存储在Trie叶子节点中的数据。然而,本节所介绍的方法在性能上的优势非常重要,而且是实现网络可用性必不可少的。

这个方法的优势也是有代价的。确保数据是最新的会极大提高复杂性。有很多方法可以做到这点,但是每个方法都有权衡取舍。虽然数据可以就地更新,但是这需要每个节点都进行昂贵的计算。或者,每次挖出一个新的区块后,更新后的证明都会广播至全网节点。这些方法都在计算和带宽之间进行了权衡取舍。但无论是计算还是带宽,这两个在我们眼中都是稀缺资源。

我们的研究结果将指明我们的新网络要采取的发展方向。

本系列的下一篇文章应该是最后一篇介绍性的材料。我们将检视这种新型的客户端实际长什么样,以及我们如何理解它的使用方式。我们将提供概要的路线图,说明我们将如何实现它;以及,我们所做的一切与“无状态以太坊”有何关联。

原文链接:https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients-part-3/作者:PiperMerriam翻译&校对:闵敏&阿剑

标签:比特币区块链INE稳定币比特币交易软件区块链币圈coinex交易所中文名kucoin投资稳定币

欧易交易所app下载热门资讯
NFTX:NFT指数基金NFTX启动治理代币,并开启PUNK资金池_DNFT

以太坊上的NFT指数基金NFTX宣布已解锁用户在社区募集期间收到的NFTX代币,并在Uniswap上启动NFTX/ETH池,起始价格为1枚ETH等于40枚NFTX.

NFT:直播 | Flow 创始人 Roham :NBA Top Shot 展示了区块链破圈的无限可能_AVASTR Vault (NFTX)

2月4日下午,DapperLabsCEORohamGharegozlou在链节点直播间表示,NBATopShot的总销售额已经超过了CryptoKitties,排名NFT收藏品第一位.

INE:古根海姆CIO:“比特币投机过热”“但能达40万美元”,为什么?_区块链

比特币冲上41,986美元就在10天前,而这之后比特币就进入了盘整期。美国资产管理巨头古根海姆(Guggenheim)首席投资官斯科特·米纳德(ScottMinerd)在近日发表对比特币发表了自.

ETH:除去已知的7002枚BTC 前Ripple CTO或再增加数百枚BTC损失_GET

据Cointelegraph1月18日消息,根据Ripple首席技术官DavidSchwartz的说法,前RippleCTOStefanThomas不止失去了7002枚BTC的获取权限.

BTC:BTC突破4万后回落,大瀑布要来了吗?_BSV

原标题:《BTC突破4万后回落,要回落了吗?》BTC 24小时资金净流出43.30亿元人民币:金色财经监测数据显示.

DASH:中国人民银行工作会议:2021年要稳妥开展数字人民币试点测试_BIKI Token

1月4日,2021年中国人民银行工作会议以视频形式召开。会议以新时代中国特色社会主义思想为指导,深入学习贯彻党的十九届五中全会和中央经济工作会议精神,总结2020年主要工作,分析当前形势,