欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種區(qū)塊鏈的跨鏈操作方法及區(qū)塊鏈管理系統(tǒng)與流程

文檔序號:11476359閱讀:258來源:國知局
一種區(qū)塊鏈的跨鏈操作方法及區(qū)塊鏈管理系統(tǒng)與流程

本發(fā)明涉及區(qū)塊鏈技術(shù)領(lǐng)域,更具體的,涉及一種區(qū)塊鏈的跨鏈操作方法及區(qū)塊鏈管理系統(tǒng)。



背景技術(shù):

區(qū)塊鏈?zhǔn)且环N使用共識機(jī)制的分布式數(shù)據(jù)存儲技術(shù),具有去中心化,不可篡改,可以運(yùn)行智能合約等特性。區(qū)塊鏈技術(shù)的出現(xiàn)為數(shù)據(jù)存儲提供了新的解決方案。

為了保護(hù)機(jī)構(gòu)內(nèi)部數(shù)據(jù)和避免數(shù)據(jù)泄漏,很多機(jī)構(gòu)都運(yùn)行著自己的區(qū)塊鏈。而對于跨機(jī)構(gòu)的區(qū)塊鏈操作,傳統(tǒng)的方法是在所有參與機(jī)構(gòu)間部署聯(lián)盟鏈(或者私有鏈)。這樣雖然可以解決多機(jī)構(gòu)間的數(shù)據(jù)操作的問題,但是由于機(jī)構(gòu)間的業(yè)務(wù)邏輯不同,數(shù)據(jù)格式的差異等,替換機(jī)構(gòu)各自的區(qū)塊鏈而部署新的聯(lián)盟鏈的實(shí)施代價(jià)大。由于區(qū)塊鏈的數(shù)據(jù)存在于系統(tǒng)中的每個(gè)節(jié)點(diǎn)中,一些對于數(shù)據(jù)隱私要求高,且對安全敏感的機(jī)構(gòu)并不愿意把數(shù)據(jù)部署在聯(lián)盟鏈上,這些機(jī)構(gòu)使用的還是各自的私有鏈。私有鏈的孤立性阻礙了不同區(qū)塊鏈之間的協(xié)同操作,所以區(qū)塊鏈之間的跨鏈協(xié)作問題成為了區(qū)塊鏈技術(shù)發(fā)展面臨的一個(gè)主要問題。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明提供了一種區(qū)塊鏈的跨鏈操作方法及區(qū)塊鏈管理系統(tǒng),通過將參與跨鏈操作的各個(gè)機(jī)構(gòu)提供的各自區(qū)塊鏈的資源鎖操作、原始操作和逆操作進(jìn)行封裝,保證了跨鏈操作的原子性(atomicity),一致性(consistency),隔離性(isolation)和持久性(durability),即:acid,使得各個(gè)機(jī)構(gòu)在保留原有區(qū)塊鏈系統(tǒng)的情況下就能實(shí)現(xiàn)跨鏈操作。區(qū)塊鏈管理系統(tǒng)可以通過所述的跨鏈操作對區(qū)塊鏈進(jìn)行管理和控制。

具體技術(shù)方案如下:

一種區(qū)塊鏈的跨鏈操作方法,應(yīng)用于區(qū)塊鏈管理系統(tǒng),所述方法包括:

獲取參與跨鏈操作的各個(gè)機(jī)構(gòu)提供的各自區(qū)塊鏈的操作信息,所述操作信息包括:資源鎖操作、原始操作,以及與所述原始操作對應(yīng)的逆操作;

按照所述跨鏈操作的業(yè)務(wù)邏輯,確定各個(gè)所述操作信息中的多個(gè)原始操作的執(zhí)行順序;

執(zhí)行各個(gè)所述資源鎖操作,對參與所述跨鏈操作的各個(gè)機(jī)構(gòu)的資源進(jìn)行鎖定;

按照所述跨鏈操作中的各個(gè)所述原始操作的執(zhí)行順序,依次執(zhí)行各個(gè)所述原始操作,在各個(gè)所述原始操作的執(zhí)行過程中判斷是否滿足跨鏈操作失敗條件;

若滿足,執(zhí)行與已執(zhí)行的所述原始操作相對應(yīng)的逆操作,當(dāng)所有的逆操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源;

若不滿足,當(dāng)所述跨鏈操作中的所有原始操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源。

優(yōu)選的,所述資源鎖操作包括資源鎖定范圍,所述資源鎖定范圍為參與所述跨鏈操作的機(jī)構(gòu)中的交易方所擁有的所有資源,或參與所述跨鏈操作的機(jī)構(gòu)中的交易方中只涉及所述跨鏈操作的資源。

可選的,所述資源鎖操作包括資源鎖定時(shí)效;

所述跨鏈操作失敗條件為當(dāng)前執(zhí)行跨鏈操作的時(shí)間大于各個(gè)所述機(jī)構(gòu)中任一機(jī)構(gòu)的資源鎖定時(shí)效。

可選的,所述跨鏈操作失敗條件為接收到各個(gè)所述機(jī)構(gòu)中任一機(jī)構(gòu)的操作失敗信息。

優(yōu)選的,所述執(zhí)行與已執(zhí)行的原始操作相對應(yīng)的逆操作,包括:

當(dāng)所述已執(zhí)行的原始操作的數(shù)量為1時(shí),直接執(zhí)行與已執(zhí)行的原始操作相對應(yīng)的逆操作;

當(dāng)所述已執(zhí)行的原始操作的數(shù)量大于1時(shí),獲取已執(zhí)行的各個(gè)原始操作的執(zhí)行順序的倒序,并按照所述倒序依次執(zhí)行與各個(gè)所述原始操作相對應(yīng)的逆操作。

優(yōu)選的,所述方法還包括:

按照所述跨鏈操作的各個(gè)所述資源鎖操作、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作的執(zhí)行順序,將所述跨鏈操作的各個(gè)所述資源鎖操作、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作,以及各個(gè)操作的執(zhí)行狀態(tài)記錄在日志鏈中,所述執(zhí)行狀態(tài)包括:執(zhí)行成功和執(zhí)行失敗。

優(yōu)選的,所述日志鏈為一個(gè)區(qū)塊鏈系統(tǒng)。

優(yōu)選的,所述獲取已執(zhí)行的各個(gè)原始操作的執(zhí)行順序的倒序,并按照所述倒序依次執(zhí)行與各個(gè)所述原始操作相對應(yīng)的逆操作,包括:

從所述日志鏈中獲取已執(zhí)行的各個(gè)所述原始操作的執(zhí)行順序和執(zhí)行狀態(tài);

根據(jù)已執(zhí)行的各個(gè)所述原始操作的執(zhí)行順序確定已執(zhí)行的各個(gè)所述原始操作的倒序;

按照已執(zhí)行的各個(gè)所述原始操作的倒序,依次執(zhí)行與各個(gè)所述原始操作相對應(yīng)的逆操作。

優(yōu)選的,所述方法還包括:

接收用戶對日志鏈的查詢請求,根據(jù)所述用戶的權(quán)限和所述查詢請求在所述日志鏈中對已執(zhí)行的跨鏈操作進(jìn)行查詢,并將查詢結(jié)果發(fā)送至所述用戶。

一種區(qū)塊鏈管理系統(tǒng),包括:

獲取單元,用于獲取參與跨鏈操作的各個(gè)機(jī)構(gòu)提供的各自區(qū)塊鏈的操作信息,所述操作信息包括:資源鎖操作、原始操作,以及與所述原始操作對應(yīng)的逆操作;

確定單元,用于按照所述跨鏈操作的業(yè)務(wù)邏輯,確定各個(gè)所述操作信息中的多個(gè)原始操作的執(zhí)行順序;

鎖定單元,用于執(zhí)行各個(gè)所述資源鎖操作,對參與所述跨鏈操作的各個(gè)機(jī)構(gòu)所需的資源進(jìn)行鎖定;

第一執(zhí)行單元,用于按照所述跨鏈操作中的各個(gè)所述原始操作的執(zhí)行順序,依次執(zhí)行各個(gè)所述原始操作,在各個(gè)所述原始操作的執(zhí)行過程中判斷是否滿足跨鏈操作失敗條件;若滿足,觸發(fā)第二執(zhí)行單元;若不滿足,觸發(fā)第三執(zhí)行單元;

所述第二執(zhí)行單元,用于執(zhí)行與已執(zhí)行的所述原始操作相對應(yīng)的逆操作,當(dāng)所有的逆操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源;

所述第三執(zhí)行單元,用于當(dāng)所述跨鏈操作中的所有原始操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源。

優(yōu)選的,所述區(qū)塊鏈管理系統(tǒng)還包括:

記錄單元,用于按照所述跨鏈操作的各個(gè)所述資源鎖操作、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作的執(zhí)行順序,將所述跨鏈操作的各個(gè)所述資源鎖操作、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作,以及各個(gè)操作的執(zhí)行狀態(tài)記錄在日志鏈中,所述執(zhí)行狀態(tài)包括:執(zhí)行成功和執(zhí)行失敗。

優(yōu)選的,所述區(qū)塊鏈管理系統(tǒng)還包括:

查詢單元,用于接收用戶對日志鏈的查詢請求,根據(jù)所述用戶的權(quán)限和所述查詢請求在所述日志鏈中對已執(zhí)行的跨鏈操作進(jìn)行查詢,并將查詢結(jié)果發(fā)送至所述用戶。

相對于現(xiàn)有技術(shù),本發(fā)明的有益效果如下:

本發(fā)明提供的區(qū)塊鏈的跨鏈操作方法及區(qū)塊鏈管理系統(tǒng),參與跨鏈操作的機(jī)構(gòu)只需提供各自區(qū)塊鏈的資源鎖操作、原始操作和逆操作,使得各個(gè)機(jī)構(gòu)在保持原有區(qū)塊鏈系統(tǒng)的情況下就能實(shí)現(xiàn)跨鏈操作,最小化了參與機(jī)構(gòu)在實(shí)現(xiàn)跨鏈操作需要付出的代價(jià),增強(qiáng)了本發(fā)明的實(shí)用性,且參與機(jī)構(gòu)的現(xiàn)有的業(yè)務(wù)邏輯和數(shù)據(jù)結(jié)構(gòu)無需變動,從而保證了參與機(jī)構(gòu)數(shù)據(jù)的獨(dú)立性。

本發(fā)明通過執(zhí)行資源鎖操作,對參與跨鏈操作的各個(gè)機(jī)構(gòu)的資源進(jìn)行鎖定,有效的防止了資源競爭問題。

本發(fā)明在各個(gè)原始操作的執(zhí)行過程中,若滿足跨鏈操作失敗條件,執(zhí)行與已執(zhí)行的所述原始操作相對應(yīng)的逆操作,并按照所述資源鎖定范圍執(zhí)行解鎖操作釋放已鎖定的資源,以“復(fù)原”已消耗的資源,使得參與跨鏈操作的相關(guān)資源可以“回滾”到執(zhí)行跨鏈操作之前的狀態(tài),從而保證了跨鏈操作的原子性、一致性、獨(dú)立性和持久性。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1為本發(fā)明實(shí)施例一公開的一種區(qū)塊鏈的跨鏈操作方法流程圖;

圖2為本發(fā)明實(shí)施例三公開的一種區(qū)塊鏈管理系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

實(shí)施例一

請參閱圖1,本實(shí)施例公開了一種區(qū)塊鏈的跨鏈操作方法,應(yīng)用于區(qū)塊鏈管理系統(tǒng),具體包括以下步驟:

s101:獲取參與跨鏈操作的各個(gè)機(jī)構(gòu)提供的各自區(qū)塊鏈的操作信息,所述操作信息包括:資源鎖操作、原始操作,以及與所述原始操作對應(yīng)的逆操作;

跨鏈操作是指在多個(gè)區(qū)塊鏈之間進(jìn)行的操作,跨鏈操作是將分散著的區(qū)塊鏈孤島連接起來的橋梁,常見的跨鏈操作是不同區(qū)塊鏈之間的資源訪問和資源轉(zhuǎn)移等操作,本實(shí)施例提供的區(qū)塊鏈的跨鏈操作方法適用于所有區(qū)塊鏈,包括同構(gòu)或異構(gòu)區(qū)塊鏈、私有鏈、聯(lián)盟鏈和公有鏈等。

跨鏈操作可能涉及多個(gè)參與機(jī)構(gòu),每個(gè)參與機(jī)構(gòu)都有各自的區(qū)塊鏈。跨鏈操作可能涉及多個(gè)原始操作,在一個(gè)跨鏈操作中,每個(gè)參與機(jī)構(gòu)都可能涉及若干個(gè)原始操作。

各個(gè)機(jī)構(gòu)提供的各自區(qū)塊鏈的操作信息包括:資源鎖操作、原始操作,以及與所述原始操作對應(yīng)的逆操作。其中,逆操作是相對于原始操作來說的,例如,跨鏈操作可能涉及交易和查詢等操作,以從a鏈的a賬戶轉(zhuǎn)移數(shù)量50到b鏈的b賬戶為例,即:froma.atob.bamount50,其中,大寫的a表示鏈名,小寫的a表示交易方。在鏈a上,原始操作等價(jià)于將a賬戶的賬本減少50,與原始操作相對應(yīng)的逆操作則為a賬戶增加50;同理,在鏈b上,原始操作為對b賬戶的賬本增加50,逆操作則為b賬戶減少50。當(dāng)原始操作為不改變數(shù)據(jù)的操作的時(shí)候(例如:查詢操作)是沒有對應(yīng)的逆操作的。

參與跨鏈操作的機(jī)構(gòu)只需提供各自區(qū)塊鏈的資源鎖操作、原始操作,以及與所述原始操作對應(yīng)的逆操作,使各個(gè)機(jī)構(gòu)在保持原有區(qū)塊鏈系統(tǒng)的情況下就能實(shí)現(xiàn)跨鏈操作,最小化了參與機(jī)構(gòu)在實(shí)現(xiàn)跨鏈操作需要付出的代價(jià),增強(qiáng)了本發(fā)明的實(shí)用性。

s102:按照所述跨鏈操作的業(yè)務(wù)邏輯,確定各個(gè)所述操作信息中的多個(gè)原始操作的執(zhí)行順序;

按照所述業(yè)務(wù)邏輯,可以將跨鏈操作分解為有順序的多個(gè)原始操作。

s103:執(zhí)行各個(gè)所述資源鎖操作,對參與所述跨鏈操作的各個(gè)機(jī)構(gòu)的資源進(jìn)行鎖定;

跨鏈操作可能涉及多種資源,在執(zhí)行跨鏈操作時(shí)將跨鏈操作涉及的各種資源鎖定在所述跨鏈操作中,保證跨鏈操作涉及的各種資源只在跨鏈操作中使用,防止資源競爭問題。

優(yōu)選的,所述資源鎖操作包括資源鎖定范圍。

所述資源鎖定范圍為參與所述跨鏈操作的機(jī)構(gòu)中的交易方所擁有的所有資源,或參與所述跨鏈操作的機(jī)構(gòu)中的交易方中只涉及所述跨鏈操作的資源。

為了對所述資源鎖定范圍做進(jìn)一步說明,現(xiàn)舉例說明如下:

參與跨鏈操作的機(jī)構(gòu)包括a、b、c,每個(gè)參與機(jī)構(gòu)中可以包括多個(gè)交易方,其中,參與機(jī)構(gòu)a中在所述跨鏈操作中的交易方a所擁有的全部資源為1000,所述跨鏈操作中交易方a涉及的資源為50。根據(jù)參與機(jī)構(gòu)的需要,參與機(jī)構(gòu)a在提供資源鎖定范圍時(shí),資源鎖定范圍可以為交易方a所擁有的全部資源為1000,也可以為所述跨鏈操作中交易方a涉及的資源為50。

若資源鎖定范圍為參與所述跨鏈操作的機(jī)構(gòu)中交易方所擁有的所有資源,這種鎖定資源的方式實(shí)現(xiàn)最為簡單,但是由于交易方的資源全部被鎖定,參與所述跨鏈操作的機(jī)構(gòu)必須等待跨鏈操作結(jié)束,資源被釋放后才能再次使用相關(guān)資源。

若資源鎖定范圍為參與所述跨鏈操作的機(jī)構(gòu)中的交易方中只涉及所述跨鏈操作的資源,相對于上述鎖定資源的方式,這種鎖定資源的方式需要先構(gòu)建相關(guān)資源(如上述例子中的50),再對資源進(jìn)行鎖定,實(shí)現(xiàn)較為復(fù)雜,但是參與所述跨鏈操作的機(jī)構(gòu)能使用跨鏈操作涉及的資源外的其他資源進(jìn)行其他操作,使資源使用更加靈活。

當(dāng)然,下面資源解鎖的范圍是根據(jù)資源鎖定范圍而定的。

s104:按照所述跨鏈操作中的各個(gè)所述原始操作的執(zhí)行順序,依次執(zhí)行各個(gè)所述原始操作,在各個(gè)所述原始操作的執(zhí)行過程中判斷是否滿足跨鏈操作失敗條件;若是,執(zhí)行s105;若否,執(zhí)行s106;

本實(shí)施例中,導(dǎo)致操作失敗有兩種條件,其中一種跨鏈操作失敗條件為接收到各個(gè)所述機(jī)構(gòu)中任一機(jī)構(gòu)的操作失敗信息??珂湶僮魃婕岸鄠€(gè)參與機(jī)構(gòu),雖然每個(gè)機(jī)構(gòu)可以確定自己操作成功或失敗,但是卻無法知道其他機(jī)構(gòu)的操作成功或失敗,但是只要各個(gè)參與機(jī)構(gòu)中任一機(jī)構(gòu)的任一原始操作失敗,跨鏈操作就操作失敗,所以本實(shí)施例引入二階段提交算法(doublecommit),以區(qū)塊鏈管理系統(tǒng)為第三方充當(dāng)“協(xié)調(diào)者”的角色,參與機(jī)構(gòu)充當(dāng)“參與者”的角色,區(qū)塊鏈管理系統(tǒng)可以根據(jù)參與機(jī)構(gòu)的原始操作的成功和失敗信息,指導(dǎo)跨鏈操作。

可選的,s101中各個(gè)機(jī)構(gòu)提供的各自區(qū)塊鏈的資源鎖操作還包括資源鎖定時(shí)效,資源鎖定時(shí)效是參與機(jī)構(gòu)允許資源被鎖定的最大時(shí)間,資源鎖定時(shí)效由跨鏈操作的原始操作來決定,可以理解的是,當(dāng)跨鏈操作包括的原始操作數(shù)量較多且操作復(fù)雜時(shí),需要的資源鎖定時(shí)效可能較長。因此,參與機(jī)構(gòu)可以根據(jù)跨鏈操作的業(yè)務(wù)邏輯自行確定資源鎖定時(shí)效,并將確定的資源鎖定時(shí)效提供給區(qū)塊鏈管理系統(tǒng)。

在操作信息包括資源鎖定時(shí)效的基礎(chǔ)上,另外一種跨鏈操作失敗條件為當(dāng)前執(zhí)行跨鏈操作的時(shí)間大于各個(gè)所述機(jī)構(gòu)中任一機(jī)構(gòu)的資源鎖定時(shí)效。也就是說,區(qū)塊鏈管理系統(tǒng)會實(shí)時(shí)對當(dāng)前執(zhí)行跨鏈操作的時(shí)間進(jìn)行檢測,當(dāng)前執(zhí)行跨鏈操作的時(shí)間只要大于參與機(jī)構(gòu)中任一機(jī)構(gòu)提供的資源鎖定時(shí)效時(shí),跨鏈操作失敗。

s105:執(zhí)行與已執(zhí)行的所述原始操作相對應(yīng)的逆操作,當(dāng)所有的逆操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源;

需要說明的是,當(dāng)所述已執(zhí)行的原始操作的數(shù)量為1時(shí),直接執(zhí)行與已執(zhí)行的原始操作相對應(yīng)的逆操作;

當(dāng)所述已執(zhí)行的原始操作的數(shù)量大于1時(shí),獲取已執(zhí)行的各個(gè)原始操作的倒序,并按照所述倒序依次執(zhí)行與各個(gè)所述原始操作相對應(yīng)的逆操作。

當(dāng)所有的逆操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源。

可以理解的是,在各個(gè)原始操作的執(zhí)行過程中,若滿足跨鏈操作失敗條件,執(zhí)行與已執(zhí)行的所述原始操作相對應(yīng)的逆操作,并執(zhí)行解鎖操作釋放已鎖定的資源,以“復(fù)原”已消耗的資源,使得跨鏈操作中所涉及的資源可以“回滾”到執(zhí)行跨鏈操作之前的狀態(tài),從而保證了跨鏈操作的原子性。

s106:當(dāng)所述跨鏈操作中的所有原始操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源。

需要說明的是,在實(shí)現(xiàn)跨鏈操作時(shí),各個(gè)參與機(jī)構(gòu)現(xiàn)有的區(qū)塊鏈系統(tǒng)還可以正常運(yùn)行,參與機(jī)構(gòu)在訪問自己區(qū)塊鏈執(zhí)行操作時(shí),完全獨(dú)立于其他參與機(jī)構(gòu)的區(qū)塊鏈系統(tǒng),只有少數(shù)被鎖定的資源會受到限制,但是同時(shí)參與跨鏈操作的機(jī)構(gòu)可以自行定義資源鎖定的時(shí)效和范圍,這種機(jī)制最大程度的保證了資源使用的靈活性,而其余資源并不會受到跨鏈操作或者其他參與機(jī)構(gòu)的影響,從而保證了多個(gè)區(qū)塊鏈系統(tǒng)之間業(yè)務(wù)的獨(dú)立性。

本實(shí)施例提供的區(qū)塊鏈的跨鏈操作方法,參與跨鏈操作的機(jī)構(gòu)只需提供各自區(qū)塊鏈的資源鎖操作、原始操作和逆操作,使得各個(gè)機(jī)構(gòu)在保持原有區(qū)塊鏈系統(tǒng)的情況下就能實(shí)現(xiàn)跨鏈操作,最小化了參與機(jī)構(gòu)在實(shí)現(xiàn)跨鏈操作需要付出的代價(jià),增強(qiáng)了本發(fā)明的實(shí)用性,且參與機(jī)構(gòu)的所有業(yè)務(wù)邏輯和數(shù)據(jù)結(jié)構(gòu)都無需變動,從根本上保證了參與機(jī)構(gòu)數(shù)據(jù)的獨(dú)立性。

本實(shí)施例按照參與跨鏈操作的機(jī)構(gòu)提供的資源鎖操作,對參與跨鏈操作的各個(gè)機(jī)構(gòu)的資源進(jìn)行鎖定,有效的防止了資源競爭問題;在各個(gè)原始操作的執(zhí)行過程中,若滿足跨鏈操作失敗條件,執(zhí)行與已執(zhí)行的所述原始操作相對應(yīng)的逆操作,然后執(zhí)行解鎖操作釋放已鎖定的資源,以“復(fù)原”已消耗的資源,使得跨鏈操作所涉及的資源可以“回滾”到執(zhí)行跨鏈操作之前的狀態(tài),從而保證了跨鏈操作的原子性。

實(shí)施例二

在實(shí)施例一的基礎(chǔ)上,本實(shí)施例公開的區(qū)塊鏈的跨鏈操作方法還包括:

按照所述跨鏈操作的各個(gè)所述資源鎖操作、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作的執(zhí)行順序,將所述跨鏈操作的各個(gè)所述資源鎖操作、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作,以及各個(gè)操作的執(zhí)行狀態(tài)記錄在日志鏈中,所述執(zhí)行狀態(tài)包括:執(zhí)行成功和執(zhí)行失敗。

需要說明的是,日志鏈?zhǔn)且粋€(gè)區(qū)塊鏈系統(tǒng),日志鏈中只記錄跨鏈操作中的各個(gè)所述資源鎖資源、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作的執(zhí)行順序,各個(gè)所述原始操作和/或與所述原始操作相對應(yīng)的逆操作,以及各個(gè)操作的執(zhí)行狀態(tài),而具體數(shù)據(jù)記錄在參與機(jī)構(gòu)的區(qū)塊鏈上,即,日志鏈只記錄操作和狀態(tài),而參與跨鏈操作的機(jī)構(gòu)的區(qū)塊鏈記錄結(jié)果。所以不能從日志鏈中獲取或改動參與機(jī)構(gòu)的任何數(shù)據(jù),從而保證了參與機(jī)構(gòu)的區(qū)塊鏈在根本上是隔離的,不會存在數(shù)據(jù)泄露的問題,保證了數(shù)據(jù)的安全性和隱私性。

基于上述的日志鏈記錄操作,實(shí)施例一中,“獲取已執(zhí)行的各個(gè)原始操作的倒序,并按照所述倒序依次執(zhí)行與各個(gè)所述原始操作相對應(yīng)的逆操作”,包括:

從所述日志鏈中獲取已執(zhí)行的各個(gè)所述原始操作的執(zhí)行順序和執(zhí)行狀態(tài);

根據(jù)已執(zhí)行的各個(gè)所述原始操作的執(zhí)行順序確定已執(zhí)行的各個(gè)所述原始操作的倒序;

按照已執(zhí)行的各個(gè)所述原始操作的倒序,依次執(zhí)行與各個(gè)所述原始操作相對應(yīng)的逆操作。

還需要說明的是,基于上述日志鏈記錄操作,本實(shí)施例公開的區(qū)塊鏈的跨鏈操作方法還包括:

接收用戶對日志鏈的查詢請求,根據(jù)所述用戶的權(quán)限和所述查詢請求在所述日志鏈中對已執(zhí)行的跨鏈操作進(jìn)行查詢,并將查詢結(jié)果發(fā)送至所述用戶。

這里的用戶可以是參與機(jī)構(gòu)中的人員,參與機(jī)構(gòu)可以通過日志鏈查詢跨鏈操作中涉及到參與機(jī)構(gòu)的操作。而非直接參與跨鏈操作的機(jī)構(gòu)或用戶訪問日志鏈的權(quán)限是由參與跨鏈操作的參與機(jī)構(gòu)共同決定的。

實(shí)施例三

基于上述實(shí)施例公開的區(qū)塊鏈的跨鏈操作方法,請參閱圖2,本實(shí)施例對應(yīng)公開一種區(qū)塊鏈管理系統(tǒng),包括:

獲取單元101,用于獲取參與跨鏈操作的各個(gè)機(jī)構(gòu)提供的各自區(qū)塊鏈的操作信息,所述操作信息包括:資源鎖操作、原始操作,以及與所述原始操作對應(yīng)的逆操作;

確定單元102,用于按照所述跨鏈操作的業(yè)務(wù)邏輯,確定各個(gè)所述操作信息中的多個(gè)原始操作的執(zhí)行順序;

鎖定單元103,用于執(zhí)行各個(gè)所述資源鎖操作,對參與所述跨鏈操作的各個(gè)機(jī)構(gòu)所需的資源進(jìn)行鎖定;

第一執(zhí)行單元104,用于按照所述跨鏈操作中的各個(gè)所述原始操作的執(zhí)行順序,依次執(zhí)行各個(gè)所述原始操作,在各個(gè)所述原始操作的執(zhí)行過程中判斷是否滿足跨鏈操作失敗條件;若滿足,觸發(fā)第二執(zhí)行單元105;若不滿足,觸發(fā)第三執(zhí)行單元106;

所述第二執(zhí)行單元105,用于執(zhí)行與已執(zhí)行的所述原始操作相對應(yīng)的逆操作,當(dāng)所有的逆操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源;

所述第三執(zhí)行單元106,用于當(dāng)所述跨鏈操作中的所有原始操作都執(zhí)行完畢時(shí),執(zhí)行解鎖操作釋放已鎖定的資源。

優(yōu)選的,所述區(qū)塊鏈管理系統(tǒng)還包括:

記錄單元,用于按照所述跨鏈操作的各個(gè)所述資源鎖操作、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作的執(zhí)行順序,將所述跨鏈操作的各個(gè)所述資源鎖操作、所述原始操作和/或與所述原始操作相對應(yīng)的逆操作,以及各個(gè)操作的執(zhí)行狀態(tài)記錄在日志鏈中,所述執(zhí)行狀態(tài)包括:執(zhí)行成功和執(zhí)行失敗。

查詢單元,用于接收用戶對日志鏈的查詢請求,根據(jù)所述用戶的權(quán)限和所述查詢請求在所述日志鏈中對已執(zhí)行的跨鏈操作進(jìn)行查詢,并將查詢結(jié)果發(fā)送至所述用戶。

本實(shí)施例提供的區(qū)塊鏈管理系統(tǒng),參與跨鏈操作的機(jī)構(gòu)只需提供各自區(qū)塊鏈的資源鎖操作、原始操作和逆操作,使得各個(gè)機(jī)構(gòu)在保持原有區(qū)塊鏈系統(tǒng)的情況下就能實(shí)現(xiàn)跨鏈操作,最小化了參與機(jī)構(gòu)在實(shí)現(xiàn)跨鏈操作需要付出的代價(jià),增強(qiáng)了本發(fā)明的實(shí)用性,且參與機(jī)構(gòu)的現(xiàn)有業(yè)務(wù)邏輯和數(shù)據(jù)結(jié)構(gòu)無需變動,從而保證參與機(jī)構(gòu)數(shù)據(jù)的獨(dú)立性。

本實(shí)施例按照參與跨鏈操作的機(jī)構(gòu)提供的資源鎖操作,對參與跨鏈操作的各個(gè)機(jī)構(gòu)的資源進(jìn)行鎖定,有效的防止了資源競爭問題;在各個(gè)原始操作的執(zhí)行過程中,若滿足跨鏈操作失敗條件,執(zhí)行與已執(zhí)行的所述原始操作相對應(yīng)的逆操作,然后執(zhí)行解鎖操作釋放已鎖定的資源,以“復(fù)原”已消耗的資源,使得跨鏈操作中所涉及的資源可以“回滾”到執(zhí)行跨鏈操作之前的狀態(tài),從而保證了跨鏈操作的原子性。

對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
土默特左旗| 竹山县| 桐庐县| 永和县| 姚安县| 景东| 方正县| 宽城| 贡觉县| 绥阳县| 商水县| 延庆县| 滕州市| 灵寿县| 崇左市| 江山市| 曲周县| 隆尧县| 安化县| 抚松县| 马尔康县| 隆林| 潼南县| 广东省| 古田县| 郓城县| 中牟县| 浪卡子县| 绥芬河市| 交城县| 集贤县| 云阳县| 苏尼特右旗| 锡林郭勒盟| 施甸县| 西林县| 阳江市| 鄂尔多斯市| 内乡县| 方山县| 新安县|