链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

​​​4,270个代币。27,358笔交易。数字小猫463,713。

以太坊最近举办了很多活动,虽然很多加密爱好者认为这是一个积极的信号,随着网络使用量的增长,历史变长,区块链变得更加不稳定。

虽然导致交易积压和费用上涨的网络拥塞已经成为焦点,但这个规模还有另外一个问题 - 一个日益增长的数据库,为希望运行一个完整节点的用户带来了巨大的存储成本。

该数据库称为以太坊(Ethereum)状态,它包含支持平台和以太坊区块链本身的计算机需要记忆的所有计算。随着存储状态的成本(时间和金钱)越来越多,越来越少的人选择运行全部节点,许多担心将把网络集中到少数几个仲裁员手中。

开发人员认识到这个问题。

首先,以太坊开发人员正在进行工程协议级别的改变,如分片,旨在最小化数据库。

但是由于这些技术仍在发展之中,其他利益相关者,即运行以太坊客户的用户,即用户与区块链进行沟通所需的软件,已经面临着应对国家数据库增长的新的压力。

“自2016年年底以来,改善这种情况至关重要的事实已经被人们所了解,这些想法已经流传了半年到一年多了,实施在哪里呢?说,以太坊的创造者Vitalik Buterin最近在开发者频道上。

Buterin和Afri Schoedon在Ethereum软件客户端供应商Parity的管理技术交流中感到沮丧。Schoedon告诉CoinDesk:

“按目前的增长速度,预计今年国家将快速增长,到小型设备上难以管理的地步。”

为了限制这个笨拙的国家的影响,最近两个最受欢迎的以太坊客户 - Geth和Parity最近发布了更新,试图改善这种状况。

涡轮增压

Parity上周发布的第一个更新通过消除不必要的临时文件来减少存储需求,因为软件记录了以太坊的历史。

通过极大地减少存储需求,用户连接运行完整的节点,然后体验更快的同步时间。因此,该公司表示,其以太坊软件现在可以在硬盘上运行,而不是固态硬盘(SSD),这是一个特别显着的成就,因为自去年夏天以来,长时间的同步使得以太坊无法在硬盘上运行。

Buterin在开发者频道上说:“哇,你们是怎么做到的?

作为更新的结果,用户已经报告了大大改进的体验。

与此同时,独立开发商Alexey Akhunov一直致力于改写geth客户端,称为“turbo geth”。该项目被阿赫胡诺夫描述为“痴迷”,旨在消除以太坊客户如何处理整体状况的诸多不必要的重复。

尽管还没有准备好,但是它开辟了一些“投机优化”的有趣途径,Akhunov在最近的开发者聊天中说。

例如,Akhunov建议将客户自己的某些关于以太坊的信息“硬编码”。最终目标是使软件适应简单的运行,使用随机存取存储器(RAM),这可以使客户端更快 - 使他们有可能立即与网络同步。

Geth公司的开发人员也在进行优化,他们试图纠正当客户端与网络在所谓的“快速”模式下同步时如何存储信息的问题。由Geth核心开发人员PéterSzilágyi描述为“非常糟糕”,现有的代码可能会被一系列更新所取代,这些更新使同步更快,更少占用存储空间。

限制

还有一种被称为“无状态客户端”的客户端类型正在研究,这种客户端类型只存储整个状态的压缩。

即使Buterin对这个想法感兴趣,最近正在进行一项研究,描述一个“矿工和全部节点不再需要存储任何状态”的情况。此外,Buterin稍后在开发者渠道中表示,无国籍客户还可以通过其他措施来缓解清理状态的需要,例如修剪旧的不相关的数据,例如空的或长期不活动的账户。

Buterin写道:“我现在赞成无国籍客户的做法。

甚至有人猜测无状态客户端可能没有进行协议级别的更改。

作为一个可能的解决方案,在CryptoKitties成功之后,把这些客户作为一个可能的解决方案来解决Ethereum所面临的障碍,Akhunov在最近的一篇博客文章中写道:“我相信(无状态客户)现在已经可以实现,没有任何硬分叉,更改以太坊客户端…这意味着节点不需要从文件访问存储,并且块验证时间应该会显着下降。

但是,客户端优化不可能是网络依赖的唯一方法来减少状态问题。

根据Szilágyi的说法,最终客户端优化将达到极限。然后开发人员必须把注意力转向正在进行的技术,比如分割(fragmentation),将以太坊数据库拆分成存储在不同节点的较小块,以减轻将整个数据库存储在各个客户端上的压力。

也许是为了应对最近网络上的压力,近几个月来分片开发已经有所进展,在Github上勾勒出了一个早期的规范。

Szilágyi说:“我们可以优化数据库,使其快十倍,最优化,这使我们有足够的空间增长到目前规模的十倍。”他补充道:

但是最终,我们将不再能够进行数据库优化,到那时我们需要能够分割我们的数据。“​​​​

区块链膨胀:以太坊客户如何解决存储问题相关推荐

  1. 【系列】区块链与以太坊实战(1)-基础知识

    请扫描本文结尾的二维码关注我的微信公众号,或在微信搜索 极客起源 即可关注,每个工作日都有文章更新. 李宁老师的区块链与以太坊系列文章开张了,本系列文章将全面阐述区块链与以太坊的基本概念以及核心技术, ...

  2. V神建议使用BCH区块链用于以太坊“数据层”

    在以太坊社区论坛Ethresear.ch中,以太坊联合创始人Vitalik Buterin发布了一篇题为<BCH:以太坊的短期数据可用层?>的文章,他在文中提出了一个关于解决以太坊短期网络 ...

  3. 区块链扫盲之7,区块链与以太坊

    通过深入了解比特币系统我们已经知道,区块链是源自比特币的底层技术,它让我们可以无须借助任何第三方中介直接进行价值表示和价值转移,它还给数字世界带来了价值表示物--通证.区块链将使互联网从"信 ...

  4. 深度对话 | V 神纵论区块链和以太坊

    深度对话 | V 神纵论区块链和以太坊 在编程.经济学.密码学.分布式系统.信息论和数学的交叉点上,Vitalik Buterin将自己在这些领域的见解组合成一个真实世界中非常成功的,旨在将传统互联网 ...

  5. 【区块链】以太坊区块链技术初探

    2019独角兽企业重金招聘Python工程师标准>>> [国内首家]以太坊区块链实战教学:http://edu.csdn.net/course/detail/6455 LinApex ...

  6. 区块链兼容以太坊智能合约

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 引言 随着区块链技术以及应用的普及,越来越多的区块链出现在大众视野中.由于区块链技术的开源特性,任何公司和个人都可以方便 ...

  7. js 文件不让通过地址访问_区块链与以太坊实战(5):访问以太坊节点的N中方式...

    ---------支持作者请转发本文-----------本文主要介绍用web3.js访问以太坊节点的几种方式,主要包括HTTP和Web两种访问方式.1. 什么是Web3.jsWeb3.js是一套用J ...

  8. 区块链安全-以太坊智能合约静态分析

    概述 目前,以太坊智能合约的安全事件频发,从The DAO事件到最近的Fomo3D奖池被盗,每次安全问题的破坏力都是巨大的,如何正确防范智能合约的安全漏洞成了当务之急.本文主要讲解了如何通过对智能合约 ...

  9. php区块链以太坊,兄弟连区块链教程以太坊源码分析CMD深入分析(一)

    兄弟连区块链教程以太坊源码分析CMD深入分析. cmd包分析 cmd下面总共有13个子包,除了util包之外,每个子包都有一个主函数,每个主函数的init方法中都定义了该主函数支持的命令,如 geth ...

最新文章

  1. Python-常用字符串转换实例
  2. 【java 性能优化实战】2 深入剖析:哪些资源,容易成为瓶颈
  3. 笔记-项目合同管理-要约、承诺和要约邀请
  4. 2017微服务 mysql集群_成功升P7多亏掌握了这几点:高并发+Nginx+微服务+Redis+MySQL...
  5. asp.net 强制性单一登陆现实
  6. 解决表字段使用关键字导致Mybatis Generator生成代码异常的解决方案
  7. 深度学习推荐系统中各类流行的Embedding方法
  8. debian9为什么默认是pip2_Debian9 安装后基本配置
  9. 游戏设计规则探秘之提高动词的健壮性
  10. AJAX,JSON 夜鹰
  11. Android组件化开发实践
  12. android 编译api,Android逆向利器,直接将apk转换为可二次开发Android工程,提供So hook Api,......
  13. Windows系统的版本分类
  14. 开题报告的选题依据怎么写?
  15. OfficeExcel(5)
  16. vue+element 压缩上传图片
  17. SVN E200030: There are unfinished transactions detected
  18. 数据库——postgresql数据库中standard_conforming_strings对‘\\’的影响
  19. 安装Chrome Restlet Client插件
  20. LTE-A载波聚合技术(14)---CQI的TDM和CDM

热门文章

  1. 【servlete】兴唐第三十二节课知识点汇总
  2. 软件测试实验--性能测试工具LoadRunner
  3. 实验2  使用T-SQL编写程序
  4. java modbus协议
  5. linux7设置时间,CentOS 7 设置日期和时间
  6. json转换模型利器--JSONExport
  7. iOS 开发之便捷宏定义
  8. bzoj 4025 二分图——线段树分治+LCT
  9. 聊聊storm的stream的分流与合并
  10. ubuntu 下mysql导入出.sql文件