原文标题:《科普|如何开发出好用的轻量级客户端,Part-1》
撰文:PiperMerriam
翻译&校对:闵敏&阿剑
大约5年前,我们开始构建Trinity——以太坊网络上的新型「轻量级客户端」。那时候Geth刚刚发布了第一版LES协议,而我们曾心怀远大的梦想。
远大的梦想往往被现实所击倒。这些年来,我们得到了一些教训:
EVM计算从根本上来说是「繁重的」。LES如同茫茫沙漠,客户端就是沙漠中渴求数据的旅人。同步并维护状态的难度过高。区块链上的历史记录在绝大多数情况下是无用的,却是必不可少的。核心以太坊协议在本质上对「轻量级」不友好。Python太慢了。我们的目标是远大的,方法是有缺陷的。现在是该从头再来的时候了。
美众议院要求SEC主席对其的调查做出更好回应:金色财经报道,美国众议院三名委员会主席对美国证券交易委员会(SEC)主席Gary Gensler关于记录保存要求调查的回应表示不满。美国司法委员会主席、监督委员会主席和金融服务委员会主席发表了一封信,要求Gensler做出更令人满意的答复,并指出他们的直接要求。《华尔街日报》的一篇报道批评美国证券交易委员会和其他机构的记录保存不当,促使国会议员和众议员Tom Emmer采取行动。该报告强调了政府官员使用聊天记录处理公务的情况,而这些聊天记录并未被搜索以满足《信息自由法》的要求。最近的信函重申了最初的要求,并要求Gensler在不打算遵守的情况下做出解释。这封日期为6月28日的信还指出了Gensler 2021年公开会议日程中的不一致之处,并提到了加密货币。[2023/7/2 22:12:40]
访问以太坊协议
香港库务局局长陈浩濂:已拨款5000万元推进行业发展:4月12日消息,在今日举行的Web3香港嘉年华峰会上,香港特别行政区政府署理财经事务及库务局局长陈浩濂表示,自香港去年推出相关政策以来,已有包括虚拟资产交易所、虚拟资产网络安全公司、虚拟资产钱包、支付机构等各种类型的 Web3 公司决定来香港设立其国际总部或扩大规模。香港将为虚拟资产交易所于今年 6 月实施发牌制度,并已于今年 2 月发行代币化政府绿色债券。
另外,香港的财政预算公布拨款 5000 万元来推进行业发展,为吸引和培养业界相关人才,还将推出券商学生金融科技实习计划,让更多优秀人才在未来致力于投身金融科技行业。[2023/4/12 13:59:28]
如果你想要与以太坊协议交互,摆在你面前的是两个选择:
元宇宙活动平台Flox完成100万英镑融资:10月25日消息,据外媒报道,英国元宇宙活动平台Flox宣布完成100万英镑融资,投资方信息暂未披露。据悉,Flox的目标是成为“元宇宙世界中的Zoom”,该公司主要帮助企业和高校开展元宇宙活动,其平台可支持多达10万人参与,目前已经在饮料巨头Molson Coors等三家公司开展试点。(Bdaily News)[2022/10/25 16:37:53]
自己运行客户端。使用?Infura?等中心化提供商的服务。上述两个选择可以满足大多数用例的要求,但是它们位于两个极端。以太坊客户端需要消耗大量磁盘空间,花费数小时乃至数天时间进行同步,而且对CPU和内存的占用通常很大。中心化提供商是一种简单可靠的方案,但是要以牺牲隐私性、安全性和去中心化原则为代价。
欧洲央行行长:加密货币和 DeFi 可能对金融稳定构成“真正风险”:金色财经报道,欧洲中央银行(ECB)行长Christine Lagarde表示,我们相信,在我们着手开展有关加密资产及其带来的风险的工作时,加密资产和DeFi有可能对金融稳定构成真正的风险。如果加密资产市场和服务继续快速增长,并且与传统金融部门和更广泛的经济的相互联系得到加强,情况尤其如此。
然而,她指出:目前,私营部门加密资产与传统金融之间的联系仍然有限。拉加德接着谈到了加密资产市场监管(MiCA)法案。她强调,她担任主席的欧洲系统性风险委员会 (ESRB) 支持快速采用和实施 MiCA 的必要性。(bitcoin.com)[2022/6/25 1:30:07]
为什么我们不能有介于二者之间的第三种选择?互联网已经证明过很多次了,在困难模式和简单模式之间,人们往往会选择后者。
自己托管邮件vs.Gmail购买DVD或CDvs.盗版盗版vs.流媒体自己运行以太坊节点vs.Infura我想过采用隐私保护型解决方案。然而,我的所有交易都是通过MyCrypto或?Metamask?完成的。这两款钱包都来自中心化提供商。它们都支持用户使用自己的节点,但是就现有的客户端来说,我认为这么做成本太高。如果我们想与这些中心化解决方案争夺市场份额,我们需要为用户提供更好的选择。
我们对客户端的要求是:
能够在资源有限的设备上运行公开标准「钱包」应用所需的API不需要同步从用户的角度来说,我希望让客户端时刻保持运行,而不会影响我的设备的性能。我希望在离线一段时间后,再上线时无需等待客户端同步。
这就是我心中的「圣杯」,是我舍命也要攀登的高峰。
钱包
我们这里讲的是如何为钱包构建一个完美的客户端。钱包无处不在,而且主要由中心化提供商支持。总的来说,钱包要满足以下需求:
追踪区块链的最新区块查看账户余额和nonce读取合约信息估算交易的gaslimit发送交易监控需要打包的待处理交易大多数钱包都采用标准化的JSON-RPCAPI。根据上述需求转化成的JSON-RPC端点如下所示:
eth_blockNumber?用来追踪链首块eth_getBalance?和?eth_getTransactionCount?用来查看账户信息eth_call?用来读取合约信息eth_estimateGas?用来估算gaslimiteth_sendRawTransaction?用来发送交易eth_getTransactionReceipt?表示交易已经被挖出如果我们更深入分析该功能的必备条件,就会得到更低一级的需求:
访问账户和合约存储以支持?eth_call、eth_estimateGas、eth_getBalance?和?eth_getTransactionCount访问gossip网络来追踪链首块和?eth_sendRawTransaction访问链上历史记录来获得?eth_getTransactionReceipt因此,如果我们可以满足这些需求,就可以构建一个适合轻量级钱包的客户端,不需要同步,也无需牺牲隐私性和安全性。
如今的以太坊网络
目前,以太坊客户端可以在以太坊协议和LESDevP2P协议之间进行选择。
LES协议采用服务器/客户端模型。在该模型中,数据会根据要求从服务器流向客户端。该协议不允许客户端通过任何有意义的方式返回数据,这点可以从协议状态看出。根据我的经验来看,LES协议中的服务器和客户端在数量上严重失衡。运行服务器的成本很高,现有服务器的数量不足。这就导致LES变得不可靠,而且经常会变得完全不可用。
以太坊协议则另有缺陷。该协议很好地达到了目的,确保网络中所有的节点都尽可能地复制了完整的历史记录和状态数据。这对客户端的要求很高。网络中的每个节点都必须保存完整的历史记录和状态。没有保存这些数据的节点不太可能保持健康的点对点连接,可能会在无法满足对等节点的数据要求时断开连接。
在本系列文章中,我们想要解构以太坊协议这一「庞然大物」。该协议包含了我们理想的客户端类型的所必备的一切功能。它的设计适合全节点和矿工,但是不适合我们所概述的轻量级客户端。
解构以太坊协议
让我们将目光转向以太坊协议……
我们需要解决这个问题。在与以太坊协议交互时,人们可选择的方式有限,而且高度依赖中心化提供商。当前的网络状态就预示了未来可能发生的情况。
我们构想了另一种适用于以太坊钱包的轻量级客户端。这一构想不只是一个想法,而是以实验、原型以及我们对现有协议不断深入的认知为基础的。
我们正在研究的解决方案需要对核心以太坊协议进行一些修改,以便支持该用例。在该系列的下一篇文章中,我将概述需要修改和新增的部分,以及我们计划如何去实现它们。最重要的是,我将讲述我自己对这一新型轻量级客户端的用户体验的期望。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。