ETH  全节点Archive(归档)模式数据量增长图

上述图表可通过链接查看:https://etherscan.io/chartsync/chainarchive

通过上表,可以看到截止2019年8月12日,以太坊的全部区块数据已经高达2.8T,如果按照比特币的方式搭建全节点,会是一个很痛苦的事,毕竟云硬盘也不是那么便宜的。

做数字钱包或交易所的开发人员里,有聪明人可能会意识到一个问题,在处理用户账户充值时,我们所关注的数据仅仅是从当前开始到未来这段时间的区块数据,那么巨大体积的历史区块数据没什么用处。

有问题,自然会有更聪明的人解决问题,鉴于ETH庞大的区块数据,并且不断在增长,ETH提供了三种同步模式:

  • –syncmode  "fast"         Enable fast syncing through state downloads
  • –syncmode  "light"        Enable light client mode
  • –syncmode  "full"

在Geth1.6以前,fast与full模式的命令参数为  --fast与--full。Geth 1.6版本及以后,两种命令参数都可使用。

使用方法,启动命令如下:

./geth --datadir  "D:\Program Files\Geth\data"  --syncmode  "fast"  --rpc  --rpcapi  "db,eth,net,web3,miner"

上面的命令指定了区块数据与秘钥文件的存储目录:D:\Program Files\Geth\data

也指定了同步模式是: --syncmode  "fast"

同时开启了RPC方式模式: --rpc  --rpcapi  "db,eth,net,web3,miner"

本文中,我们需要关注就是: -- syncmode,下面对三种同步模式做一个介绍:

Full同步步骤:

获取区块的header

获取区块的body

从创始块开始校验每一个元素

PS:下载所有区块数据信息,所以此种方式的数据量会十分庞大

Fast同步:

获取区块的header

获取区块的body

在同步到当前块之前不处理任何事务,然后获得一个快照,像full节点一样进行后面的同步操作。沿着区块下载最近数据库中的交易,有可能丢失历史数据。比如,你的账户地址A上面有10个ETH,但转入的的交易存在于较老的历史交易中,此同步模式无法获取到交易的详细情况。

使用此模式时注意需要设置–cache,默认16M,建议设置为1G(1024)到2G(2048)。

Ligth同步:

仅获取当前状态。验证元素需要向full节点发起相应的请求。

此外,启动ETH节点时还可以增加--gcmode=archive,这个模式称为归档Archive模式,即归档节点,这种模式保存了最最最全的Ethereum节点数据,占用硬盘空间也会更大。其数据量比单纯的full模式数量还要大。这个参数很多人不知道,大部分也没法用这个启动模式,因为需要的存储空间实在太大。启动命令一般如下:

./geth --datadir  "D:\Program Files\Geth\data"  --syncmode  "fast"    --gcmode=archive  --rpc  --rpcapi  "db,eth,net,web3,miner"

那么,作为交易所与钱包服务商,如何选择合适的模式呢?如果对安全性要求极高,并且有充足的硬盘资源,自然是选择Full模式。而对于一般情况下,可使用Fast模式,因为Full模式同步区块数据需要很长时间。截止到本文发文时间2019-08-12,Fast模式需要同步数据大小为132GB,相较于Full模式的2.8TB而言,小了很多。Light模式对于轻量级的移动钱包比较适用。

附,当前Fast模式数据量大小变化:

数据查看链接:https://etherscan.io/chart2/chaindatasizefast

BIZZAN(币严) 数字货币交易所官方网址:

www.bizzan.com

[币严区块链]ETH搭建节点区块数据同步的三种模式:full、fast、light的更多相关文章

  1. 逐步搭建Lamp环境之vim的三种模式以及基本命令

    在Linux中vim的三种模式分别为:命令模式.末行模式.编辑模式.以下是三者的关系图: 三种模式的彼此切换: 命令模式是vim中的默认模式. 命令模式切换至末行模式: 使用英文冒号(:). 末行模式 ...

  2. 区块链、云计算、大数据、人工智能、FinTech带来的挑战与机遇,中国技术开放日上海站精彩回顾

    区块链.云计算.大数据.人工智能.FinTech带来的挑战与机遇,中国技术开放日上海站精彩回顾 | 作者 韩婷 发布于 2016年12月26日. 估计阅读时间: 不到一分钟 | 欲知区块链.VR.Te ...

  3. 未来-区块链-IBM:IBM 区块链技术开发社区

    ylbtech-未来-区块链-IBM:IBM 区块链技术开发社区 1.返回顶部 1. 开始学习 IBM Blockchain 101:开发人员快速入门指南 这篇快速入门指南适合不熟悉区块链技术,希望快 ...

  4. 用VMWare搭建服务器集群不能上外网的三种模式下对应解决办法

    前言 决心要花费宝贵时间写下这篇心得,是因为从昨天晚上到今天上午被这个VMWare模拟搭建的服务器集群不能上外网的问题搞得很心烦,最后决定跟它杠上了!上午还通过远程连接得到了“空白”同学的帮助,在此表 ...

  5. java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)

    1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...

  6. [币严区块链]USDT钱包节点搭建

    USDT是基于BTC发的稳定币,它是比特币的一条侧链,说简单点,就是在比特币区块数据的不可篡改性与区块唯一性的基础上,再封装了一层.具体原理可网上查资料.总之理解一点:USDT的钱包节点就是BTC的钱 ...

  7. cpp 区块链模拟示例(四) 区块链工作量证明

    本文主要在之前的区块链原形上添加了工作量证明,并且为后继的交易功能做好准备. 上一个章节我们已经创建了区块链的基本原形,但是区块的哈希计算和加入太过于简单,如果按照这种速度添加区块那么区块链估计一个小 ...

  8. 区块链+AI将给区块链带来怎样的改变?

    区块链和人工智能技术都是互联网时代最新.最热的技术,不仅可以改变我们生活,还能产生巨大的财富,为此国家大力支持发展,科技巨头们也纷纷布局.那区块链与人工智能结合,对区块链技术而言会产生什么样的化学反应 ...

  9. 深度探索区块链/基于Gossip的P2P数据分发(4)

    一.概述 背书节点模拟执行签名的结果会经过排序服务(Ording service)广播给所有的节点. 它提供的是一种原子广播服务(Atomic Broadcast),即在逻辑上所有节点接收到的消息顺序 ...

随机推荐

  1. 每天用SpringBoot,还不懂RESTful API返回统一数据格式是怎么实现的?

    上一篇文章RESTful API 返回统一JSON数据格式 说明了 RESTful API 统一返回数据格式问题,这是请求一切正常的情形,这篇文章将说明如何统一处理异常,以及其背后的实现原理,老套路, ...

  2. 减谈迷宫C++

    今天老师让做了个迷宫问题,我一看到就发现和我之前写过的一个程序是一样 的,但是在后来编写的时候有一个地方搞错了,最后下课了我还是没有正确的编写好,然后今天回来之后自己有看了一下,现在已经解决了. #i ...

  3. 我的C语言学习1

    学习是快乐的,尤其是从之前看到一个程序的一头雾水到大致懂了是怎么回事,这个过程是兴奋开心的,让我不断的前进,不能自拔,今天就要结束,总结一下. 1.1-第一个C语言 #include<stdio ...

  4. eclipse项目导入idea jdk版本不一致😵

    在导入eclipse项目到idea过程中遇到 Imported project refers to unkonwn jdks JavaSE-1.8 解决方法: file --> Project ...

  5. 解决!!-- krb5-libs.x86_64被卸载,yum不能使用,ssh不能连接

    常在河边走哪有不湿鞋,常玩服务器哪有不搞挂几台,一不小心就搞挂了 今天删除 krb5-libs.x86_64下了狠功夫..... 用了命令: rpm -e --nodeps  krb5-libs.x8 ...

  6. 三角函数与JavaScript

     1. 三角函数 sin&(求对边与斜边的比值) cos&(邻边与斜边的比值) tan&(对边与邻边的比值) 2.JavaScript的函数的使用 Math.sin() Mat ...

  7. python3 how to creat alphabet

    Python: How To Generate a List Of Letters In The Alphabet  Method 1# First we need to figure out the ...

  8. tracert和traceroute介绍

    一.tracert和traceroute简介 相同点:都是用来跟踪路由,帮助排查问题,关注的是过程,而ping关注的是结果 不同点:tracert请求是icmp echo报文 traceroute请求 ...

  9. 结合suctf-upload labs-RougeMysql再学习

    这篇主要记录一下这道题目的预期解法 做这道题首先要在自己的vps搭建一个rouge mysql,里面要填写需要读取客户端的文件名,即我们上传的phar文件路径 先搭一个rouge mysql测试看看: ...

  10. js 设计模式&&query

    1. 语法: try{           //需要执行的代码      }catch(e){           //错误处理 e程序遇到错误时的报错信息      } 2.惰性函数: 函数在第一次 ...