大约 5 年前 , 我们开始构建 Trinity —— 以太坊网络上的新型 “轻量级客户端” 。 那时候 Geth 刚刚发布了第一版 LES 协议 , 而我们曾心怀远大的梦想 。
远大的梦想往往被现实所击倒 。 这些年来 , 我们得到了一些教训:
- EVM 计算从根本上来说是 “繁重的” 。
- LES 如同茫茫沙漠 , 客户端就是沙漠中渴求数据的旅人 。
- 同步并维护状态的难度过高 。
- 区块链上的历史记录在绝大多数情况下是无用的 , 却是必不可少的 。
- 核心以太坊协议在本质上对 “轻量级” 不友好 。
- Python 太慢了 。
- 自己运行客户端 。
- 使用 Infura 等中心化提供商的服务 。
- 自己托管邮件(难) vs. Gmail(易)
- 购买 DVD 或 CD(难)vs. 盗版(易)
- 盗版(难)vs. 流媒体(易)
- 自己运行以太坊节点(难)vs. Infura(易)
- 能够在资源有限的设备上运行(1 CPU / 1GB RAM / 磁盘占用量 <1GB)
- 公开标准 “钱包” 应用所需的 API
- 不需要同步
- 追踪区块链的最新区块
- 查看账户余额和 nonce
- 读取合约信息(如代币余额)
- 估算交易的 gas limit
- 发送交易
- 监控需要打包的待处理交易
- 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
让我们将目光转向以太坊协议……我们需要解决这个问题 。 在与以太坊协议交互时 , 人们可选择的方式有限 , 而且高度依赖中心化提供商 。 当前的网络状态就预示了未来可能发生的情况 。 我们构想了另一种适用于以太坊钱包的轻量级客户端 。 这一构想不只是一个想法 , 而是以实验、原型以及我们对现有协议不断深入的认知为基础的 。 我们正在研究的解决方案需要对核心以太坊协议进行一些修改 , 以便支持该用例 。 在该系列的下一篇文章中 , 我将概述需要修改和新增的部分 , 以及我们计划如何去实现它们 。 最重要的是 , 我将讲述我自己对这一新型轻量级客户端的用户体验的期望 。
(未完)
(文内有许多超链接 , 可点击左下 ”阅读原文“ 从 EthFans 网站上获取)
原文链接:
https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients/
【运行|科普 | 如何开发出好用的轻量级客户端,Part-1】作者:Piper Merriam
翻译&校对: 闵敏 &阿剑
推荐阅读
- 星链|石豪:在太空,马斯克和美国当局是如何作恶的
- 历史|科普:詹姆斯·韦布空间望远镜——探索宇宙历史的“深空巨镜”
- 空间|(科技)科普:詹姆斯·韦布空间望远镜——探索宇宙历史的“深空巨镜”
- 公司|赣锋锂业智能立体仓储系统正式运行
- Samsung|三星:西安半导体工厂正常运行 已进行封闭管理
- 高通骁|一加 10 Pro 现身 Geekbench:搭载高通骁龙 8,运行安卓 12 系统
- 模拟|(图文+视频)C4D野教程:Windows11的壁纸动效是如何制作的?
- 词条|百度百科上线2500万词条,超750万用户参与共创科普知识内容
- 帮信罪|带你了解什么是“帮信罪”如何避免落入陷阱
- 孩子|“双减”后 科学实践课如何做好“加法”