0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

树图区块链Conflux 把 TPS 大幅度提高以后,数据怎么存?

倩倩 来源:用户投稿 2019-12-16 14:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

区块链相关从业者朋友们经常提到这样一个问题:树图区块链Conflux 把 TPS 大幅度提高以后,数据怎么存?以现在树图区块链Conflux 的网络参数为例,平均每秒生成 4 个区块,每个区块大小约为 300KB。那么在满载的情况下,一秒的吞吐量为 1.2MB,一天约 100GB,每年新增的交易历史数据可达 30TB。在企业级和工业级的应用中存储 30TB 数据并不是一件特别困难的事情,按照现在的市场价 3 块 10TB 硬盘只需 5000-7000 元。但是不同于 Hashgraph 那样的“企业级联盟链”,树图区块链Conflux 要最大程度地保证去中心化,因此就必须尽可能地降低参与共识的成本。

为了降低参与共识的门槛,树图区块链Conflux在开发时把全节点的最低运行配置限制在 2019 年主流家用台式机的水平。包括同步交易、执行交易、验证交易、维护树图结构等操作在内,全节点消耗的CPU、硬盘、内存等计算资源受到了非常严格的控制。因此,通过要求矿工增加新硬盘以存储新增数据的“简单解决方案”从一开始就不在考虑范围之内。

高吞吐量还带来另外一个问题:新节点加入的时候,需要花多长时间来同步已有的数据?为了解决高吞吐量带来的存储和同步的问题,树图区块链Conflux 采用了如下方案:对于足够老的区块,全节点只需存储区块头而不用存储区块内的具体交易信息。树图区块链Conflux 未来会提供“档案节点”(Archive Node)的代码,允许任何人运行一个档案节点,存储所有历史数据。上述设计可能与大家直觉中认识的区块链有些出入,所以下面我们解释一下,为什么这样的设计没有丢失区块链基本的属性。让我们一起来看一下 树图区块链Conflux的区块头里都包含哪些信息:首先,区块头包含所有区块引用的信息。这意味着 树图区块链Conflux 的树图结构是在每个全节点都完整保存的。

其次,工作量证明要求每个区块头的哈希值足够小,需要有足够多的“前导0”。即使不保存区块内的交易,仅从区块头也足以判断区块生成时是否付出了足够的工作量。也就是说,区块头中还保留了工作量证明的信息。因此,区块之间的结构和区块头中的信息,都是以去中心化和不可篡改的方式,在每一个全节点那里被存下来的。攻击者如果想改写历史,就必须付出与“历史累计工作量”相当的代价。除了树图结构和工作量证明外,区块头还包含有这个区块交易和交易执行结果的默克尔树根(Merkle Root)。

这里的默克尔树根实际上就是一个代表了当前的数据内容的哈希值。树图区块链Conflux 的每个区块头包含 3 个这样哈希值: 交易哈希根 (Transaction Root):对应于区块内所有交易内容。 状态哈希根 (State Root):对应于交易执行后的“世界状态”,包括每个账户地址的余额和所有智能合约的状态。(由于采用了延迟执行的策略,在 树图区块链Conflux 里区块头里的状态根对应的是执行了之前区块里的交易后的状态,该区块内的交易将延迟到更晚的区块才会执行。) 交易收据哈希根 (Receipt Root):对应于合约执行过程中产生的收据。包括执行是否成功,执行过程中是否触发了转账等。如果某个用户想要获得较早的交易数据和执行结果,则他可以从“档案节点”那里查询,并通过比对区块头中的哈希值来判断档案节点提供的数据是否正确。(这里每一个哈希值本质上都是一个 Merkle Tree 的 Root Hash,所以档案节点只需提供被查询数据的默克尔证明 Merkle Proof 就可以了,而不用传输整个区块。)由于哈希函数可以抗碰撞的特点,档案节点无法为一笔不存在的交易伪造一个能通过检测的证明。

对于档案节点来说,唯一的攻击方式是拒绝提供交易数据,由此带来的后果至多也只是影响到历史交易的可查询性。即使没有任何一个诚实的节点保存较早的历史交易,那些交易也只会被遗忘而不会被篡改,交易的不可篡改性依然可以得到保证。

由于档案节点的“作恶”方式非常有限,所以档案节点本身对去中心化要求也没那么高,完全可以由 树图区块链Conflux 基金会和社区共同维护若干个档案节点。实际上,因为运行档案节点并不需要任何审核或许可,所以大用户也可以根据业务需要自己运行或委托他人运行档案节点,以此确保查询历史交易数据的性能和可靠性。对于在 树图区块链Conflux 上运行的 DApp 来说,如果其本身需要保存和随时访问的数据量不是很大 —— 比如说每年新增 1MB 数据,则这些业务数据完全可以存储在智能合约的内部状态里。存储于合约内部状态的数据会作为世界状态的一部分被每一个全节点保存和同步,无需自己运行档案节点也可以保证最高程度的可用性。

技术的革新往往会带来经济、社会发展格局的改变。从某种意义上说,在区块链等新兴领域,不同的城市、地区、国家其实是处于同一个起跑线的,这当中起关键作用的是有没有革新的勇气和前沿的思维,而作为支撑起将来国内技术发展的区块链技术,显然需要更多像树图区块链Conflux 这样优秀的团队。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11326

    浏览量

    225874
  • 区块链
    +关注

    关注

    112

    文章

    15578

    浏览量

    111186
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于 LES33-HUB-3-RS485 的冷仓库多传感器智能组网解决方案

    ,为仓储环境管控提供错误数据依据。 1.3 拓扑结构单一,无法适配冷库多区域组网需求 冷仓库各冷库分区相对独立,传统 RS485 总线仅支持手拉手链式拓扑,无法实现星型、型的多分支组网,跨分区传感
    发表于 03-17 16:01

    TPS23755数据手册

    电子发烧友网站提供《TPS23755数据手册.pdf》资料免费下载
    发表于 02-25 16:06 0次下载

    ADAS 数据安全 晶存储筑牢防线

    256GB eMMC以工业级可靠性与高耐用性,为ADAS系统提供大容量数据存储解决方案,保障行车数据完整与系统稳定运行,满足智能驾驶严苛需求。
    的头像 发表于 02-25 09:55 1977次阅读
    ADAS <b class='flag-5'>数据</b>安全 晶<b class='flag-5'>存</b>存储筑牢防线

    PB332在PB331基础上增加了抢占避让和按优先级队列上 传功能,并可以完全并网PB331系统进行透传通讯

    技术。通过在供电电缆上调制控制信号,替代了传统分离的控制电缆和供电电缆并大幅度提高通讯稳定性。POWERBUS-C采用电压发送,电流信号回传的方式,提供了高通讯抗干扰能力。PB332能适应现场
    发表于 01-30 13:03

    森利威尔SL3075 无缝替换 TPS54360:65V 宽压 + 5A 输出,工业 / 车载电源优选方案

    54360 的 4.5V-60V 输入上限更具优势,可耐受工业场景中更大幅度的电压波动(如电网冲击、车载电源瞬变),无需额外稳压预处理,适配性更广。 输出能力 + 集成度双提升:连续输出电流达 5A,峰值电流限制 7.5A
    发表于 12-05 16:57

    基于级联分类器的人脸检测基本原理

    基于级联分类器的人脸检测。这两种扩展运算结合在一起,就可以大幅度提高检测器的鲁棒性。 上图是决策示意图。
    发表于 10-30 06:14

    Verilog实现使用Booth编码和Wallace的定点补码乘法器原理

    ,仅需要将前面的累加的部分积向右移动一位。 Booth编码采用相加和相减的操作计算补码数据的乘积,可以减少部分积的数目,用来计算有符号乘法,提高乘法运算的速度。 Booth算法一次看乘数的两个位依照目前
    发表于 10-23 08:01

    TPS2377 具有传统 UVLO 阈值和锁保护的 3 类 PoE PD数据手册

    这些易于使用的 8 引脚集成电路包含开发符合 IEEE 802.3af 标准的受电设备 (PD) 所需的所有功能。TPS2375 系列是第二代 PDC(PD 控制器),具有 100V 额定值和真正
    的头像 发表于 08-06 15:27 1125次阅读
    <b class='flag-5'>TPS</b>2377 具有传统 UVLO 阈值和锁<b class='flag-5'>存</b>保护的 3 类 PoE PD<b class='flag-5'>数据</b>手册

    TPS2375 3 类 PoE PD,带锁保护数据手册

    这些易于使用的 8 引脚集成电路包含开发符合 IEEE 802.3af 标准的受电设备 (PD) 所需的所有功能。TPS2375 系列是第二代 PDC(PD 控制器),具有 100V 额定值和真正
    的头像 发表于 08-06 15:16 1159次阅读
    <b class='flag-5'>TPS</b>2375 3 类 PoE PD,带锁<b class='flag-5'>存</b>保护<b class='flag-5'>数据</b>手册

    K230 RTOS Only SDK使用c语言开发,如何将摄像头转为jpeg?

    问题1:参考src/rtsmart/mpp/userapps/sample目录下的案例,实现了摄像头,但是格式没有jpeg,网上搜到的是针对python的。当前自己做的测试程序
    发表于 07-31 06:34

    反激/全桥逆变GS尖峰如何解决?请各位前辈多多指教吧

    为外接学生电源进行供电,全桥逆变上功率时,辅助电源电压下降、电流上升,功率飙升而且电压电流一直在大幅度波动;拿热成像看了,除电感外没什么地方发热。所以怀疑是GS尖峰导致。
    发表于 07-12 15:38

    cs1237 读取数值老是跳

    使用过程中,读取的数值大幅度波动频繁,低速率传输没问题,只要高于40就会上下跳,这是怎么回事?
    发表于 07-09 13:42

    tps5430输出电压偏高知道什么原因吗?

    5.66v,原理如下: 同时附上TPS5430官方建议原理: 经测试,输入12v调整为10v或9v,输出电压变为5.01v,正常,各位大佬知道什么原因吗?
    发表于 05-23 16:11

    PS2-41/NF 系列与PS2-41-200/NF系列功率分配器/合路器

    的温度稳定性,能够满足严苛环境下的信号处理需求。PS2-41/NF系列频率范围:0.19-0.4GHz最大插入损耗:0.4dB最小隔离度:20dB最大驻波比:1.20:1(输入/输出)最大幅度平衡度
    发表于 05-16 09:45

    MUN3C1HR6-SB电源模块替代TPS82671,TPS82673,TPS62209,LTM8061,ADP1607

    的MUN3C1HR6-SB 电源模块凭借与ADI和TI热门型号(TPS82671,TPS82673,TPS62209,LTM8061,ADP1607)的技术参数、出色的供应稳定性以及
    发表于 04-25 10:25