對象選取方法及裝置、電子設備
本發明係有關區塊鏈技術領域,尤其是一種對象選取方法及裝置、電子設備。
當某一事件被設定為由預設數量的對象實施時,如果備選對象的數量超出該預設數量,則需要從這些備選對象中進行選擇。當這些備選對象對於該事件的實施並無明顯區別時,可以從這些備選對象中隨機選取上述預設數量的對象。例如,當系統內包含10台設備時,如果希望配置為2台主設備、8台從設備的架構,可以從該10台設備中隨機選取2台主設備,則剩餘的8台設備為從設備。
有鑑於此,本說明書一個或多個實施例提供一種對象選取方法及裝置、電子設備。
為實現上述目的,本說明書一個或多個實施例提供技術方案如下:
根據本說明書一個或多個實施例的第一方面,提出了一種對象選取方法,應用於區塊鏈節點;所述方法包括:
確定備選對象的標識資訊被發佈至區塊鏈;
呼叫用於選取對象的智慧合約,所述智慧合約用於讀取所述備選對象的標識資訊,並對所述備選對象的標識資訊進行隨機排列,以使得符合預設排序規則的備選對象被選取為目標對象。
根據本說明書一個或多個實施例的第二方面,提出了一種對象選取裝置,應用於區塊鏈節點;所述裝置包括:
確定單元,確定備選對象的標識資訊被發佈至區塊鏈;
呼叫單元,呼叫用於選取對象的智慧合約,所述智慧合約用於讀取所述備選對象的標識資訊,並對所述備選對象的標識資訊進行隨機排列,以使得符合預設排序規則的備選對象被選取為目標對象。
根據本說明書一個或多個實施例的第三方面,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的儲存器;
其中,所述處理器通過所述可執行指令實現如上述實施例中任一所述的對象選取方法。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書一個或多個實施例相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本說明書一個或多個實施例的一些方面相一致的裝置和方法的例子。
需要說明的是:在其他實施例中並不一定按照本說明書示出和描述的順序來執行相應方法的步驟。在一些其他實施例中,其方法所包括的步驟可以比本說明書所描述的更多或更少。此外,本說明書中所描述的單個步驟,在其他實施例中可能被分解為多個步驟進行描述;而本說明書中所描述的多個步驟,在其他實施例中也可能被合併為單個步驟進行描述。
圖1是一示例性實施例提供的一種對象選取方法的流程圖。如圖1所示,該方法應用於區塊鏈節點,可以包括以下步驟:
步驟102,確定備選對象的標識資訊被發佈至區塊鏈。
在一實施例中,通過在區塊鏈的客戶端上創建交易(transfer),可以通過該交易將備選對象的標識資訊發佈至區塊鏈上,成為區塊鏈的分散式資料庫中的一筆資料。
需要指出的是:區塊鏈中的交易,存在狹義的交易以及廣義的交易之分。狹義的交易是指使用者向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是使用者在區塊鏈中發起的一筆轉帳。而廣義的交易是指使用者向區塊鏈發佈的一筆具有業務意圖的業務資料;例如,營運方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的線上業務(比如,對象選取業務、租房業務、車輛調度業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是使用者在聯盟鏈中發佈的一筆具有業務意圖的業務訊息或者業務請求。本說明書中的交易,應當傾向於理解為廣義上的交易。
在一實施例中,由於區塊鏈採用分散式資料庫,使得發佈至區塊鏈上的備選對象的標識資訊無法被篡改,可以確保預測結果真實、可靠。
在一實施例中,備選對象的標識資訊可由上述的區塊鏈節點向區塊鏈發佈。在另一實施例中,備選對象的標識資訊可由區別於上述區塊鏈節點的其他區塊鏈節點向區塊鏈發佈,而上述區塊鏈節點可以獲知與該備選對象的標識資訊相關的資訊,還可以將該備選對象的標識資訊(或該備選對象的標識資訊的雜湊值)記錄在該區塊鏈節點維護的本地資料庫(即區塊鏈帳本)中。
在一實施例中,備選對象的數量為多個,上述“備選對象的標識資訊”應當理解為一標識資訊集合,該標識資訊集合包含了所有備選對象分別對應的所有標識資訊。
在一實施例中,備選對象可以包括任意類型的對象,這取決於所應用的場景,本說明書並不對此進行限制。例如,在向出租車派發叫車任務時,備選對象可以為出租車牌照號,用於為每一叫車任務隨機指派一輛出租車;再例如,在配置多台電子設備構成的設備系統時,備選對象可以為設備ID,用於選取指定數量的電子設備以作為主設備。
步驟104,呼叫用於選取對象的智慧合約,所述智慧合約用於讀取所述備選對象的標識資訊,並對所述備選對象的標識資訊進行隨機排列,以使得符合預設排序規則的備選對象被選取為目標對象。
在一實施例中,智慧合約中可以預先寫入對標識資訊進行隨機排列的處理邏輯,使得該智慧合約可以基於讀取的備選對象的標識資訊自動實現隨機排列。其中,由於智慧合約上的處理邏輯為公開內容,並且整個處理過程由智慧合約自動完成、不存在人工干預,使得對備選對象的標識資訊的排列結果能夠確保客觀、公正。
在一實施例中,智慧合約中可以預先寫入預設排序規則,使得該智慧合約可以基於該預設排序規則自動實現對目標對象的選取。其中,由於智慧合約上的預設排序規則為公開內容,並且整個處理過程由智慧合約自動完成、不存在人工干預,使得對目標對象的選取結果能夠確保客觀、公正。
在一實施例中,可以向所述區塊鏈中發佈交易,以對所述智慧合約進行呼叫;其中,所述交易中包含所述預設排序規則,以使所述智慧合約根據所述預設排序規則選取所述目標對象。換言之,通過在交易中包含預設排序規則,可以控制智慧合約採用的排序規則,使其能夠適應不同的應用場景下的排序需求,選取所需的目標對象。
在一實施例中,智慧合約中可以預先寫入默認的預設排序規則;當交易中未包含預設排序規則時,智慧合約可以基於該默認的預設排序規則選取目標對象;而當交易中包含某一預設排序規則時,智慧合約可以根據交易中包含的預設排序規則選取目標對象。
在一實施例中,所述智慧合約還用於將所述備選對象的標識資訊的排列結果發佈至所述區塊鏈上,使得該排序結果處於公開狀態,便於接受各方的查看與檢驗。
在一實施例中,所述符合預設排序規則的備選對象可以包括:排列在先的預設數量的備選對象;譬如當該預設數量為100時,預設排序規則相當於選取隨機排序後的前100個備選對象,當該預設數量為3時,預設排序規則相當於選取隨機排序後的前3個備選對象,當然還可以設置其他任意數值的預設數量,本說明書並不對此進行限制。容易理解的是,“符合預設排序規則的備選對象”實際上是指該備選對象的標識資訊的排列順序符合該預設排序規則,譬如當預設排序規則為“選取隨機排序後的前100個備選對象”時,若備選對象1的標識資訊1的排列順序為50、備選對象2的標識資訊2的排列順序為123,則備選對象1會被選取為目標對象、備選對象2不會被選取。在其他實施例中,還可以設置任意形式的預設排序規則,譬如選取隨機排序後的排列順序為20~30的備選對象,再譬如選取隨機排序後的排列順序為質數的備選對象,又譬如選取隨機排序後的排列順序為預設算式的解的備選對象等,本說明書並不對此進行限制。
在一實施例中,所述智慧合約還向鏈外系統發送通知訊息,所述通知訊息包含所述目標對象的資訊,以指示所述鏈外系統向所述目標對象賦予預設權限,使得該目標對象可以實施相關操作,而其他未被選取為目標對象的備選對象則不具有該預設權限、無法實施相關操作。
例如,對於需要控制車輛數量的地區,所述鏈外系統可以包括車輛牌照管理系統,而所述預設權限包括對車輛牌照的選取權限,備選對象為希望選取車輛牌照的使用者;那麼,目標對象可以選取車輛牌照,而未被選取為目標對象的備選對象則無法選取車輛牌照,從而實現對車輛數量的控制。又例如,對於需要抽籤買房的地區,所述鏈外系統包括不動產管理系統,所述預設權限包括對不動產的選購權限,備選對象為希望選購某一建物的不動產的使用者;那麼,當備選對象的數量超出該建物的不動產總數時,可以基於該不動產總數選取目標對象,使得該目標對象可以選購該建物的不動產,而未被選取為目標對象的備選對象則無法選購該建物的不動產。
為了便於理解,下面以選購不動產時的抽籤過程為例,對本說明書的對象選取方案進行描述。圖2是一示例性實施例提供的一種抽籤選購不動產的示意圖;如圖2所示,假定使用者A希望參與針對某一建物的抽籤,該使用者A可以透過安裝有客戶端的手機21輸入抽籤所需的材料,比如身分證明材料、存款證明材料等,這取決於建物開發商的要求。類似地,如果使用者B希望參與抽籤,可以通過安裝有客戶端的手機22輸入抽籤所需的材料,其他使用者的情況此處不再一一贅述。
設備23被配置為抽籤系統的服務端,該設備23一方面與使用者A-B等使用的手機21-22等進行交互,另一方面與設備24進行交互。設備24被配置為區塊鏈中的一個區塊鏈節點,基於設備23所提供的資訊,設備24可以通過呼叫智慧合約實現抽籤操作。下面結合圖3對設備23-24實施的抽籤過程進行描述;其中,圖3是一示例性實施例提供的一種基於智慧合約的抽籤過程的示意圖;如圖3所示,該過程可以包括以下步驟:
步驟302,設備23接收報名請求。
在一實施例中,使用者A可以通過手機21向設備23上傳報名請求,該報名請求中包含上述的抽籤所需的材料;使用者B可以通過手機22向設備23上傳報名請求,該報名請求中包含上述的抽籤所需的材料。類似地,其他使用者可以分別通過相應的電子設備向設備23上傳報名請求。
步驟304,設備23確定上報報名請求的使用者是否已通過核驗。
在一實施例中,需要對使用者上傳的抽籤所需的材料進行核驗,包括材料是否齊全、材料內容是否符合要求等。
在一實施例中,設備23可以實施針對材料的核驗操作。在另一實施例中,設備23可以將使用者上傳的抽籤所需的材料發送至核驗方,由核驗方實施針對材料的核驗操作,並接收核驗方返回的核驗結果。
步驟306,當確認通過核驗時,設備23為相應的使用者產生使用者編號。
在一實施例中,通過為使用者產生使用者編號,使得該使用者可以基於相應的使用者編號參與到後續的抽籤過程中。例如,設備23可以按照收到報名請求的順序為相應的使用者產生使用者編號,或者設備23可以向每一使用者分配與其他使用者不同的隨機的使用者編號,或者設備23可以通過其他方式產生使用者編號,本說明書並不對此進行限制。
步驟308A,設備24獲取使用者編號集合、抽籤規則。
步驟310A,設備24發佈使用者編號集合、抽籤規則。
在一實施例中,設備24可以接收設備23上傳的使用者編號集合和抽籤規則。使用者編號集合包含所有需要參與本次抽籤的使用者編號。抽籤規則用於指示對使用者編號的選擇方式,比如至少應當基於可售房屋的數量而設定需要選取的使用者數量。設備24可以在區塊鏈中對使用者編號集合和抽籤規則進行共識,使得該使用者編號集合和抽籤規則在通過共識後被發佈至區塊鏈,以記錄至區塊鏈的分散式資料庫中,即“上鏈”。本說明書並不限定採用的共識算法的類型;例如,當設備24所處的區塊鏈為聯盟鏈或公有鏈時,該設備24可以基於諸如PBFT(Practical Byzantine Fault Tolerance,實用拜占庭容錯)算法向其他區塊鏈節點發起共識,並在通過共識後將該使用者編號集合和抽籤規則發佈至區塊鏈,使其被記錄至區塊鏈的分散式資料庫中;再例如,當設備24所處的區塊鏈為公有鏈時,該設備22可以與其他區塊鏈節點基於POW(Proof of Work,工作量證明)算法、POS(Proof of Stake,股權證明)算法或其他算法競爭記帳權,並由獲得記帳權的區塊鏈節點向相應區塊內記入交易資料,而當包含上述使用者編號集合和抽籤規則的交易被記入時,該使用者編號集合和抽籤規則可以被記錄至區塊鏈的分散式資料庫中。
步驟308B,設備24獲取使用者材料。
步驟310B,設備24在本地儲存使用者材料,並將使用者材料的雜湊值上鏈。
在一實施例中,針對獲取的使用者編號集合,設備24可以進一步獲取該使用者編號集合中所含使用者編號對應的使用者材料,並產生每一使用者的使用者材料的雜湊值。然後,通過將使用者材料的雜湊值上鏈,即發佈至區塊鏈中,便於在後續過程中由監管部門等對使用者材料進行核查、避免使用者材料出現弄虛作假等問題,而且可以避免將使用者材料直接上鏈、防止使用者的隱私資訊被公開。
在一實施例中,可以省去步驟308B-310B。
步驟312,智慧合約對使用者編號進行隨機排序。
在一實施例中,使用者編號集合被記錄於區塊鏈上的某一交易中,該交易可以被標記為與抽籤相關,使得智慧合約可以據此從區塊鏈中查找到該交易,並獲取使用者編號集合。例如,智慧合約可以通過掃描特定地址的交易記錄或者特定流水號的交易記錄,即可獲得該使用者編號集合。
在一實施例中,智慧合約中預先定義了對使用者編號進行隨機排序的功能邏輯,使得智慧合約可以基於該功能邏輯對獲取的使用者編號進行隨機排序。由於智慧合約被發佈於區塊鏈上,使得智慧合約中定義的功能邏輯為公開資料,從而確保對於使用者編號的排序結果客觀、公平,避免人為干預造成的暗箱操作等情況。
步驟314,智慧合約選取符合抽籤規則的使用者編號。
在一實施例中,抽籤規則與使用者編號集合位於同一交易中,智慧合約在查找到包含該使用者編號集合的交易後,可以從該交易中提取抽籤規則。在另一實施例中,抽籤規則與使用者編號集合分別位於不同的交易中,智慧合約可以通過類似於查找到包含該使用者編號集合的交易的方式,查找到包含該抽籤規則的交易,以用於對使用者編號進行隨機排序。
在其他實施例中,智慧合約可以內置有預先設定的抽籤規則,可以基於該抽籤規則對使用者編號進行隨機排序,而無需設備24單獨獲取和發佈抽籤規則。
在一實施例中,當抽籤規則為選取排列在前100名的使用者編號時,針對隨機排序後的使用者編號,智慧合約可以根據各個使用者編號的排列順序而自動選取排列在前100名的使用者編號。
步驟316,智慧合約返回抽籤結果。
在一實施例中,智慧合約可以將抽籤結果返回至設備24,而設備24可以將該抽籤結果進一步返回至手機21-22等,以便於使用者A-B等進行查看。
在一實施例中,智慧合約可以將使用者編號的隨機排序結果、選取的符合抽籤規則的使用者編號等發佈至區塊鏈上,以便於針對抽籤結果進行檢驗、核查。
圖4是一示例性實施例提供的一種設備的示意結構圖。請參考圖4,在硬體層面,該設備包括處理器402、內部匯流排404、網路介面406、記憶體408以及非易失性儲存器410,當然還可能包括其他業務所需要的硬體。處理器402從非易失性儲存器410中讀取對應的電腦程式到記憶體408中然後運行,在邏輯層面上形成對象選取裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯器件抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯器件。
請參考圖5,在軟體實施方式中,該對象選取裝置應用於區塊鏈節點;該裝置可以包括:
確定單元51,確定備選對象的標識資訊被發佈至區塊鏈;
呼叫單元52,呼叫用於選取對象的智慧合約,所述智慧合約用於讀取所述備選對象的標識資訊,並對所述備選對象的標識資訊進行隨機排列,以使得符合預設排序規則的備選對象被選取為目標對象。
可選的,所述呼叫單元52具體用於:
向所述區塊鏈中發佈交易,以對所述智慧合約進行呼叫;
其中,所述交易中包含所述預設排序規則,以使所述智慧合約根據所述預設排序規則選取所述目標對象。
可選的,所述智慧合約還用於將所述備選對象的標識資訊的排列結果發佈至所述區塊鏈上。
可選的,所述符合預設排序規則的備選對象包括:排列在先的預設數量的備選對象。
可選的,所述智慧合約還向鏈外系統發送通知訊息,所述通知訊息包含所述目標對象的資訊,以指示所述鏈外系統向所述目標對象賦予預設權限。
可選的,
所述鏈外系統包括車輛牌照管理系統,所述預設權限包括對車輛牌照的選取權限;
或者,所述鏈外系統包括不動產管理系統,所述預設權限包括對不動產的選購權限。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
在一個典型的配置中,電腦包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒介中的非永久性儲存器,隨機存取儲存器(RAM)及/或非易失性記憶體等形式,如唯讀儲存器(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒介的示例。
電腦可讀媒介包括永久性和非永久性、可移除和非可移除媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒介的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取儲存器(SRAM)、動態隨機存取儲存器(DRAM)、其他類型的隨機存取儲存器(RAM)、唯讀儲存器(ROM)、電可抹除可程式化唯讀儲存器(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀儲存器(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、卡式磁帶、磁碟儲存、量子儲存器、基於石墨烯的儲存媒介或其他磁性儲存設備或任何其他非傳輸媒介,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒介不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在圖式中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。
在本說明書一個或多個實施例使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書一個或多個實施例。在本說明書一個或多個實施例和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“及/或”是指並包含一個或多個相關聯的列出項目的任何或所有可能組合。
應當理解,儘管在本說明書一個或多個實施例可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書一個或多個實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應於確定”。
以上所述僅為本說明書一個或多個實施例的較佳實施例而已,並不用以限制本說明書一個或多個實施例,凡在本說明書一個或多個實施例的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書一個或多個實施例保護的範圍之內。
102‧‧‧步驟
104‧‧‧步驟
21‧‧‧手機
22‧‧‧手機
23‧‧‧設備
24‧‧‧設備
302‧‧‧步驟
304‧‧‧步驟
306‧‧‧步驟
308A‧‧‧步驟
308B‧‧‧步驟
310A‧‧‧步驟
310B‧‧‧步驟
312‧‧‧步驟
314‧‧‧步驟
316‧‧‧步驟
402‧‧‧處理器
404‧‧‧內部匯流排
406‧‧‧網路介面
408‧‧‧記憶體
410‧‧‧非易失性儲存器
51‧‧‧確定單元
52‧‧‧呼叫單元
圖1是一示例性實施例提供的一種對象選取方法的流程圖。
圖2是一示例性實施例提供的一種抽籤選購不動產的示意圖。
圖3是一示例性實施例提供的一種基於智慧合約的抽籤過程的示意圖。
圖4是一示例性實施例提供的一種設備的結構示意圖。
圖5是一示例性實施例提供的一種對象選取裝置的方塊圖。