Logs

logsBloom 的容量是多少?

  • October 7, 2018

塊頭中的日誌布隆過濾器的大小為 2048 位。在誤報率太高而不再有用之前,它將容納多少消息?如果能提供一個公式那就太好了。

正如 Thomas 已經建議的那樣,https://en.wikipedia.org/wiki/Bloom_filter是一個很好的資源。

據我了解,它的工作原理是這樣的(如果有錯請更正):

誤報的估計公式是(1-e^(-k*n/m))^k

乙太坊黃皮書說:

M3:2048 是一個專門的 Bloom 過濾器,它在給定任意字節序列的情況下設置 2048 中的三個位。

因此 k=3, m=2048

為此,我們得到以下誤報估計(n = 布隆過濾器中包含的合約地址和日誌主題的數量):

n =  100 ->  ~0,25%
n =  200 ->  ~1,64%
n =  430 -> ~10,20%
n = 1080 -> ~50,14%
n = 4000 -> ~99,15%

引用自:https://ethereum.stackexchange.com/questions/56123