Plotting 俗稱 P 盤傲诵,是 POC 共識(shí)的第一個(gè)步驟空民。
第一步:選擇一個(gè)8字節(jié)的隨機(jī)數(shù)Nonce,加上Account ID一起進(jìn)行Shabal-256計(jì)算墩剖,得到一個(gè)Hash值挑胸。其中Account ID是從私鑰推倒過(guò)來(lái)的痒筒,可以用來(lái)標(biāo)識(shí)節(jié)點(diǎn)身份,以避免幾個(gè)人共用同一套哈希表來(lái)作弊茬贵,確保每個(gè)ID一套哈希表簿透,同時(shí)也增加了搜索的范圍,更加分散解藻。第一步計(jì)算的哈希結(jié)果被稱為:Hash #8191老充。
然后,把第一步得到的Hash #8191添加到Account ID和Nonce前面螟左,再進(jìn)行一次Shabal256計(jì)算啡浊,得到Hash #8190。
以后的計(jì)算中胶背,每次都把得到的Hash值添加到數(shù)據(jù)的前面巷嚣,當(dāng)數(shù)據(jù)的長(zhǎng)度超過(guò)4096字節(jié)后,每次只取最近的4096字節(jié)數(shù)據(jù)進(jìn)行哈希钳吟。
比如計(jì)算Hash #6000的時(shí)候廷粒,其實(shí)只會(huì)取Hash #6001-6128這128個(gè)哈希值進(jìn)行計(jì)算。因?yàn)槊總€(gè)哈希值的長(zhǎng)度是32字節(jié)砸抛,128個(gè)正好是4096字節(jié)。
當(dāng)完成了8192次循環(huán)后树枫,就會(huì)得到8192個(gè)哈希值直焙,用來(lái)計(jì)算哈希值的數(shù)據(jù)也會(huì)變成這樣:
你需要對(duì)所有這些數(shù)據(jù)再進(jìn)行一次Shabal256計(jì)算,得到一個(gè)Final Hash砂轻。
最后奔誓,把之前的8192個(gè)哈希值逐個(gè)和Final Hash進(jìn)行異或運(yùn)算,得到的8192個(gè)異或后的哈希值保存下來(lái),這些數(shù)據(jù)就是未來(lái)挖礦時(shí)需要搜索的范圍厨喂。