這是BMP協議哈希投票的示例。
物產
普遍可驗證。
權力下放(沒有中央機構進行投票或人口普查)。
向公眾開放(具有算力的任何人都可以平等參與)。
不變的(像區塊鏈,鏈上的,永遠不變的)。
精確,一致,原子。
結論性的(帶有開始和結束日期)。
具有多個可擴展的參數。
投票可以更改,直到投票結束為止。
並行有效性投票。
大的block_window hashpower平均計算,但允許24小時快速投票。
簡單而復雜。繼中本聰白皮書。
驗證
顯然,以0.0009%的BCH哈希能力(24 TH / s),投票結果沒有任何意義。但是,實現的技術里程碑是可驗證的事實。您可以毫無疑問地驗證這一點。
最有趣的方法是運行您自己的BMP服務器,但是在這裡我們將手動進行。
動作:投票
BMP鏈接包含以下哈希(SHA-256):
535947de7669b7e17b6ceb99dc9bae22a8d076c99ae86fa8d920cd51966cb631
與此生物安全信息交換所交易相對應。它包含以下OP_RETURN十六進制:
9d05000105001f80446f20796f7520737570706f727420746865206e657720636f696e626173652072756c65207468617420726564697265637473203825206f66206d696e696e67207265776172647320746f2061207370656369666963206963963963
第一個字節9d是BMP協議前綴。
第二個字節05是動作:投票。創建一個新的民意調查。
第三個字節00是投票類型:探索性的。這意味著結果不具有約束力。投票的目的僅僅是發現有關共識的信息。
第四個字節01是投票類型:one_option。這意味著,每次投票都會選擇一個選項。將來會出現優先票,多種票和其他更高級的票。
十進制的第五個字節05為5,是此輪詢的參數數。
小數點後的三個字節001f80是8064,它是持續時間的塊數。投票在方框648919中開始,然後在656983中完全關閉。我們將其稱為close_block。
以下字節是表決問題。用hex2bin()解碼的是:
您是否支持將8%的採礦獎勵重定向到特定地址的新幣庫規則?
參數:點
現在,我們必須找到5個其他參數才能完成投票。
此事務包括以下OP_RETURN十六進制:
9d06535947de7669b7e17b6ceb99dc9bae22a8d076c99ae86fa8d920cd51966cb6310002
第二個字節06是動作:voting_parameter。用於與投票關聯的其他元數據。
接下來的32個字節是:
535947de7669b7e17b6ceb99dc9bae22a8d076c99ae86fa8d920cd51966cb631
這是此投票的初始交易的哈希值。兩項交易的輸入地址相同。同一位投票作者。因此,投票是由多個TX定義的,並且同時是原子的和不可變的。
下一個字節00是參數類型:點。這是問題陳述中一部分的文本,採用編號點的形式。
下一個字節01是點順序。指定編號點的顯示順序。
以下字節是該點的文本。用hex2bin()解碼的是:
具體地址是:pqnqv9lt7e5vjyp0w88zf2af0l92l8rxdgnlxww
還有兩個相同類型的參數,您將在此處和此處找到。
參數:選項
投票動作說它有5個參數。我們已經驗證了3。還有兩個。
此事務包括以下OP_RETURN十六進制:
9d06535947de7669b7e17b6ceb99dc9bae22a8d076c99ae86fa8d920cd51966cb6310101596573
第一個字節9d是BMP協議前綴。
第二個字節06是動作:voting_parameter。
接下來的32個字節是投票交易的哈希值。
下一個字節01是parameter:option的類型。這是問題陳述中一部分的文本,採用編號點的形式。
下一個字節01是選項順序。指定點在投票選擇器中的顯示順序。
以下字節596573是該選項的文本。解碼為:是
這是最後一個參數,其處理方式相同。這是“否”選項。
因此,完全創建了投票。它是使用此乾淨的Web界面創建的。
投票數
此事務包括以下OP_RETURN十六進制:
9d04535947de7669b7e17b6ceb99dc9bae22a8d076c99ae86fa8d920cd51966cb631010102
第二個字節04是動作:表決。這些是選票。在投票開放時被包括在區塊中時有效。
接下來的32個字節是投票哈希事務。
下一個字節01是投票類型:one_election。將來,其他元素和概念也可以投票。例如,聊天消息。
下一個字節01是投票的有效性。 00表示表決無效,01表示表決有效。這樣就可以對投票本身的措辭進行平行和獨立的投票。與您投票的選項無關。
下一個字節02是投票選項! 00始終為中性。在這種情況下:01為是,02為否。
這是第二票。並以相同的方式進行處理。
哈希功率
投票結束時,通過將每個選項的哈希能力加起來來計算投票結果。算力最高的選項是贏家。
在第一票中,輸入和輸出包含相同的地址:
bitcoincash:qpjf08mqnw5g2v4y9yta50s3exek3yp6fcwddtteak
相同格式的舊地址:
1AAtD721LQekC6ncHbAp4ScKxSwR7fFeYT
它是投票的作者。
這是一個coinbase交易。這很特別。只有礦工才能做到這一點。這是該區塊的第一筆交易。該交易沒有輸入。它接收費用和塊獎勵。這就是所有比特幣的起源。
Coinbase事務包括多個輸出地址。礦工。包括以FeYT結尾的第一票的地址。
它收到0.04374541 BCH。塊的總輸出為6.25150088 BCH。
然後,FeYT地址已收到該區塊獎勵的0.7%。
653362區塊的難度為359263959306.8658。
只需要這個數字就可以使用以下方法計算塊的哈希能力:
難度* 2 ^ 32/60 = 2571711593090800000 = 2.57 EH / s
該區塊的每秒哈希值為2,570,000,000,000,000,000!
然後,如果FeYT收到0.7%的區塊激勵,則BMP按比例計算其哈希能力為18 PH / s。默認情況下,此信號方法稱為power_by_value,並且與所有塊兼容。我將在另一篇文章中介紹兩種更複雜的信號發送方法。
BMP block_window是用於算力計算的最後4032個塊。然後,當投票結束時,它計算每個礦工的哈希能力,介於652951 close_block-block_window和656983 close_block之間。
在這些區塊之間,FeYT參與了653326和653435的創建。
BMP計算比例哈希功率並將其全部相加。第二個參與者也是如此。由於他們投了相同的票,因此將其總計,得出“否”選項的24 TH / s。
此新上下文將通過這段PHP代碼進行處理。在每個街區。