本申請涉及區(qū)塊鏈,特別是涉及一種時間同步方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、當(dāng)前采用網(wǎng)絡(luò)時間協(xié)議(network?time?protocol,ntp)進(jìn)行網(wǎng)絡(luò)時鐘同步是計算網(wǎng)絡(luò)最常采用的時間同步方法,然而,這種傳統(tǒng)的網(wǎng)絡(luò)時間協(xié)議存在依賴ntp時間服務(wù)器作為時間源,當(dāng)時間源長時間脫線時,網(wǎng)絡(luò)時間協(xié)議(ntp)將無法正常運行,從而使得區(qū)塊鏈網(wǎng)絡(luò)中的所有時間節(jié)點都會更新錯誤的時間戳,從而導(dǎo)致時間同步的準(zhǔn)確性大大降低。
技術(shù)實現(xiàn)思路
1、本申請?zhí)峁┑囊环N時間同步方法、裝置、設(shè)備及介質(zhì),能夠提高時間同步的準(zhǔn)確性。
2、第一方面,本申請實施例提供一種時間同步方法,應(yīng)用于區(qū)塊鏈系統(tǒng),區(qū)塊鏈系統(tǒng)包括多個第一節(jié)點,以及多個第二節(jié)點,一個第一節(jié)點與一個可信時間源關(guān)聯(lián),方法包括:
3、對于多個第一節(jié)點中的任意一個第一子節(jié)點,每隔預(yù)設(shè)時間周期,在第一子節(jié)點中獲取與第一子節(jié)點關(guān)聯(lián)的第一可信時間源的可信時間;
4、通過第一子節(jié)點將可信時間廣播至至少一個第三節(jié)點,第三節(jié)點與第一子節(jié)點直接通信,多個第二節(jié)點包括至少一個第三節(jié)點;
5、對于至少一個第三節(jié)點中的任意一個第三子節(jié)點,通過第三子節(jié)點獲取可信時間與第三子節(jié)點的當(dāng)前本地時間之間的第一時間偏差;
6、通過第三子節(jié)點基于第一時間偏差和第一閾值之間的大小關(guān)系,同步更新第三子節(jié)點的當(dāng)前本地時間,第一閾值基于預(yù)設(shè)時間周期確定。
7、第二方面,本申請?zhí)峁┮环N時間同步裝置,應(yīng)用于區(qū)塊鏈系統(tǒng),區(qū)塊鏈系統(tǒng)包括多個第一節(jié)點,以及多個第二節(jié)點,一個第一節(jié)點與一個可信時間源關(guān)聯(lián),該裝置包括:
8、第一獲取模塊,用于對于多個第一節(jié)點中的任意一個第一子節(jié)點,每隔預(yù)設(shè)時間周期,在第一子節(jié)點中獲取與第一子節(jié)點關(guān)聯(lián)的第一可信時間源的可信時間;
9、廣播模塊,用于通過第一子節(jié)點將可信時間廣播至至少一個第三節(jié)點,第三節(jié)點與第一子節(jié)點直接通信,多個第二節(jié)點包括至少一個第三節(jié)點;
10、第二獲取模塊,用于對于至少一個第三節(jié)點中的任意一個第三子節(jié)點,通過第三子節(jié)點獲取可信時間與第三子節(jié)點的當(dāng)前本地時間之間的第一時間偏差;
11、同步模塊,用于通過第三子節(jié)點基于第一時間偏差和第一閾值之間的大小關(guān)系,同步更新第三子節(jié)點的當(dāng)前本地時間,第一閾值基于預(yù)設(shè)時間周期確定。
12、第三方面,本申請實施例提供了一種電子設(shè)備,該電子設(shè)備包括:處理器以及存儲有計算機(jī)程序指令的存儲器;
13、處理器執(zhí)行計算機(jī)程序指令時實現(xiàn)如第一方面中任意一個實施例中的時間同步方法。
14、第四方面,本申請實施例提供了一種計算機(jī)存儲介質(zhì),計算機(jī)存儲介質(zhì)上存儲有計算機(jī)程序指令,計算機(jī)程序指令被處理器執(zhí)行時實現(xiàn)如第一方面中任意一個實施例中的時間同步方法。
15、第五方面,本申請實施例提供了一種計算機(jī)程序產(chǎn)品,計算機(jī)程序產(chǎn)品中的指令由電子設(shè)備的處理器執(zhí)行時,使得電子設(shè)備執(zhí)行實現(xiàn)如上述第一方面中任意一個實施例中的時間同步方法。
16、在本申請實施例提供的一種時間同步方法、裝置、設(shè)備及介質(zhì)中,對于多個第一節(jié)點中的任意一個第一子節(jié)點,每隔預(yù)設(shè)時間周期,在第一子節(jié)點中獲取與第一子節(jié)點關(guān)聯(lián)的第一可信時間源的可信時間;通過第一子節(jié)點將可信時間廣播至至少一個第三節(jié)點,第三節(jié)點與第一子節(jié)點直接通信,多個第二節(jié)點包括至少一個第三節(jié)點;對于至少一個第三節(jié)點中的任意一個第三子節(jié)點,通過第三子節(jié)點獲取可信時間與第三子節(jié)點的當(dāng)前本地時間之間的第一時間偏差;通過第三子節(jié)點基于第一時間偏差和第一閾值之間的大小關(guān)系,同步更新第三子節(jié)點的當(dāng)前本地時間,第一閾值基于預(yù)設(shè)時間周期確定。上述方式,通過在區(qū)塊鏈系統(tǒng)中引入多個第一節(jié)點,并將這些第一節(jié)點與可信時間源相關(guān)聯(lián),從而能夠允許多個第一節(jié)點定期獲取可信時間,并將其廣播給至少一個與第一子節(jié)點直接通信的第三節(jié)點,由此,即使某個第一節(jié)點關(guān)聯(lián)的可信時間源發(fā)生故障或脫線,其他節(jié)點仍然可以繼續(xù)獲得其他可信時間源提供的準(zhǔn)確的可信時間信息,以保持時間同步。由此本申請實施例,不依賴于單一的時間服務(wù)器,減少了由于單一時間源故障引起的同步時間不準(zhǔn)確性問題,從而提到了時間同步的準(zhǔn)確性。
1.一種時間同步方法,其特征在于,應(yīng)用于區(qū)塊鏈系統(tǒng),所述區(qū)塊鏈系統(tǒng)包括多個第一節(jié)點,以及多個第二節(jié)點,一個第一節(jié)點與一個可信時間源關(guān)聯(lián),所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過所述第三子節(jié)點基于所述第一時間偏差和第一閾值之間的大小關(guān)系,同步更新所述第三子節(jié)點的當(dāng)前本地時間,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一區(qū)塊包括區(qū)塊頭和時間記錄;
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述通過所述第三子節(jié)點基于所述所有時間戳,同步更新所述第三子節(jié)點的當(dāng)前本地時間,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在通過所述第三子節(jié)點,將所述第三子節(jié)點的當(dāng)前本地時間同步更新為所述更新時間之后,所述方法還包括:
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通過所述第三子節(jié)點基于所述第一時間偏差和第一閾值之間的大小關(guān)系,同步更新所述第三子節(jié)點的當(dāng)前本地時間,還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述可信時間源包括網(wǎng)絡(luò)時間協(xié)議服務(wù)器授時、廣播授時、衛(wèi)星授時和通信基站授時中的至少一者。
8.一種時間同步裝置,其特征在于,應(yīng)用于區(qū)塊鏈系統(tǒng),所述區(qū)塊鏈系統(tǒng)包括多個第一節(jié)點,以及多個第二節(jié)點,一個第一節(jié)點與一個可信時間源關(guān)聯(lián),所述裝置包括:
9.一種電子設(shè)備,其特征在于,所述設(shè)備包括:處理器以及存儲有計算機(jī)程序指令的存儲器;
10.一種計算機(jī)可讀存儲介質(zhì),其特征在于,所述計算機(jī)可讀存儲介質(zhì)上存儲有計算機(jī)程序指令,所述計算機(jī)程序指令被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-7任意一項所述的時間同步方法。