首页 > 其他分享 >MPT树是如何回滚的

MPT树是如何回滚的

时间:2024-07-30 16:55:28浏览次数:10  
标签:状态 回滚 hash mpt 更新 MPT key node3 树是

1,mpt树优于hash表,在区块连网络中,需要确认世界状态相同 ,hash表需要校验所有的hash

2.使用序列表会导致插入过程麻烦,插入一条数据,整个链路都要更新

MPT树是如何恢复的?(世界状态中的mpt树)

mpt树的恢复与mpt树的更新是有关系的,在以太坊的生命周期中,世界状态的mpt树是根据更新的方式来改变状态的,具体而言,无论是对树做增删改,最后在数据库中都是插入一个新的key,然后根据这个新的key去更新路径上所有的key(更新的过程也是新建key然后插入进去,老key不会丢失)

根据节点的key-v我们可以知道,树的构建是由下而上的,因为父节点在存储是依赖前一节点的hash,当然分支节点中是在各个分支中写入hash,所以分支节点中包含大量的hash。那么当整个实际状态更新时:

例如node3发生了改变,并不会改变node3此刻对应的key-v ,而是会新建一个node,然后更新node2,node1,使得整个世界状态指向新产生的node3.

那么这样操作之后,当我们需要回滚时,我们只需要知道在需要回滚的位置的根状态hash,那么整个世界状态就可以根据这个过去的roothash,找回历史装状态,对于上面的例子而言,老的roothash最后会引导你找到老的node3 你将拿到node3被修改之前的状态。

这也是为什么 世界状态可以根据roothash恢复。

合约中删除数据可以减轻合约MPT树的负担吗?

那么回味一下,世界状态能根据roothash恢复的关键是每一次世界状态的更新,以太坊都会把新状态落盘到数据库里面去,那么对于合约的mpt树,实际上是不影响的,也就是如果我们把合约中的数据进行删除的确会减少mpt树的负担,因为删除的过程实际上会减少mpt树的树枝,并且改变了mpt树的结构。

可以参考一下这里对mpt树的删除操作:https://learnblockchain.cn/article/319

树的结构确实会变简化。

标签:状态,回滚,hash,mpt,更新,MPT,key,node3,树是
From: https://www.cnblogs.com/blogforeverything/p/18332872

相关文章

  • 记一次ElasticSearch重启之后shard未分配问题的解决 allocation_status": "no_attemp
    记一次ElasticSearch重启之后shard未分配问题的解决环境ElasticSearch6.3.2,三节点集群Ubuntu16.04一个名为user的索引,索引配置为:3primaryshard,每个primaryshard2个replica正常情况下,各个分片的分布如下:可见,user索引的三个分片平均分布在各台机器上,可以完全容忍一台机......
  • AI大模型Prompt提示词工程使用详解
    AI大模型Prompt提示词工程使用详解在人工智能(AI)的浩瀚宇宙中,大型预训练模型(LargeLanguageModels,LLMs)如GPT系列、BERT等,以其卓越的自然语言处理(NLP)能力,正逐步改变着人类与机器交互的方式。这些模型不仅能够理解和生成人类语言,还能在多种任务上展现出惊人的创造力和适应......
  • Centos中修改Docker镜像源:解决error pulling image configuration:download failed a
    场景在进行拉取镜像时提示:errorpullingimageconfiguration:downloadfailedafterattempts=6:dialing... 这是因为镜像源无法连接和使用了。但是之前已经配置过国内docker的镜像源了。是因为自2024年6月份左右国内镜像源大部分失效,原因自行探索。所以记录下如何修......
  • Prompt Engneering
    Prompt-EngineerningPrompt-Engineerning(提示词工程)目录Prompt-Engineerning零、文档中参数说明1、OpenAIAPI接口参数一、什么是提示词工程1、学习AI在提示词工程上有哪些优势2、Prompt调优二、Prompt典型构成1、定义角色为什有效?案例:推荐流量包的智能客服1.对话系统的基本思路......
  • 论文阅读:TKDP: Threefold Knowledge-Enriched Deep Prompt Tuning for Few-Shot Named
    将深度提示调优框架与三重知识(即TKDP)相结合,包括内部上下文知识和外部标签知识和语义知识。引言现有的少样本NER可分为3种:基于词-语义的方法、基于标签-语义的方法和基于提示的方法。基于词语义的方法完全依赖于输入词及其上下文。基于标签语义的方法需要额外利用标签知识。......
  • 界面控件Telerik UI for WPF 2024 Q2亮点 - 全新的AIPrompt组件
    TelerikUIforWPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UIforWPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成VisualStudio工具箱中。本文将介绍界面组件TelerikUIforWPF在今......
  • Prompt设计策略
    前文:由于最近尝试使用prompt来进行大模型推理的时候,发现不同的prompt产生的效果不同,于是调研了几个不同的prompt的写法。先说下我的任务:根据图片生成一个Caption(关于图片的描述)。尝试了几种prompt方法:CRISPE框架、Zero-shot、Few_shot、COT、COT+SC、TOT、Step-Back。CRISPE框架......
  • 又发现了一个很良心的 prompt 提示词库,简洁,有效,值得学习
    又发现了一个很良心的prompt提示词库,简洁,有效,值得学习。这次的也是一个NB的存在,是Claude提供的提示词库你最近用过claude了吗?claude3.5体验了吗?没有的话,一起带着这些提示词体验下,会惊呆你的。我看完后发现,写的都很简洁啊,不像之前kimi提供的那种模板结构化的......
  • Prompt Hub
    Prompthttps://prompt-guide.ncuos.com/prompts.zhPromptHub是提示的集合,可用于测试prompt在各种基本能力和复杂任务上的能力。我们希望PromptHub帮助您发现利用、实验和构建提示词的有趣方法。我们鼓励并欢迎人工智能研究和开发者社区的贡献。https://www.promptingg......
  • Best practices for prompt engineering with the OpenAI API
    BestpracticesforpromptengineeringwiththeOpenAIAPIhttps://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api HowpromptengineeringworksDuetothewayOpenAImodelsaretrained,therearespecificpr......