[發(fā)明專利]一種基于區(qū)塊鏈的授時預言機實現方法在審
| 申請?zhí)枺?/td> | 201910933714.0 | 申請日: | 2019-09-29 |
| 公開(公告)號: | CN110633286A | 公開(公告)日: | 2019-12-31 |
| 發(fā)明(設計)人: | 王偉兵;龐松濤;商廣勇;宋明明;楊海勇;張嵐 | 申請(專利權)人: | 山東愛城市網信息技術有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/27;G06F21/31;G06F9/455 |
| 代理公司: | 37100 濟南信達專利事務所有限公司 | 代理人: | 闞恭勇 |
| 地址: | 250100 山東省濟南市高新*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 區(qū)塊 設計和實現 統(tǒng)計學算法 授時服務 授時系統(tǒng) 網絡提供 運行環(huán)境 智能 中心化 賬本 公鏈 調用 訂閱 可信 網絡 | ||
1.一種基于區(qū)塊鏈的授時預言機實現方法,其特征在于,
其實現過程包括以下步驟:
1)在智能合約中硬編碼一個允許授時投票的區(qū)塊鏈賬號清單;
2)投票客戶端向授時智能合約查詢當前投票輪次,并在本地判斷是否已經參與投票,如果已經參與就延遲指定時間后再發(fā)起智能合約查詢;
3)投票客戶端取系統(tǒng)時間,并將“投票輪次和系統(tǒng)時間”作為參數向授時智能合約發(fā)起投票請求;
4)智能合約中進行檢查,防止重復投票;通過查詢未確認交易來得知投票進展,投票過半數后進行投票結算。
5)將投票時間按大小排序,計算得到中位數;以中位數作為授時投票的結果。
2.根據權利要求1所述的方法,其特征在于,
所述使用智能合約實現的授時投票,即以硬編碼投票人白名單防止投票人身份仿冒;查詢得知某投票人是否已投票,以及總體的投票進度;觸發(fā)投票結算;得到授時投票結果;以出塊時間的區(qū)塊鏈內建機制控制授時服務的間隔。
3.根據權利要求1所述的方法,其特征在于,
投票客戶端使用n個系統(tǒng)虛擬機(V1、V2…Vn)的系統(tǒng)時間作為授時數據源(n為虛擬機數量);
每個虛擬機上都要安裝時間同步軟件ntpd,配置好時間來源服務器;
各個虛擬機上安裝授時預言機客戶端程序,里面封裝區(qū)塊鏈客戶端,在客戶端中配置每個投票人專用的區(qū)塊鏈賬號私鑰。
4.根據權利要求3所述的方法,其特征在于,
授時預言機客戶端的工作流程如下:
先調用授時智能合約取投票輪次號,將取得的輪次號與客戶端本地的輪次號進行比較,
如果相等說明已經參與過投票,延時100毫秒后再次取調用智能合約取投票輪次號;
如果不相等說明還沒有參與本輪投票,保存輪次號到本地,然后就取系統(tǒng)時間t,以“輪次號+t”為參數向授時預言機智能合約發(fā)起投票調用;延時100毫秒后跳回到循環(huán)最開始。
5.根據權利要求4所述的方法,其特征在于,
授時智能合約處理投票數據,得出投票結論,將結論寫入區(qū)塊,并允許查詢投票結果。
6.根據權利要求5所述的方法,其特征在于,
授時智能合約僅支持來自可信數據源的投票,代碼中維持一個投票方白名單;白名單是允許投票的區(qū)塊鏈地址或區(qū)塊鏈賬號清單;白名單是硬編碼在智能合約代碼中的,如果更改白名單需要對智能合約代碼進行修改并重新部署。
7.根據權利要求5或6所述的方法,其特征在于,
智能合約收到授時投票后,直接將投票數據保存到賬本,從而形成了一個區(qū)塊鏈交易。
8.根據權利要求7所述的方法,其特征在于,
智能合約不接受同一個投票方在一個投票周期內的一次以上的投票,忽略除第一次的其他投票結果,并返回信息告知客戶端不接受多次投票。
9.根據權利要求7或8所述的方法,其特征在于,
授時的時間間隔受到出塊時間的限制,每個區(qū)塊會包含一個授時交易。
10.根據權利要求9所述的方法,其特征在于,
智能合約的處理流程如下:
1)智能合約接收到投票請求,查看投票用戶是否在白名單中,如果在白名單中,則繼續(xù)下一步,否則返回錯誤信息;
2)查看已投票結果,看這個用戶是否已經投過票,投過票就返回“已投票”,沒有則繼續(xù);
3)查看投票請求參數中的“投票輪次號”與賬本中最新輪次號是否相等,不等則返回“輪次號錯誤”,相等則繼續(xù);
4)保存投票數據,鍵(key)是“投票人區(qū)塊鏈地址+輪次號”,值是投票數據t(客戶端發(fā)過來的系統(tǒng)時間);
5)查看本輪收集到的投票是否超過半數,沒有超過就返回投票成功,超過就繼續(xù);
6)將本輪投票的結果t按大小排序,找到中位數記為T,將T保存到賬本作為本輪投票的結果;
7)賬本中的輪次號+1,返回投票成功。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東愛城市網信息技術有限公司,未經山東愛城市網信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910933714.0/1.html,轉載請聲明來源鉆瓜專利網。





