偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

包你不知道,究竟如何從架構(gòu)上保證,區(qū)塊是勻速生成的?

開發(fā) 架構(gòu) 區(qū)塊鏈
區(qū)塊鏈有個特點:雖然很多人在采礦,但挖到礦的速度是均勻的。技術(shù)上,區(qū)塊鏈如何動態(tài)調(diào)節(jié),以保證勻速生成區(qū)塊?

之前兩篇聊了:

區(qū)塊鏈的本質(zhì)

挖礦的本質(zhì)

區(qū)塊鏈有個特點:雖然很多人在采礦,但挖到礦的速度是均勻的。以承載比特幣的區(qū)塊鏈為例,平均每10分鐘產(chǎn)出一個區(qū)塊,這個速度基本是不變的。

有朋友就有疑問了,計算能力越來越強,計算節(jié)點越來越多,計算區(qū)塊頭hash的速度理論上應(yīng)該是越來越快的呀。技術(shù)上,區(qū)塊鏈如何動態(tài)調(diào)節(jié),以保證勻速生成區(qū)塊?

上文回顧,區(qū)塊是怎么生成的?

對最新的區(qū)塊頭進行兩次SHA256計算,得到的256bit哈希結(jié)果,高位48bit必須是0x00000000FFFF,才算新區(qū)塊有效。

可以認為哈希的結(jié)果是完全隨機的,要得出前48bit必須是0x00000000FFFF的哈希結(jié)果,就如同連續(xù)拋了48次硬幣,每次都得到我們想要的結(jié)果,其概率是(1/2)^48,所以概率非常小,生成區(qū)塊的難度很高。

區(qū)塊如何保證生成速度勻速?

假設(shè)期望比特幣全球區(qū)塊鏈每10分鐘生成一個區(qū)塊,需要設(shè)定一個動態(tài)調(diào)節(jié)機制,每兩周做一次統(tǒng)計:

  • 如果統(tǒng)計結(jié)果是,最近兩周平均每5分鐘就生成了一個區(qū)塊,說明生成太快了,需要變慢50%;
  • 如果統(tǒng)計結(jié)果是,最近兩周平均每20分鐘才生成了一個區(qū)塊,說明生成太慢了,需要加速一倍;

如何控制加速和變慢呢?

區(qū)塊鏈中有一個難度系數(shù),可以調(diào)節(jié)區(qū)塊生成的變快與變慢,難度系數(shù)影響的是,區(qū)塊頭哈希結(jié)果,有多少bit必須與預(yù)期相同。

例如,原計劃哈希結(jié)果高位48bit符合預(yù)期,才算挖礦成功,現(xiàn)在改為,49bit符合預(yù)期,才算挖礦成功,這樣得到預(yù)期hash的概率就降低了,挖礦就會變慢。

相反,如果改為,47bit哈希結(jié)果符合預(yù)期,就算挖礦成功,這樣得到預(yù)期hash的概率就變高了,挖礦就會變快。

總結(jié),如何保證全球勻速挖礦?

  • 需要定期統(tǒng)計,動態(tài)加速或減慢生成速度;
  • 通過難度系數(shù),影響hash結(jié)果多少位必須符合預(yù)期,才算合法的區(qū)塊,來控制速度;

這個勻速方案,巧妙嗎?

知其然,知其所以然。

思路比結(jié)論更重要。

==全文完==

思考:

你猜,某網(wǎng)盤,對下載速度進行限制,是怎么做的?

責(zé)任編輯:趙寧寧 來源: 架構(gòu)師之路
相關(guān)推薦

2022-12-07 08:16:50

Vue 3技巧數(shù)組

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket瀏覽器

2022-04-08 09:01:14

數(shù)字貨幣區(qū)塊鏈

2020-10-18 07:25:55

MQ消息冪等架構(gòu)

2024-01-26 06:26:42

Linuxfzf工具

2011-09-15 17:10:41

2009-12-10 09:37:43

2021-02-01 23:23:39

FiddlerCharlesWeb

2022-10-13 11:48:37

Web共享機制操作系統(tǒng)

2010-08-23 09:56:09

Java性能監(jiān)控

2022-11-04 08:19:18

gRPC框架項目

2020-09-15 08:35:57

TypeScript JavaScript類型

2018-01-18 11:59:59

數(shù)據(jù)庫MySQL

2021-12-22 09:08:39

JSON.stringJavaScript字符串

2015-06-19 13:54:49

2012-11-23 10:57:44

Shell

2020-08-11 11:20:49

Linux命令使用技巧

2021-12-29 11:38:59

JS前端沙箱

2021-10-17 13:10:56

函數(shù)TypeScript泛型
點贊
收藏

51CTO技術(shù)棧公眾號