`

eos快照

    博客分类:
  • EOS
 
阅读更多
快照:为区块链提供临时快速备份的功能



snapshot_row_write:
1.继承自abstract_snapshow_row_writer,在构造实例时,要传入data数据,缓存在函数体
2.write向两种数据类型的输出流中写入时,对象就是data,写入方法都是fc::raw::pack(out,data),最终将内存中的data数据写入输出流

snapshow_write:进一步封装了写入功能,对外提供write_row写入接口及其他辅助功能接口

variant_snapshot_write和ostream_snapshot_writer都是snapshot_write的子类,根据不同的数据类型实现不同的处理逻辑

abstract_snapshot_row_reader:是所有关于快照读取结构的基类
1.provide():参数是std::istream的实例,说明是对标准库输入流的读取
2.provide,重载参数是fc::variant的引用,对变体的读取
3.row_type_name:行类型名,字符串类型

snapshot_row_reader:
1.继承自abstract_snapshow_row_reader,在构造实例时,要传入data数据,缓存在函数体
2.对应不同输入流的处理不同,最终会将不同输入流的数据读取到内存的data实例中

snapshot_reader:进一步封装了读取功能

variant_snapshot_reader,ostream_snapshot_reader和integrity_hash_snnapshot_writer(处理的是Hash算法sha256的加密串)都是snapshot_reader的子类,根据不同的数据类型实现不同的逻辑处理

同步快照数据的操作是在controller的startup周期中执行的,根据传入的snapshot,调整区块链基于block_log的不可逆日志数据,以及基于chainbase的状态主库数据.在controller的startup完毕后,可以保证三者数据的健康同步

在chain_pluginn的插件配置项中有一个"snapshot"参数,可以指定读取的快照文件
注意:
1.不能同时配置"genesis-json"和"genesis-timestamp"两项,因为快照中已经存在这两项的值,否则会发生冲突
2.不能存在已有状态文件data/state/shared_memory.bin,因为快照只能被用于初始化一个空的状态数据库
3.校验block_log日志中不可逆区块的创世块是否与快照中保持一致

producer::create_snapshot()
controller::write_snapshot函数在外部由producer_plugin所调用.
producer_plugin:通过RPC API接口create_snapshot对外提供创建快照的功能,可以为生产者提供快速数据备份的能力,提高整个EOS区块链运维工作的健壮性

结论:
1.区块生产者可以根据需要调用producer_plugin的RPC API接口create_snapshot为当前链创建快照
2.EOS的快照是对状态数据库的备份,而不是对block_log日志文件的备份.不可逆区块在全网有很多节点作为备份,不必本地备份,而状态数据库很可能是本地唯一的,与其他节点都不同,如果有损坏则会造成很多未上到不可逆区块日志的事务丢失
3.当需要使用快照恢复时,可以重新启动链,同时设置chain_plugin的参数"snapshot",传入快照文件路径,通过快照恢复状态数据库
  • 大小: 86.6 KB
分享到:
评论

相关推荐

    EOS.rar_EOS_普元_普元EOS_普元EOS教程

    **EOS - 普元企业服务总线** EOS(Enterprise Service Bus),由普元公司研发,是一款高效、灵活的企业服务总线系统。它在SOA(Service-Oriented Architecture,面向服务架构)环境中扮演着核心角色,为企业提供了...

    EOS.rar_EOS业务_以太网 SDH EOS

    **EOS(Ethernet Over SDH)业务** EOS,即以太网在SDH(Synchronous Digital Hierarchy,同步数字体系)上的承载,是一种将以太网数据流映射到SDH通道的技术,它允许以太网业务在SDH网络中高效、透明地传输。这种...

    CANON Digital EOS SDK v2.13.2

    (This document is common for All Cameras, EOS 5D Mark III, EOS 5D Mark II, EOS 6D, EOS 7D, EOS 60D, EOS 50D, EOS 40D, EOS-1Ds Mark III, EOS-1D Mark III, EOS-1D Mark IV, EOS M, EOS 1100D, EOS 1000D, ...

    EOS OSLab操作系统

    EOS 是一个可以在 Intel X86 平台上运行的、面向教学的开源操作系统。为了让 EOS 适合于教学,EOS 被设计的十分小巧,并且尽量保持架构简单。但是,EOS 仍然涵盖了系统引导、进程管理、内存管理、IO 管理、文件系统...

    普元EOS7.5基础教程(官网版)

    **普元EOS7.5基础教程(官网版)** 普元EOS是一款国内知名的中间件平台,专注于企业级服务总线(Enterprise Service Bus, ESB)和应用服务器领域。EOS7.5版本是其一个重要的迭代,提供了更强大的功能和优化的性能。本...

    EOS5.0 EOSV5.0 上海 普元 EOS5.0应用指南

    根据提供的文件信息,本文将详细解析《EOS5.0 EOSV5.0 上海 普元 EOS5.0应用指南》中所涉及的关键知识点,主要包括PetStore示例的使用说明与tag应用示例的使用说明。 ### PetStore示例使用说明 #### 1.1 查看源...

    EOS工作流(EOS Workflow)

    ### EOS工作流(EOS Workflow) #### 工作流管理联盟定义的标准工作流基础概念 工作流是一种业务过程的计算机化表示或实现,它涉及到一系列结构化的活动或任务,按照预定的顺序来执行或自动化。工作流管理联盟...

    EOS6.0培训资料

    【EOS6.0培训资料】是一份全面深入的IT学习资源,主要针对EOS6.0这一版本进行详尽的讲解。这份资料集包含了对EOS6工作流新特性的解析、开发方法体系的介绍以及专为程序员设计的教程,旨在帮助初学者快速入门并提升...

    EOS NUIDemo源码_nui-demo4eos-src.zip

    【EOS NUIDemo源码_nui-demo4eos-src.zip】是一个包含EOS平台下NUIDemo应用的源代码压缩包。这个项目主要展示了如何在EOS操作系统上开发用户界面(UI)应用,利用NUI(Natural User Interface)技术为用户提供更加...

    Canon EOS SDK3.6.1 最新版

    EOS Kiss X3 / EOS REBEL T1i / EOS 500D EOS 7D EOS-1D Mark IV EOS Kiss X4 / EOS REBEL T2i / EOS 550D EOS 60D EOS Kiss X5 / EOS REBEL T3i / EOS 600D EOS Kiss X50 / EOS REBEL T3 / EOS 1100D EOS-1D...

    09 EOS Report管理员手册.chm

    00 EOS文档使用指南.chm :00 EOS文档使用指南.chm EOS全部资料合集(包括例子) 01 EOS系统概述.chm :01 EOS系统概述.chm 02 EOS示例与教程.chm :02 EOS示例与教程.chm 03 EOS基础开发指南.chm :03 EOS基础开发...

    普元EOS开发帮助手册

    普元EOS开发帮助手册,普元EOS开发帮助手册,普元EOS开发帮助手册,普元EOS开发帮助手册

    佳能单反SDK最新版 Canon_EOS_ED-SDK_v3.6.10

    EOS 5DS / EOS 5DS R / EOS REBEL T6s / EOS 760D / EOS 8000D / EOS REBEL T6i / EOS 750D / EOS Kiss X8i / EOS M3 EOS-1D X Mark II / EOS 80D / EOS Rebel T6 / EOS 1300D / EOS Kiss X80 / EOS M10 EOS 5D ...

    EOS6 EOS管理员手册 ,介绍EOS6的相关文档,欢迎下载!

    **EOS6 EOS管理员手册** EOS6 是一个先进的区块链操作系统,主要设计用于支持分布式应用程序的运行。作为一款基于DPOS(委托权益证明)共识机制的平台,EOS6 提供了高效、可扩展和灵活的基础设施,使得开发者能够...

    EOS 实现完整代码 eos-master.zip

    EOS是第三代区块链技术的代表,它的设计目标是提供一个高性能、可扩展且易于使用的平台,用于构建去中心化的应用程序(DApps)。EOS的核心特点包括其独特的共识机制、资源管理方式以及智能合约系统。 首先,EOS的...

    一组 nodejs工具,用于拍摄当前快照并在 EOS 网络上部署令牌_JavaScript_代码_下载

    这组 Node.js 工具是专门针对 EOS 区块链网络设计的,旨在帮助开发者轻松地拍摄当前的账户状态快照,并在 EOS 网络上部署令牌。这些工具对于进行空投(Airdrop)操作,即向大量用户分发加密货币令牌,尤其有用。在 ...

    EOS产品安装指南

    《EOS产品安装指南》 Primeton EOS Platform 6.0 是一款专为EOS应用开发者设计的集成开发环境,它提供了一站式的应用开发、运行和管理解决方案。本指南将详细介绍如何安装EOS的不同版本,以及各个组件的功能和配置...

    普元EOS操作文档.pdf

    普元EOS操作文档.pdf 普元EOS操作文档.pdf是 Primeton EOS 开发环境的详细使用手册,该文档涵盖了 EOS 开发环境的配置、开发、调试等各个方面的知识点。 EOS初级程序员教程 Primeton EOS 是一个功能强大且灵活的...

    学习EOS的资料--EOS故障处理指南

    在IT行业中,EOS(Enterprise Operating System)通常指的是用于构建分布式应用的开源区块链操作系统,由Block.one公司开发。本故障处理指南是针对EOS开发过程中的常见问题和故障,提供了一系列的解决策略和步骤,...

Global site tag (gtag.js) - Google Analytics