Zhuang's Diary

言之有物,持之以恒

go-ethereum 在 2019 年 7 月推出了 v1.9.x 版本。1.9.x 在数据方面做了重新整理,大概有以下两个非兼容的改动:

  1. 历史的区块链数据(header,body, receipts等)被挪到一个flaten file存储中,因为这部分数据已经是不会更改的了

  2. 更改了部分数据结构的scheme,例如receipt。原先很多字段不需要存到db,是可以在read之后重新计算出来的。这部分会占据大量的存储空间,在1.9把这些字段删去了。

geth 有一个 inspect 命令,统计数据库详细信息。help中的内容是 inspect,Inspect the storage size for each type of data in the database

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
+-----------------+--------------------+------------+
| DATABASE | CATEGORY | SIZE |
+-----------------+--------------------+------------+
| Key-Value store | Headers | 211.40 KiB |
| Key-Value store | Bodies | 44.00 B |
| Key-Value store | Receipts | 42.00 B |
| Key-Value store | Difficulties | 19.07 KiB |
| Key-Value store | Block number->hash | 17.24 KiB |
| Key-Value store | Block hash->number | 845.67 KiB |
| Key-Value store | Transaction index | 0.00 B |
| Key-Value store | Bloombit index | 0.00 B |
| Key-Value store | Trie nodes | 4.79 MiB |
| Key-Value store | Trie preimages | 547.13 KiB |
| Key-Value store | Clique snapshots | 0.00 B |
| Key-Value store | Singleton metadata | 149.00 B |
| Ancient store | Headers | 5.97 MiB |
| Ancient store | Bodies | 851.64 KiB |
| Ancient store | Receipts | 182.32 KiB |
| Ancient store | Difficulties | 279.10 KiB |
| Ancient store | Block number->hash | 769.77 KiB |
| Light client | CHT trie nodes | 0.00 B |
| Light client | Bloom trie nodes | 0.00 B |
+-----------------+--------------------+------------+
| TOTAL | 14.40 MIB |
+-----------------+--------------------+------------+

这里的flaten file 存储,其实是把历史数据挪到了 ancient 文件夹(在前文亦有size说明),不在用 LeveldDB 存储,而用普通的二进制格式储存数据。

当从更加老的版本升级到 v1.9.x (或者Geth1.9.x重新启动)时,Geth将自动地升级Blocks和Receipts,从 LevelDB 转移到 ancient 文件夹。也可以通过手动设定 ancient 文件夹位置 --datadir.ancient

chaindata 存放了账本数据(cold data),默认的话,ancientchaindata 里面。state 存放了业务数据(hotdata)。

  • 如果 chaindata 账本数据被删除(或者指定到了错误的位置),节点将变得不可用。这种操作是命令禁止的。
  • 如果 state 业务数据被删除,Geth将在 chaindata 账本数据的基础上重建其索引,并在顶部快速同步到丢失的状态数据。

参考文档==> Geth v1.9.0 Six months distilled

2019-12-20,版本1.0.4,块高89万+(约59万笔交易)

==========================================================

run 25G

|

consus.log 526M

logs 4.6G

odys.log 16M

data 19G

|

config 32K

data 2.7G — blockstore.db 1.4G / cs.wal 1G / state.db 21M / tx.index 308M

odyssey 17G

|

chaindata 17G — 平均每个文件2.1M,共计97224个文件,其中 ancient 472M

==========================================================

某项目中,2019年11月29日上线起始,截至2020年6月19日为止。用户量逐渐增大,目前的日活用户数量为10000~60000。区块高度为6,000,000以上,单个节点的磁盘用量为300G,日新增存储量为1.5G。

==========================================================

BTW:在ethereum1.9.9的版本中,geth 增加了 inspect 命令,“Inspect the storage size for each type of data in the database” ,详细情况将在下一篇文章中介绍。

refer link==> http://www.jryj.org.cn/CN/abstract/abstract535.shtml (中国人民银行研究局/金融研究所)

(::姚前先生的文章常读常有心得)

共识(consensus)和去信任(trustless)是区块链两个非常重要的基础概念。这两个概念脱胎于计算机领域,很难再经济学上予以严格定义,却很容易被误解。比如,将共识等同于消除了信息不对称或实现了共同信念,将去信任等同于没有信用风险。

1.共识的界定

目前对区块链共识的讨论,涉及三种不同语境下的共识概念—机器共识、治理共识和市场共识,其中治理共识和市场共识可以成为“人的共识”。很多误解就源于混淆了这三类共识,或者泛化了共识的范围和性质。

第一,机器共识。机器共识属于分布式计算领域的问题,目标是在存在各种差错、恶意攻击以及可能不同步的对等式网络中(peer-to-peer network),并且在没有中央协调的情况下,确保分布式账本在不同网络节点上的备份文本是一致的(不是语义一致)。

对等式网络的节点(特别是负责生成和验证区块的节点)有诚实节点和恶意节点之分。诚实节点遵守预先定义的算法规则(主要是共识算法),能完美地发送和接收消息,但其行为完全是机械性的。恶意用户可以任意偏离算法规则。在一定限制条件下(比如比特币要求50%以上算力由诚实节点掌握),算法规则保证了机器共识的可行性、稳定性和安全性。机器共识的范围限于区块链内与Token的状态和交易等有关的信息。

第二,治理共识。指在群体治理中,群体成员发展并同意某一个对群体最有利的决策。比如,比特币社区关于“扩容”和分叉的讨论可以在治理共识框架下理解。治理共识的要素包括:1.不同的利益群体;2.一定治理结构和议事规则;3.相互冲突的利益或意见之间的调和折衷;4.对成员有普遍约束的群体决策。袁勇等(2018)指出,治理共识涉及人的主观价值判断,处理的是主观的多值共识,治理共识的参与者通过群体间协调和协作过程收敛到唯一意见,而此过程如果不收敛,就意味着治理共识的失败。

第三,市场共识。Token参与交易时(不管是不同Token之间交易,还是Token与区块链外资产或权利交易),就涉及市场共识。市场共识体现在市场交易形成的均衡价格中。

三类共识之间存在紧密而复杂的关系。机器共识是对等式网络的节点运行算法规则的产物,治理共识反映由人(包括网络节点的拥有者或控制着)来制定或修改算法规则的过程。市场共识受机器共识和治理共识的影响。比如,如果分布式账本的安全性没有保障(即机器共识失效),比特币的市场价格将受到毁灭性冲击。再比如,2017年比特币社区对“SegWit2x”的讨论(即引入隔离见证并将单个区块的大小从1M提升到2M),对当时比特币价格走势有明显的影响,就体现了治理共识对算法共识的影响。下文如无特别说明,讨论的均是机器共识。

2.去信任含义的辨析

去信任源于Token被交易时,Token的状态变更和交易确认同步发生这一安排。设想Alice以比特币向Bob买入某一货物。Alice向Bob支付比特币这一过程无需两人之间有任何了解,也无需受信任的第三方机构,就可以在区块链内有保障地进行。这是去信任的真正含义。但在交易的另一端,Alice如何确保Bob会按时向她交付合格的货物?只要做不到一手交比特币、一手交货,就存在不容忽视的交易对手信用风险。只有准确识别、评估信用风险并引入风险防范措施,很多交易才能进行。比如,在暗网交易中,交易平台通常设立第三方托管账户(escrow account)。买方先将比特币打入第三方托管账户,等收到商品并确认后,才通知交易平台将比特币转给卖方。如果没有第三方托管账目这个增信手段,比特币忠实拥趸之间的交易也会大幅减少。

因此,区块链内的去信任环境,不能简单外推到区块链外。一旦脱离Token交易等原生场景,区块链要解决现实中的信任问题,往往需要引入区块链外的可信中心机制予以辅助。

refer link==> https://ethereum.stackexchange.com/questions/143/what-are-the-ethereum-disk-space-needs

Update on Dec 9th, 2018 / Block ~ 6_850_000

Geth (Go)

Last Update: May 14th, 2018 / Block ~ 5_600_000

1
2
3
4
5
6
Client / Mode         | Block Number   | Disk Space
======================|================|===========
geth light | 5_600_000 | 363M
geth fast full | 5_600_000 | 142G
geth full full | 4_980_000 [1] | 239G + [1]
geth full archive | 4_980_000 [2] | 671G
  • Geth 1.8.3
  • Ubuntu 16.4 LTS, VPS instance with SSD backed storage

Parity (Rust)

Last Update: May 14th, 2018 / Block ~ 5_600_000

1
2
3
4
5
6
Client / Mode         | Block Number   | Disk Space
======================|================|===========
parity light | 5_600_000 | 89M
parity warp fast | 5_600_000 | 82G
parity full fast | 5_600_000 | 78G
parity full archive | 5_600_000 | 1.1T
  • Parity 1.10.0
  • Ubuntu 16.4 LTS, VPS instance with SSD backed storage

leader: 率领和引导他人实现组织目标的过程例如,头雁。

  • 领导风格-西方提倡模式,Coach型,激发型;东方固有模式,家长式,命令型
  • (领导中的)导是指什么?引导(指引目标),辅导,教导,督导(检查、督促),疏导(解决矛盾、怨言、冲突)
  • 领导对象-追随者

leadership

  • 硬权力,岗位的职级,权力是起始点和载体
  • 软权力,品格德行、能力知识、修养才华。当品格德行出现问题时,公信力会出现丧失,说的正确的内容也会被人质疑

领导发展趋势

  • 简约化、制度化、柔性化(发现追随者的内心,亲近)、隐形化(成功之后,也成自然的状态)

领导职能

  • 出主意
  • 用干部

出主意

  • 战略思维。长远的、全局的、高层次的重大问题的筹划和思考。全球-全国-上海-金融-保险。

    通观全局,抓枢纽,把重点

    着眼大局,认清大局,服务大局

    科学预见,立足长远,把握大势

  • 创新思维、辩证思维(两点论、重点论、系统论-重大问题要放一放)、韧性、公心

  • 及时决断、敢于担当(通过价值标准,拜托布里丹选择)

  • 决策的三圈理论(价值圈、能力圈、认同圈)

用干部

  • 授权,多干就是少干、少干才能多干。领导就是服务(环境、平台、制度、支持)

  • 优化团队结构(角色:实干、推动、协调、凝聚、监督、外交、智多、完美主义)

  • 领导激励(满足合理需求、制度设计、物质与精神相结合)

沟通(语言、听、身体)

  • 上行,事前请示、事后沟通;目标传递、将目标变成领导的目标
  • 下行,开放、鼓励、公平。不着急说,先听听看
  • 平行,多支持,不埋怨

认识自我

  • 知己,知命、知长、知短
  • 性格特点、正职副职、信任
  • 不断学习,依靠学习走向未来。70%从实践中学习,20%向同行同事学习,10%从书本中学习。“学哲学,用哲学是我们党的好传统“,“工作上常常干糊涂事、吃糊涂亏、占糊涂便宜”—《学哲学、用哲学》
  • 学历史(国史、党史),学专业知识,学习文学艺术
  • 情绪管理。时间管理28原则,锻炼放松、质朴生活
  • 改变认知。从学习经典中来,从自省(日三省身)&觉知(自我的旁观者,keep focus,做事慢半拍)中来