CN110689435B - 基于区块链的数据处理方法及数据处理系统 - Google Patents
基于区块链的数据处理方法及数据处理系统 Download PDFInfo
- Publication number
- CN110689435B CN110689435B CN201910923074.5A CN201910923074A CN110689435B CN 110689435 B CN110689435 B CN 110689435B CN 201910923074 A CN201910923074 A CN 201910923074A CN 110689435 B CN110689435 B CN 110689435B
- Authority
- CN
- China
- Prior art keywords
- information
- transaction
- controller
- cross
- actuator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Abstract
本发明提供了一种数据处理方法,包括通过搬运节点构造交易信息组,将交易信息组传输给控制器发起跨链交易,交易信息组包括至少一个交易信息,交易信息包括执行器地址信息,搬运节点根据执行器地址信息将交易信息传输给执行器,执行器对交易信息进行第一合法性判断处理,根据合法的交易信息执行交易处理得到执行结果信息,搬运节点读取执行结果信息传输给控制器,控制器对执行结果信息进行第二合法性判断处理,根据合法的执行结果判断跨链交易执行成功得到承诺信息,搬运节点读取承诺信息输给执行器进行落账处理,控制器作为跨链事务的执行器,保证了多链间数据交互的一致性。本发明还提供用于实现所述数据处理方法的数据处理系统。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的数据处理方法及数据处理系统。
背景技术
现有的单链区块链系统是一个分布式架构系统,不同节点对同一数据按照一定的共识算法进行确认,并最终达成一致,从而保证数据的不可篡改性。
但现在的单链区块系统并没有涉及事务性操作的需求,主要是对不同节点间同一分数据的一致性进行确认,但现有区块链应用场景不断复杂化,可能涉及到不同链之间的事务性操作,现有单链区块系统则无法满足需求,无法保证多链间数据交互的一致性。
因此,有必要提供一种新型的基于区块链的数据处理方法以解决现有技术中存在的上述问题。
发明内容
本发明的目的在于提供一种基于区块链的数据处理方法及数据处理系统,避免多链间数据交互不一致性的问题。
为实现上述目的,本发明的所述数据处理方法,包括以下步骤:
S0:提供控制器、执行器和搬运节点;
S1:通过所述信息构造节点构造所述交易信息组,然后将所述交易信息组传输给所述控制器,以发起跨链交易,所述交易信息组包括至少一个交易信息,所述交易信息包括执行器地址信息;
S2:所述搬运节点从所述控制器读取所述交易信息,然后根据所述执行器地址信息将所述交易信息传输给所述执行器,所述执行器对所述交易信息进行第一合法性判断处理,然后所述执行器根据合法的所述交易信息执行交易处理,以得到执行结果信息;
S3:所述搬运节点从所有所述执行器读取所述执行结果信息,然后将所有所述执行结果信息传输给所述控制器;
S4:所述控制器对所有所述执行结果信息进行第二合法性判断处理,然后所述控制器根据所有合法的所述执行结果判断所述跨链交易是否执行成功,若所述跨链交易执行成功,则所述控制器生成承诺信息;
S5:所述搬运节点从所述控制器读取所述承诺信息,并将所述承诺信息传输给所述执行器,然后所述执行器根据所述承诺信息进行落账处理。
本发明的有益效果在于:所有所述跨链交易由所述控制器发起,由所述控制器通过所述搬运节点向所述执行器传输所述交易信息,由所述控制器通过所述搬运节点收集所述执行器的所述执行结果信息,以判断所述跨链交易是否执行成功,所述搬运节点作为所述控制器与所述执行器之间数据传递的桥梁,所述控制器作为跨链事务的执行器,保证了多链间数据交互的一致性。
优选地,所述交易信息还包括目标智能合约哈希值、智能合约方法和智能合约参数。
优选地,所述第一合法性判断处理为判断第一根哈希值与第二根哈希值是否相同。其有益效果在于:保证所述交易信息的合法性。
进一步优选地,当所述第一根哈希值与所述第二根哈希值相同,所述执行器判断所述交易信息合法。
进一步优选地,当所述第一根哈希值与所述第二根哈希值不相同,所述执行器判断所述交易信息不合法。
进一步优选地,当所述执行器判断所述交易信息不合法,所述跨链交易失败。
优选地,所述步骤S4包括,当所有所述执行结果均为成功,所述控制器判断所述跨链交易执行成功;
当所有所述执行结果中存在未成功的执行结果,所述控制器判断所述跨链交易执行失败。
进一步优选地,所述控制器判断所述跨链交易执行失败,则所述控制器产生回滚信息。
优选地,所述步骤S4中还包括,当所述控制器在时间阈值范围内未接收到所有所述执行结果信息,则所述控制器产生回滚信息。
进一步优选地,所述搬运节点从所述控制器读取所述回滚信息,然后将所述回滚信息传输给所有接收所述交易信息的执行器,所述所有接收所述交易信息的执行器根据所述回滚信息进行回滚处理。
本发明还提供了一种数据处理系统,所述数据处理系统包括搬运节点、控制器和执行器,所述搬运节点用于构建跨链交易信息组,以发起跨链交易,然后将所述交易信息组传输给所述控制器,所述交易信息组包括至少一个交易信息,所述交易信息包括执行器地址信息;所述搬运节点还用于从所述控制器读取所述交易信息,然后根据所述执行器地址信息将所述交易信息传输给所述执行器,还用于从所有所述执行器读取所述执行结果信息,然后将所有所述执行结果信息传输给所述控制器;所述控制器用于对所有所述执行结果信息进行第二合法性判断处理,然后根据所有合法的所述执行结果判断所述跨链交易是否执行成功,若所述跨链交易执行成功,则所述控制器生成承诺信息;所述执行器用于对所述交易信息进行第一合法性判断处理,然后根据合法的所述交易信息执行交易处理,以得到执行结果信息;所述执行器用于根据所述承诺信息进行落账处理。
所述数据处理系统的有益效果在于:所有所述跨链交易由所述控制器发起,并由所述控制器通过所述搬运节点向所述执行器传输所述交易信息,并由所述控制器通过所述搬运节点收集所述执行器的所述执行结果信息,以判断所述跨链交易是否执行成功,所述控制器作为跨链事务的执行器,保证了多链间数据交互的一致性。
附图说明
图1为本发明的数据处理方法的流程图;
图2为本发明的数据处理系统的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
针对现有技术存在的问题,本发明的实施例提供了一种数据处理方法,包括以下步骤:
S0:提供控制器、执行器和搬运节点;
S1:通过所述信息构造节点构造所述交易信息组,然后将所述交易信息组传输给所述控制器,以发起跨链交易,所述交易信息组包括至少一个交易信息,所述交易信息包括执行器地址信息;
S2:所述搬运节点从所述控制器读取所述交易信息,然后根据所述执行器地址信息将所述交易信息传输给所述执行器,所述执行器对所述交易信息进行第一合法性判断处理,然后所述执行器根据合法的所述交易信息执行交易处理,以得到执行结果信息;
S3:所述搬运节点从所有所述执行器读取所述执行结果信息,然后将所有所述执行结果信息传输给所述控制器;
S4:所述控制器对所有所述执行结果信息进行第二合法性判断处理,然后所述控制器根据所有合法的所述执行结果判断所述跨链交易是否执行成功,若所述跨链交易执行成功,则所述控制器生成承诺信息;
S5:所述搬运节点从所述控制器读取所述承诺信息,并将所述承诺信息传输给所述执行器,然后所述执行器根据所述承诺信息进行落账处理。
图2为本发明一些实施例中数据处理系统的结构框图。参照图2,所述数据处理系统10包括搬运节点11、控制器12和执行器13,所述搬运节点11用于构建跨链交易信息组,以发起跨链交易,然后将所述交易信息组传输给所述控制器12,所述交易信息组包括至少一个交易信息,所述交易信息包括执行器地址信息;所述搬运节点11还用于从所述控制器读取所述交易信息,然后根据所述执行器地址信息将所述交易信息传输给所述执行器13,还用于从所有所述执行器13读取所述执行结果信息,然后将所有所述执行结果信息传输给所述控制器12;所述控制器12用于对所有所述执行结果信息进行第二合法性判断处理,然后根据所有合法的所述执行结果判断所述跨链交易是否执行成功,若所述跨链交易执行成功,则所述控制器生成承诺信息;所述执行器13用于对所述交易信息进行第一合法性判断处理,然后根据合法的所述交易信息执行交易处理,以得到执行结果信息;所述执行器13用于根据所述承诺信息进行落账处理。
本发明的一些实施例中,所述交易信息还包括目标智能合约哈希值、智能合约方法和智能合约参数。
本发明的一些实施例中,所述搬运节点可以是任意节点。
本发明的一些实施例中,所述第一合法性判断处理为判断第一根哈希值与第二根哈希值是否相同。
本发明的一些实施例中,所述第二合法性判断处理与所述第一合法性判断处理相同。
本发明的一些实施例中,当所述第一根哈希值与所述第二根哈希值相同,所述执行器判断所述交易信息合法。
本发明的一些实施例中,当所述第一根哈希值与所述第二根哈希值不相同,所述执行器判断所述交易信息不合法。
本发明的一些实施例中,当所述执行器判断所述交易信息不合法,所述跨链交易失败,然后所述执行器通过所述搬运节点相所述控制器发送执行失败的结果信息。
本发明的一些具体实施例中,当源链节点向目标链节点传输跨链交易信息时,所述源链节点会产生一个跨链信息,所述搬运节点根据所述源链的同步节点中的所述跨链信息从所述源链读取默克尔证明信息,然后将所述默克尔证明信息传输给所述目标链节点,所述目标链节点根据所述默克尔证明信息生成所述第一根哈希值;所述目标链节点根据所述跨链信息中的高度从所述轻客户端节点中读取所述第二根哈希值,然后将所述第一根哈希值与所述第二根哈希值进行对比,以判断所述跨链交易信息是否合法,以完成合法性判断处理,其中,若所述第一根哈希值与所述第二根哈希值相同,则所述跨链交易信息合法,若所述第一根哈希值与所述第二根哈希值不相同,则所述跨链交易信息不合法。
本发明的一些具体实施例中,所述源链节点向所述目标节点传输所述跨链交易信息时,所述源链节点生成中间状态信息,默克尔树根据所述中间状态信息生成根哈希值,并将所述根哈希值存储在区块头中,在下一轮共识过程中,所有共识节点对所述状态根信息进行共识,以使所述根哈希值在所述区块头中落账,所述根哈希值即所述第二根哈希值。
本发明的一些具体实施例中,所述轻客户端节点为所述目标链节点中只同步所述源链节点中所述区块头的节点。
本发明的一些实施例中,在所述第一合法性判断处理中,所述控制器为所述源链节点,所述执行器为目标链节点,所述跨链交易信息为所述交易信息;在所述第二合法性判断处理中,所述执行器为所述源链节点,所述控制器为所述目标节点,所述跨链交易信息为所述执行结果信息。
本发明的一些实施例中,所述跨链信息中的高度为所述源链节点向目标链节点传输跨链交易信息时的区块高度。
本发明的一些实施例中,所述步骤S4包括,当所有所述执行结果均为成功,所述控制器判断所述跨链交易执行成功;
当所有所述执行结果中存在未成功的执行结果,所述控制器判断所述跨链交易执行失败。
本发明的一些实施例中,所述控制器判断所述跨链交易执行失败,所述控制器产生回滚信息。
本发明的一些实施例中,所述步骤S4中还包括,当所述控制器在时间阈值范围内未接收到所有所述执行结果信息,所述控制器产生回滚信息。
本发明的一些实施例中,所述搬运节点从所述控制器读取所述回滚信息,然后将所述回滚信息传输给所有接收所述交易信息的执行器,所述所有接收所述交易信息的执行器根据所述回滚信息进行回滚处理。
本发明的一些实施例中,所述回滚处理为所述控制器和所述执行器返回到发起所述跨链交易前的初始状态。
本发明的一些实施例中,所述源链和所述目标链均为区块链,所述区块链分为不同的等级,具体地所述区块链的等级分为1、2·····9、10级共10个等级,1级安全级别最低,10级安全等级最高,所述区块链组成的网络系统中存在安全阈值,具体地所述安全阈值为8级,当存在区块链作恶时,所述区块链组成的网络系统中等级低于8级的所述区块链进制进行所述跨链交易。
虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的实施方式,并且可通过多种方式实施或实现。
Claims (7)
1.一种基于区块链的数据处理方法,其特征在于,包括以下步骤:
S0:提供控制器、执行器和搬运节点;
S1:通过信息构造节点构造交易信息组,然后将所述交易信息组传输给所述控制器,以发起跨链交易,所述交易信息组包括至少一个交易信息,所述交易信息包括执行器地址信息;
S2:所述搬运节点从所述控制器读取所述交易信息,然后根据所述执行器地址信息将所述交易信息传输给所述执行器,所述执行器对所述交易信息进行第一合法性判断处理,然后所述执行器根据合法的所述交易信息执行交易处理,以得到执行结果信息;
S3:所述搬运节点从所有所述执行器读取所述执行结果信息,然后将所有所述执行结果信息传输给所述控制器;
S4:所述控制器对所有所述执行结果信息进行第二合法性判断处理,然后所述控制器根据所有合法的所述执行结果判断所述跨链交易是否执行成功,若所述跨链交易执行成功,则所述控制器生成承诺信息;
S5:所述搬运节点从所述控制器读取所述承诺信息,并将所述承诺信息传输给所述执行器,然后所述执行器根据所述承诺信息进行落账处理。
2.根据权利要求1所述的数据处理方法,其特征在于,所述交易信息还包括目标智能合约哈希值、智能合约方法和智能合约参数。
3.根据权利要求1所述的数据处理方法,其特征在于,所述步骤S4包括,当所有所述执行结果均为成功,所述控制器判断所述跨链交易执行成功;
当所有所述执行结果中存在未成功的执行结果,所述控制器判断所述跨链交易执行失败。
4.根据权利要求3所述的数据处理方法,其特征在于,所述控制器判断所述跨链交易执行失败,则所述控制器产生回滚信息。
5.根据权利要求1所述的数据处理方法,其特征在于,所述步骤S4中还包括,当所述控制器在时间阈值范围内未接收到所有所述执行结果信息,则所述控制器产生回滚信息。
6.根据权利要求4或5所述的数据处理方法,其特征在于,所述搬运节点从所述控制器读取所述回滚信息,然后将所述回滚信息传输给所有接收所述交易信息的执行器,所述所有接收所述交易信息的执行器根据所述回滚信息进行回滚处理。
7.一种数据处理系统,其特征在于,所述数据处理系统用于实现权利要求1-6任意一项所述的数据处理方法,所述数据处理系统包括搬运节点、控制器和执行器,
所述搬运节点用于构建跨链交易信息组,以发起跨链交易,然后将所述交易信息组传输给所述控制器,所述交易信息组包括至少一个交易信息,所述交易信息包括执行器地址信息;
所述搬运节点还用于从所述控制器读取所述交易信息,然后根据所述执行器地址信息将所述交易信息传输给所述执行器,还用于从所有所述执行器读取所述执行结果信息,然后将所有所述执行结果信息传输给所述控制器;
所述控制器用于对所有所述执行结果信息进行第二合法性判断处理,然后根据所有合法的所述执行结果判断所述跨链交易是否执行成功,若所述跨链交易执行成功,则所述控制器生成承诺信息;
所述执行器用于对所述交易信息进行第一合法性判断处理,然后根据合法的所述交易信息执行交易处理,以得到执行结果信息;
所述执行器用于根据所述承诺信息进行落账处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910713048X | 2019-08-02 | ||
CN201910713048 | 2019-08-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110689435A CN110689435A (zh) | 2020-01-14 |
CN110689435B true CN110689435B (zh) | 2022-05-27 |
Family
ID=69110660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910923074.5A Active CN110689435B (zh) | 2019-08-02 | 2019-09-27 | 基于区块链的数据处理方法及数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110689435B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464518B (zh) * | 2020-03-25 | 2022-08-05 | 北京新创智链科技有限公司 | 一种跨链通信数据的发送、验证方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107248074A (zh) * | 2017-03-29 | 2017-10-13 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务处理方法及设备 |
CN108009811A (zh) * | 2017-11-30 | 2018-05-08 | 中国人民解放军国防科技大学 | 一种面向云际计算环境价值交换的跨链通信方法 |
US10022614B1 (en) * | 2016-05-02 | 2018-07-17 | Bao Tran | Smart device |
CN108510251A (zh) * | 2018-03-30 | 2018-09-07 | 上海分赋信息科技有限公司 | 基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统 |
CN108600301A (zh) * | 2018-03-08 | 2018-09-28 | 青岛墨客区块链有限公司 | 一种区块链之间的跨链方法及主区块链 |
US10162968B1 (en) * | 2017-11-30 | 2018-12-25 | Mocana Corporation | System and method for securely updating a registered device using a development system and a release management system operated by an update provider and an update publisher |
CN109726251A (zh) * | 2018-12-28 | 2019-05-07 | 苏州鸿链信息科技有限公司 | 一种基于区块链开展的跨链分布式业务系统及方法 |
CN110020860A (zh) * | 2019-04-09 | 2019-07-16 | 湖南天河国云科技有限公司 | 一种跨链资产转移方法、系统及计算机可读存储介质 |
-
2019
- 2019-09-27 CN CN201910923074.5A patent/CN110689435B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10022614B1 (en) * | 2016-05-02 | 2018-07-17 | Bao Tran | Smart device |
CN107248074A (zh) * | 2017-03-29 | 2017-10-13 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务处理方法及设备 |
CN108009811A (zh) * | 2017-11-30 | 2018-05-08 | 中国人民解放军国防科技大学 | 一种面向云际计算环境价值交换的跨链通信方法 |
US10162968B1 (en) * | 2017-11-30 | 2018-12-25 | Mocana Corporation | System and method for securely updating a registered device using a development system and a release management system operated by an update provider and an update publisher |
CN108600301A (zh) * | 2018-03-08 | 2018-09-28 | 青岛墨客区块链有限公司 | 一种区块链之间的跨链方法及主区块链 |
CN108510251A (zh) * | 2018-03-30 | 2018-09-07 | 上海分赋信息科技有限公司 | 基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统 |
CN109726251A (zh) * | 2018-12-28 | 2019-05-07 | 苏州鸿链信息科技有限公司 | 一种基于区块链开展的跨链分布式业务系统及方法 |
CN110020860A (zh) * | 2019-04-09 | 2019-07-16 | 湖南天河国云科技有限公司 | 一种跨链资产转移方法、系统及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Blockchain based crowdfunding systems in Malaysian Perspective;Md. Nazmus Saadat,etal;《Proceedings of the 2019 11th International Conference on Computer and Automation Engineering》;20190223;57-61 * |
基于区块链的智能合约技术与应用综述;贺海武 等;《计算机研究与发展》;20181115;第55卷(第11期);2452-2466 * |
Also Published As
Publication number | Publication date |
---|---|
CN110689435A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110808838B (zh) | 一种面向联盟链的分片方法 | |
CN109919615B (zh) | 基于区块链的跨链数据交互方法及跨链数据交互系统 | |
US11336465B2 (en) | Sending cross-chain authenticatable messages | |
CN108269090B (zh) | 基于无协商随机抽签的用于区块链系统的共识方法和装置 | |
CN113268776B (zh) | 基于区块链的模型联合训练方法及装置 | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约系统 | |
CN111614468B (zh) | 一种区块链共识方法及系统 | |
CN110321074B (zh) | 基于区块链和分布式存储系统的安全存储证明的共识方法 | |
US20180365688A1 (en) | Transaction execution and validation in a blockchain | |
CN108984645B (zh) | 区块链处理方法、装置、设备及存储介质 | |
CN110222116B (zh) | 一种交易数据存储的控制方法、装置及存储介质 | |
CN109544332A (zh) | 一种基于用户等级的区块链交易出块的方法 | |
CN110287205A (zh) | 一种区块链跨分片交易数据处理方法及装置 | |
CN110599177A (zh) | 一种交易验证方法及相关设备 | |
CN110599174B (zh) | 一种区块链信息处理方法及相关设备 | |
CN110493345A (zh) | 基于区块链的物联网终端软件升级方法及系统 | |
CN112184436B (zh) | 数据同步方法、电子设备及可读存储介质 | |
CN114567643B (zh) | 跨区块链的数据流转方法、装置及相关设备 | |
Verdian et al. | Quant overledger whitepaper | |
CN110689435B (zh) | 基于区块链的数据处理方法及数据处理系统 | |
CN111008206A (zh) | 跨链交易的状态数据的存储方法、装置及存储介质 | |
CN115801407A (zh) | 异常节点屏蔽方法、装置、存储介质及目标节点 | |
CN107122675B (zh) | 一种基于区块链的数据库事务操作方法和系统 | |
CN113743949B (zh) | 在区块链中执行交易的方法、区块链、主节点和从节点 | |
CN110443616A (zh) | 基于随机门限签名机制的拜占庭容错共识方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |