顾名思义, 内存区块链, 是一种技术方案, 此种方案是把区块链运行数据主要放置到计算机内存之中, 也就是RAM, 而非放置在传统硬盘之上, 传统硬盘指的是HDD或者SSD。在我拥有多年系统架构以及分布式计算经验期间出现了内存区块链, 它是对传统区块链性能瓶颈的一次直接回应, 就此作出回应。它的核心思路相当简单, 即借助内存具备的极快读写速度以便替代硬盘的缓慢I/O操作, 借此大幅提升区块链的交易处理效率以及响应速度。
内存区块链和普通区块链有什么不同
早期版本的比特币或以太坊这类传统区块链, 每一步操作都得往硬盘上写入数据, 共识验证依赖磁盘读写, 状态存储依靠磁盘读写, 交易记录同样依赖磁盘读写, 这如同用普通机械硬盘运行数据库, 读写速度受物理限制牢牢卡住, 而内存区块链则是将整条链的状态以及交易池都放置于内存里, 读写延迟从毫秒级一下子降至纳秒级, 比如, 传统链确认一笔交易有可能需要几秒甚至几十秒, 然而内存链能够在几百微秒内完成验证与记账。在存在需要高频交易或者实时结算的场景之时, 这种速度方面的差异, 其差距会呈指数级放大, 当然, 因为内存的容量相较于硬盘要小上许多, 这就意味着内存区块链根本不可能如同比特币那般去保存海量的历史数据, 它更适宜用来做“轻量级”的记录层, 像是联盟链内部的资产转移, 又或者是高并发的游戏道具交易。
内存区块链适合用在哪些场景
换个角度从实际落下地方来瞧, 内存区块链最适配的场景是那些对延迟特别敏感, 然而却不需要去存储完整历史数据的应用, 像是供应链金融里的应收账款流转, 几家企业之间老是频繁地去确认债权债务关系, 每一回都得等上十几秒才能够拿到结果, 如此流程根本就没办法运行得通, 再比如说高频交易的对账系统, 交易所在微秒级别的程度上去比拼速度, 传统区块链根本就没办法参与进去, 内存区块链能够当作一个“即时确认层”, 将交易结果实时地写入内存链, 事后定期把最终状态快照落到硬盘上去做归档。这样做,既保证了速度,又不牺牲数据永久性。
另外存在一个容易被忽略遗忘的情形是物联网装置之间的微小交易。智能电表相互之间结算用电数量, 一回交易或许仅仅只有几分钱, 传统链条的手续费都比交易金额还要高。内存区块链由于省却了磁盘写入花费, 手续费能够压低到几乎等同于零。当然咯, 前提条件是装置自身的内存资源耍够用, 或者是部署于边缘服务器的内存当中。

内存区块链的局限与风险
最大症结在于断电便会失去的内存数据, 一旦系统出现崩溃或者重启的状况, 内存当中的链数据就会全数被清空完, 这就意味着必须要搭配可靠的持久化策略才行, 不然的话“链”就会成为“流沙之上的建筑”, 常见的做法是定时或者实时地将内存状态写入到硬盘或者分布式存储系统当中, 然而这样做的话, 写入性能瓶颈又部分地跑回来了 , 内存还十分昂贵, 相较于硬盘, 相同容量内存成本高出十倍甚至还要更多, 要是链的状态数据膨胀到几十GB大小, 仅仅内存成本就很可能会让许多中小企业觉得望而却步。首先是安全性方面, 内存存在着更易于遭受侧信道攻击或者内存溢出漏洞威胁的情况, 这是由于一旦攻击者成功渗透至操作系统层面, 便能够直接对内存中的链数据进行读取或者篡改操作。而在实际情况当中, 这些风险统统都须借助硬件加固、加密隔离以及分布式共识机制来加以对冲, 并非是像简单地将区块链放置进内存那样就能够解决的。
内存做的区块链可不是包治百病的神药, 它是针对特定速度要求, 对传统架构做出的一种激进式优化举措。要是能运用得当, 它会成为提升性能的有力工具可要是运用不当, 它就成一边烧钱一边还会丢失数据的定时炸弹。从事相关行业的人员应当先问问自己: 我的应用场景是不是真正急需纳秒级别的确认? 我的业务所涉及的数据量是不是处于可控制的范围之内? 我的运维团队有没有能力去面对内存级别的高可用难题与挑战? 把这些问题都思考明白之后, 再去决定是不是要把区块链部署到内存当中。
转载请注明出处:imtoken,如有疑问,请联系()。
本文地址:https://m.zmdyd.cn/gwimqb/7999.html
