比特币交易 比特币交易
Ctrl+D收藏比特币交易
ads

如何开发出好用的轻量级客户端?

作者:

时间:1/25/2021 9:36:08 PM

大约 5 年前,我们开始构建 Trinity —— 以太坊网络上的新型 “轻量级客户端”。那时候 Geth 刚刚发布了第一版 LES 协议,而我们曾心怀远大的梦想。

远大的梦想往往被现实所击倒。这些年来,我们得到了一些教训:

EVM 计算从根本上来说是 “繁重的”。

LES 如同茫茫沙漠,客户端就是沙漠中渴求数据的旅人。

同步并维护状态的难度过高。

区块链上的历史记录在绝大多数情况下是无用的,却是必不可少的。

核心以太坊协议在本质上对 “轻量级” 不友好。

Python 太慢了。

我们的目标是远大的,方法是有缺陷的。现在是该从头再来的时候了。

如果你想要与以太坊协议交互,摆在你面前的是两个选择:

自己运行客户端。

使用 Infura 等中心化提供商的服务。

上述两个选择可以满足大多数用例的要求,但是它们位于两个极端。以太坊客户端需要消耗大量磁盘空间,花费数小时乃至数天时间进行同步,而且对 CPU 和内存的占用通常很大。中心化提供商是一种简单可靠的方案,但是要以牺牲隐私性、安全性和去中心化原则为代价。

为什么我们不能有介于二者之间的第三种选择?互联网已经证明过很多次了了,在困难模式和简单模式之间,人们往往会选择后者。

自己托管邮件(难) vs. Gmail(易)

购买 DVD 或 CD(难)vs. 盗版(易)

盗版(难)vs. 流媒体(易)

自己运行以太坊节点(难)vs. Infura(易)

我想过采用隐私保护型解决方案。然而,我的所有交易都是通过 MyCrypto 或 Metamask 完成的。这两款钱包都来自中心化提供商。它们都支持用户使用自己的节点,但是就现有的客户端来说,我认为这么做成本太高。如果我们想与这些中心化解决方案争夺市场份额,我们需要为用户提供更好的选择。

我们对客户端的要求是:

能够在资源有限的设备上运行(1 CPU / 1GB RAM / 磁盘占用量 <1GB)

公开标准 “钱包” 应用所需的 API

不需要同步

从用户的角度来说,我希望让客户端时刻保持运行,而不会影响我的设备的性能。我希望在离线一段时间后,再上线时无需等待客户端同步。

这就是我心中的 “圣杯”,是我舍命也要攀登的高峰。

我们这里讲的是如何为钱包构建一个完美的客户端。钱包无处不在,而且主要由中心化提供商支持。总的来说,钱包要满足以下需求:

追踪区块链的最新区块

查看账户余额和 nonce

读取合约信息(如代币余额)

估算交易的 gas limit

发送交易

监控需要打包的待处理交易

大多数钱包都采用标准化的 JSON-RPC API。根据上述需求转化成的 JSON-RPC 端点如下所示:

eth_blockNumber用来追踪链首块

eth_getBalance和eth_getTransactionCount用来查看账户信息

eth_call用来读取合约信息

eth_estimateGas用来估算 gas limit

eth_sendRawTransaction用来发送交易

eth_getTransactionReceipt表示交易已经被挖出

如果我们更深入分析该功能的必备条件,就会得到更低一级的需求:

访问账户和合约存储以支持eth_call、eth_estimateGas、eth_getBalance和eth_getTransactionCount

访问gossip网络来追踪链首块和eth_sendRawTransaction

访问链上历史记录来获得eth_getTransactionReceipt

因此,如果我们可以满足这些需求,就可以构建一个适合轻量级钱包的客户端,不需要同步,也无需牺牲隐私性和安全性。

目前,以太坊客户端可以在以太坊协议和 LES DevP2P 协议之间进行选择。

LES 协议采用服务器/客户端模型。在该模型中,数据会根据要求从服务器流向客户端。该协议不允许客户端通过任何有意义的方式返回数据,这点可以从协议状态看出。根据我的经验来看,LES 协议中的服务器和客户端在数量上严重失衡。运行服务器的成本很高,现有服务器的数量不足。这就导致 LES 变得不可靠,而且经常会变得完全不可用。

以太坊协议则另有缺陷。该协议很好地达到了目的,确保网络中所有的节点都尽可能地复制了完整的历史记录和状态数据。这对客户端的要求很高。网络中的每个节点都必须保存完整的历史记录和状态。没有保存这些数据的节点不太可能保持健康的点对点连接,可能会在无法满足对等节点的数据要求时断开连接。

在本系列文章中,我们想要解构以太坊协议这一 “庞然大物”。该协议包含了我们理想的客户端类型的所必备的一切功能。它的设计适合全节点和矿工,但是不适合我们所概述的轻量级客户端。

让我们将目光转向以太坊协议……

我们需要解决这个问题。在与以太坊协议交互时,人们可选择的方式有限,而且高度依赖中心化提供商。当前的网络状态就预示了未来可能发生的情况。

我们构想了另一种适用于以太坊钱包的轻量级客户端。这一构想不只是一个想法,而是以实验、原型以及我们对现有协议不断深入的认知为基础的。

我们正在研究的解决方案需要对核心以太坊协议进行一些修改,以便支持该用例。在该系列的下一篇文章中,我将概述需要修改和新增的部分,以及我们计划如何去实现它们。最重要的是,我将讲述我自己对这一新型轻量级客户端的用户体验的期望。

原文链接:

https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients/

作者: Piper Merriam

翻译&校对: 闵敏 & 阿剑

我们正在研究的解决方案需要对核心以太坊协议进行一些修改,以便支持该用例。在该系列的下一篇文章中,我将概述需要修改和新增的部分,以及我们计划如何去实现它们。最重要的是,我将讲述我自己对这一新型轻量级客户端的用户体验的期望。

原文链接:

https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients/

作者: Piper Merriam

翻译&校对: 闵敏 & 阿剑

赵锡军:央行数字货币重点在于如何与传统货币进行融合:对于“数字货币研发重点和难点”的看法,中国人民大学财政金融学院副院长赵锡军指出,其中涉及两个问题。一是技术是否成熟。比特币实际上就是数字货币最初的雏形,从技术层面来讲,比特币是有一些缺陷的,一旦支付量变大,就会出现支付困难或者效率下降。另外,比特币出现过被盗等安全问题。而据央行货币研究所所长穆长春的一个内部研讨会指出,央行数字货币,效率是非常高的,支付能力很强,说明已经克服技术方面的问题。二是数字货币被引入后,如何与传统的货币和货币管理运行体系进行融合。数字货币的发行,是基于区块链的基础,它是有上限的,从目前来讲它的发行规模取决于互联网的算力。尽管穆长春所长也提到,央行数字货币现在可以突破区块链的上限限制,但是破获以后,它的发行究竟是怎么样的,是否能够跟我们目前的人民币发行顺利融合,这需要在制度层面有所安排。(澎湃新闻)[2020/4/22]

国际货币基金组织主席:最终幸存下来的加密资产可能会对人们如何储蓄产生重大影响:据bitcoinist消息,国际货币基金组织(IMF)主席拉加德(Christine Lagarde)在其新的博客文章中表示,最终幸存下来的加密资产可能会对我们如何储蓄,投资和支付账单产生重大影响。拉加德指出了加密货币能够进行快速和廉价的跨境金融交易的好处,并称比特币的基础技术——分布式账本技术可能会改变金融市场的运作方式。此外,拉加德指出,智能合约的革命性,可以移除中间商,而区块链技术能够安全地存储重要文件。最后,拉加德指出,在发展中的经济体,这种进步可以帮助确保产权,增加市场信心并促进投资。[2018/4/18]

传真格基金创始人徐小平呼吁各CEO了解区块链 学习如何拥抱这场革命:据某互联网知名博主爆料,真格基金创始人徐小平在真格基金投资组合微信群呼吁各CEO积极了解区块链,并立即动员全体高管和员工,学习如何拥抱这场革命。[2018/1/9]

标签:

区块链热门资讯
1.25晚间行情:大饼终于来了

文章系金色财经专栏作者币圈北冥供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别防上当。 据OKEx的数据显示,当前BTC/USDT现货报价为 34795,24小时涨幅/跌幅为 8.48%。

1/25/2021 10:29:56 PM
晚间必读5篇 | 明庄灰度不是加密资产救市主?

1.2021最具争议的以太坊EIP-1559提案:不亚于比特币区块扩容? 1月22日消息,以太坊开发者DannyRyan表示,以太坊改进提案EIP-1559预计将于今年推出。虽然EIP-1559在代码方面已经基本完成,但是该提案遭到了矿工们的一些抵制,1月22日消息,一些以太坊矿工组成了一个卡特尔组织,以阻止存在争议的提案EIP-1559的实施。

1/25/2021 10:03:11 PM
分布式数字身份原理、模型与关键技术

2021年1月15日,北京金融科技产业联盟成功举办“基于区块链的金融分布式数字身份技术应用研讨会”。本次研讨会邀请金融机构和科技公司专家,共同探讨分布式数字身份技术理论、模型原理和体系架构,分享技术实现、应用案例及落地实践经验,加强产用端的交流与合作。

1/25/2021 9:47:02 PM
如何开发出好用的轻量级客户端?

大约 5 年前,我们开始构建 Trinity —— 以太坊网络上的新型 “轻量级客户端”。那时候 Geth 刚刚发布了第一版 LES 协议,而我们曾心怀远大的梦想。 远大的梦想往往被现实所击倒。这些年来,我们得到了一些教训: EVM 计算从根本上来说是 “繁重的”。 LES 如同茫茫沙漠,客户端就是沙漠中渴求数据的旅人。 同步并维护状态的难度过高。

1/25/2021 9:36:08 PM
预言机:DeFi的必要条件

“当DeFi逐步向更多领域进发时,预言机的发展便成了决定DeFi木桶容量的最短那一块且最重要的木板” 预言机翻译自英语单词“Oracle”,虽然有神谕等类似的含义,但其本身和预言并没有太大的关系,也不是用来预测什么的。 通常场景下,预言机的作用是解答某一个特定问题,并给出确定性的答案,以支持基于这个答案后续的程序运行。

1/25/2021 9:36:03 PM
金色DeFi日报 | 以太坊上DeFi协议总锁仓量突破390亿美元

DeFi数据 1.DeFi总市值:466.17亿美元市值前十币种涨跌幅,金色财经制图,数据来源Coingecko 2.过去24小时去中心化交易所的交易量:20.3亿美元 交易量排名前十的DEX 数据来源:Debank 3.DeFi借贷平台借款总量:47.2亿美元DeFi借贷平台借款占比,金色财经制图。

1/25/2021 9:19:55 PM
区块财经满爷1月25日:BTC、ETH、LTC、DOT、UNI、CRV、1INCH行情分析

这两天我比较忙一点,新买的房子虽然是精装修的但是还要买家具,定制的衣柜等等杂七杂八的事情。可能更新上不太能维持往常的节奏,大家见谅。 这几天我们提出了两个观点。 第一个观点为28800美金为这波4浪调整的底部,我们通过这次调整的三角形然后扩大三角,最后确定联合形的调整浪方案。 从而假设出28800美金为这波调整的底部。

1/25/2021 9:03:44 PM
ads