- 浏览: 761488 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
快照:为区块链提供临时快速备份的功能
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",传入快照文件路径,通过快照恢复状态数据库
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",传入快照文件路径,通过快照恢复状态数据库
发表评论
-
eos待确认/分叉库
2019-10-05 08:32 245fork_database:管理了轻量级状态数据,是由未确认的 ... -
eos controller概述
2019-10-03 17:28 286EOS中的模型层是blocks.log和基于chainbase ... -
eos multi_index
2019-10-03 09:01 276EOS的数据库就是chainbase,而调用数据库服务的C++ ... -
eos chainbase状态库
2019-10-01 08:03 420chainbase:是一个快速包含 ... -
eos action
2019-09-28 17:18 179action:在EOS中,action被分配到对应程序(一般是 ... -
eos事务结构
2019-09-28 16:34 387transaction_header:事务头的数据大小是固定的 ... -
eos区块头结构
2019-09-28 08:54 275block_header:区块头 struct block ... -
eos rpc set
2019-09-26 19:27 278set contract:设置合约 xjdeMacBook- ... -
eos rpc create
2019-09-26 19:18 2521.创建公私钥对 xjdeMacBook-Pro:safeco ... -
EOS blocks.log
2019-09-26 07:40 364区块数据通过blocks.log与blocks.index持久 ... -
引用区块
2019-09-25 07:26 305trx.set_reference_block(ref_blo ... -
EOS事务
2019-09-24 07:36 340调用函数add_standard_transaction_op ... -
全节点搭建
2019-09-22 09:34 2591.通过system regproducer命令可将普通账户注 ... -
eos名词解释
2019-09-14 09:34 6451.Authority:权力,要与Permission做好区分 ... -
智能合约依赖库
2019-08-29 07:32 362Action:这部分定义了查询或发送action的API.在E ... -
eos_rpc_system资源获取
2019-08-21 07:39 364资源主要有CPU,net bandwidt ... -
eos_rpc_sign
2019-08-21 07:22 238sign [OPTIONS] transaction:完成EO ... -
eos_rpc_wallet
2019-08-20 07:31 3121.wallet create [OPTIONS]:创建一个新 ... -
eos_rpc_get
2019-08-18 08:38 2851.get info:通过指定全节点API接口获取其连接的EO ... -
nodeos,cleos,keosd
2019-08-16 07:17 299nodeos:是运行在服务端的 ...
相关推荐
**EOS - 普元企业服务总线** EOS(Enterprise Service Bus),由普元公司研发,是一款高效、灵活的企业服务总线系统。它在SOA(Service-Oriented Architecture,面向服务架构)环境中扮演着核心角色,为企业提供了...
**EOS(Ethernet Over SDH)业务** EOS,即以太网在SDH(Synchronous Digital Hierarchy,同步数字体系)上的承载,是一种将以太网数据流映射到SDH通道的技术,它允许以太网业务在SDH网络中高效、透明地传输。这种...
(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 是一个可以在 Intel X86 平台上运行的、面向教学的开源操作系统。为了让 EOS 适合于教学,EOS 被设计的十分小巧,并且尽量保持架构简单。但是,EOS 仍然涵盖了系统引导、进程管理、内存管理、IO 管理、文件系统...
**普元EOS7.5基础教程(官网版)** 普元EOS是一款国内知名的中间件平台,专注于企业级服务总线(Enterprise Service Bus, ESB)和应用服务器领域。EOS7.5版本是其一个重要的迭代,提供了更强大的功能和优化的性能。本...
根据提供的文件信息,本文将详细解析《EOS5.0 EOSV5.0 上海 普元 EOS5.0应用指南》中所涉及的关键知识点,主要包括PetStore示例的使用说明与tag应用示例的使用说明。 ### PetStore示例使用说明 #### 1.1 查看源...
### EOS工作流(EOS Workflow) #### 工作流管理联盟定义的标准工作流基础概念 工作流是一种业务过程的计算机化表示或实现,它涉及到一系列结构化的活动或任务,按照预定的顺序来执行或自动化。工作流管理联盟...
【EOS6.0培训资料】是一份全面深入的IT学习资源,主要针对EOS6.0这一版本进行详尽的讲解。这份资料集包含了对EOS6工作流新特性的解析、开发方法体系的介绍以及专为程序员设计的教程,旨在帮助初学者快速入门并提升...
【EOS NUIDemo源码_nui-demo4eos-src.zip】是一个包含EOS平台下NUIDemo应用的源代码压缩包。这个项目主要展示了如何在EOS操作系统上开发用户界面(UI)应用,利用NUI(Natural User Interface)技术为用户提供更加...
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...
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 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 是一个先进的区块链操作系统,主要设计用于支持分布式应用程序的运行。作为一款基于DPOS(委托权益证明)共识机制的平台,EOS6 提供了高效、可扩展和灵活的基础设施,使得开发者能够...
EOS是第三代区块链技术的代表,它的设计目标是提供一个高性能、可扩展且易于使用的平台,用于构建去中心化的应用程序(DApps)。EOS的核心特点包括其独特的共识机制、资源管理方式以及智能合约系统。 首先,EOS的...
这组 Node.js 工具是专门针对 EOS 区块链网络设计的,旨在帮助开发者轻松地拍摄当前的账户状态快照,并在 EOS 网络上部署令牌。这些工具对于进行空投(Airdrop)操作,即向大量用户分发加密货币令牌,尤其有用。在 ...
《EOS产品安装指南》 Primeton EOS Platform 6.0 是一款专为EOS应用开发者设计的集成开发环境,它提供了一站式的应用开发、运行和管理解决方案。本指南将详细介绍如何安装EOS的不同版本,以及各个组件的功能和配置...
在IT行业中,EOS(Enterprise Operating System)通常指的是用于构建分布式应用的开源区块链操作系统,由Block.one公司开发。本故障处理指南是针对EOS开发过程中的常见问题和故障,提供了一系列的解决策略和步骤,...
EOS同步主网一直是很麻烦的问题,可以使用这样一个快照文件,在同步时删掉blocks和state,然后执行nodeos --snapshot XXX,就可以在十分钟内追赶上最新的区块,非常方便快捷,优点是做dapp的开发者可以利用docker...