CN112131235A - 一种区块链系统内交易可信校验实现方法 - Google Patents
一种区块链系统内交易可信校验实现方法 Download PDFInfo
- Publication number
- CN112131235A CN112131235A CN202010993452.XA CN202010993452A CN112131235A CN 112131235 A CN112131235 A CN 112131235A CN 202010993452 A CN202010993452 A CN 202010993452A CN 112131235 A CN112131235 A CN 112131235A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- chain
- chainroothash
- hash
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Databases & Information Systems (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Computing Systems (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链系统内交易可信校验实现方法。本发明基于默克尔树的交易上链验证可以使用户快速的验证交易是否已经被记录到区块链上,提高了交易上链的可信程度,省去了其他验证交易上链方式的繁复操作;本发明对于分布式部署的区块链系统节点,只需比较他们在同一个区块高度上的ChainRootHash即可确认所有节点的链数据是否一致。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种区块链系统内交易可信校验实现方法。
背景技术
现有区块链系统存在的问题为缺乏交易可信校验的功能。由于区块链系统是以链式存储来保证交易数据的安全性,因此,对用户而言如何校验交易数据被链式存储在区块链上显得至关重要。而现有区块链系统提供的部分查询接口,只能够提供单一的区块查询与交易数据查询,并没有提供一种有效的校验方法去证明某条交易确实被记录到链上。
发明内容
针对现有技术中的上述不足,本发明提供的一种区块链系统内交易可信校验实现方法解决了没有一种有效的校验方法去证明某条交易确实被记录到链上的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种区块链系统内交易可信校验实现方法,包括以下步骤:
S1、生成区块的默克尔树;
S2、根据区块的默克尔树生成区块链的默克尔树;
S3、基于区块链的默克尔树对区块链上的交易进行验证。
进一步地:所述步骤S1的具体步骤为:对区块增加Metadata扩展字段,并在Metadata扩展字段中存放链根hash及区块默克尔树;
所述区块默克尔树由区块中的交易计算得到,其中区块的默克尔树根hash为BlockRootHash。
进一步地:所述步骤S2的具体步骤为:利用区块建立区块链,区块链的ChainRootHash为ChainRootHash0,在第一个区块创建后,第一个区块的默克尔树根hash为BlockRootHash1,将ChainRootHash0和BlockRootHash1结合进行计算得到链的新根ChainRootHash1,并将BlockRootHash1和ChainRootHash1写入到一个区块的Metadata扩展字段中,对后续区块进行处理,直至处理到第N个区块;
其中,ChainRootHash为区块链的根hash,ChainRootHash0为第零个区块的DataHash。
进一步地:所述步骤S3的具体步骤为:
S31、通过区块链系统定期对外公布最新的ChainRootHash,通过用户输入已有信息到接口GrtHashPath,并返回给用户数据;
所述已有信息包括交易的hash和transactionID,所述transactionID为交易的ID;
S32、根据用户数据计算ChainRootHash′,如果ChainRootHash′与ChainRootHash相等,则该笔交易被真实的记录到了链上,否则,该笔交易没有被记录到链上;
所述ChainRootHash′为根据用户数据计算的链根Hash。
进一步地:所述区块链系统中有三个数据库,为存储区块数据的区块数据库BlockDB、存储已经公布过的根hash数据库ChainRootHash DB以及存储区块链上区块hash路径的区块hash路径数据库HashPath DB。
进一步地:所述Block DB上存储了所有交易生成的区块数据,每个区块数据中又包含了该区块内所有交易生成的默克尔树;用户使用交易ID进行hash路径查询,查询服务在接收到请求后先查询区块数据库,获取到交易ID所在的区块高度h和该交易ID在区块内的默克尔树hash路径tx_hashPath。
进一步地:所述ChainRootHash DB上存储了所有公布过的根hash和其对应的区块高度,在取得交易ID所在的区块高度h后对ChainRootHash DB进行查询,获取已经公布的根hash中距离区块高度h最近的区块高度H。
进一步地:所述HashPath DB终对区块链上由区块构成的hash路径进行了分段存储,根据取得交易ID所在的区块高度h和区块高度H对HashPath DB进行查询,获得区块高度h到区块高度H的hash路径block_h_H_hashPath。
进一步地:所述返回给用户的数据为tx_hashPath和block_h_H_hashPath组成的hashPath。
本发明的有益效果为:
(1)高效的交易上链验证。本发明基于默克尔树的交易上链验证可以使用户快速的验证交易是否已经被记录到区块链上,提高了交易上链的可信程度,省去了其他验证交易上链方式的繁复操作。
(2)分布式节点区块一致性的快速验证。本发明对于分布式部署的区块链系统节点,只需比较他们在同一个区块高度上的ChainRootHash即可确认所有节点的链数据是否一致。
附图说明
图1为本发明流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,一种区块链系统内交易可信校验实现方法,包括以下步骤:
S1、生成区块的默克尔树;
具体步骤为:对区块增加Metadata扩展字段,并在Metadata扩展字段中存放链根hash及区块默克尔树;
所述区块默克尔树由区块中的交易计算得到,其中区块的默克尔树根hash为BlockRootHash。
S2、根据区块的默克尔树生成区块链的默克尔树;
具体步骤为:利用区块建立区块链,区块链的根(ChainRootHash)为创世区块(第0个区块)的DataHash(ChainRootHash0),在第一个区块创建后,第一个区块的默克尔树根hash为BlockRootHash1,将ChainRootHash0和BlockRootHash1结合进行计算得到链的新根Hash(ChainRootHash1),并将BlockRootHash1和ChainRootHash1写入到一个区块的Metadata扩展字段中,对后续区块进行处理,直至处理到第N个区块;
其中,ChainRootHash为区块链的根hash,ChainRootHash0为第零个区块的DataHash。
S3、基于区块链的默克尔树对区块链上的交易进行验证。
具体步骤为:
S31、通过区块链系统定期对外公布最新的ChainRootHash,假设公布时的区块高度为100,ChainRootHash的版本为ChainRootHashX。公布数据的模板如下:
用户要查询某个交易是否被记录到了区块链系统上。通过用户输入已有信息到接口GrtHashPath,并返回给用户数据;所述已有信息包括交易的hash和transactionID,所述transactionID为交易的ID;GetHashPath接口的输入参数模板如下:
字段名 | 是否必填 | 字段说明 |
transactionID | 是 | 交易的ID |
hash | 是 | 交易的hash |
S32、根据用户数据计算链根Hash(ChainRootHash′),如果ChainRootHash′与ChainRootHash相等,则该笔交易被真实的记录到了链上,否则,该笔交易没有被记录到链上;GetHashPath接口的输出结果模板如下:
所述区块链系统中有三个数据库,为存储区块数据的区块数据库Block DB、存储已经公布过的根hash数据库ChainRootHash DB以及存储区块链上区块hash路径的区块hash路径数据库HashPath DB。
所述Block DB上存储了所有交易生成的区块数据,每个区块数据中又包含了该区块内所有交易生成的默克尔树;用户使用交易ID进行hash路径查询,查询服务在接收到请求后先查询区块数据库,获取到交易ID所在的区块高度h和该交易ID在区块内的默克尔树hash路径tx_hashPath。
所述ChainRootHash DB上存储了所有公布过的根hash和其对应的区块高度,在取得交易ID所在的区块高度h后对ChainRootHash DB进行查询,获取已经公布的根hash中距离区块高度h最近的区块高度H。
所述HashPath DB终对区块链上由区块构成的hash路径进行了分段存储,根据取得交易ID所在的区块高度h和区块高度H对HashPath DB进行查询,获得区块高度h到区块高度H的hash路径block_h_H_hashPath。
所述返回给用户的数据为tx_hashPath和block_h_H_hashPath组成的hashPath。
Claims (9)
1.一种区块链系统内交易可信校验实现方法,其特征在于,包括以下步骤:
S1、生成区块的默克尔树;
S2、根据区块的默克尔树生成区块链的默克尔树;
S3、基于区块链的默克尔树对区块链上的交易进行验证。
2.根据权利要求1所述的区块链系统内交易可信校验实现方法,其特征在于,所述步骤S1的具体步骤为:对区块增加Metadata扩展字段,并在Metadata扩展字段中存放链根hash及区块默克尔树;
所述区块默克尔树由区块中的交易计算得到,其中区块的默克尔树根hash为BlockRootHash。
3.根据权利要求1所述的区块链系统内交易可信校验实现方法,其特征在于,所述步骤S2的具体步骤为:利用区块建立区块链,区块链的ChainRootHash为ChainRootHash0,在第一个区块创建后,第一个区块的默克尔树根hash为BlockRootHash1,将ChainRootHash0和BlockRootHash1结合进行计算得到链的新根ChainRootHash1,并将BlockRootHash1和ChainRootHash1写入到一个区块的Metadata扩展字段中,对后续区块进行处理,直至处理到第N个区块;
其中,ChainRootHash为区块链的根hash,ChainRootHash0为第零个区块的DataHash。
4.根据权利要求3所述的区块链系统内交易可信校验实现方法,其特征在于,所述步骤S3的具体步骤为:
S31、通过区块链系统定期对外公布最新的ChainRootHash,通过用户输入已有信息到接口GrtHashPath,并返回给用户数据;
所述已有信息包括交易的hash和transactionID,所述transactionID为交易的ID;
S32、根据用户数据计算ChainRootHash′,如果ChainRootHash′与ChainRootHash相等,则该笔交易被真实的记录到了链上,否则,该笔交易没有被记录到链上;
所述ChainRootHash′为根据用户数据计算的链根Hash。
5.根据权利要求4所述的区块链系统内交易可信校验实现方法,其特征在于,所述区块链系统中有三个数据库,为存储区块数据的区块数据库Block DB、存储已经公布过的根hash数据库ChainRootHash DB以及存储区块链上区块hash路径的区块hash路径数据库HashPath DB。
6.根据权利要求5所述的区块链系统内交易可信校验实现方法,其特征在于,所述Block DB上存储了所有交易生成的区块数据,每个区块数据中又包含了该区块内所有交易生成的默克尔树;用户使用交易ID进行hash路径查询,查询服务在接收到请求后先查询区块数据库,获取到交易ID所在的区块高度h和该交易ID在区块内的默克尔树hash路径tx_hashPath。
7.根据权利要求6所述的区块链系统内交易可信校验实现方法,其特征在于,所述ChainRootHash DB上存储了所有公布过的根hash和其对应的区块高度,在取得交易ID所在的区块高度h后对ChainRootHash DB进行查询,获取已经公布的根hash中距离区块高度h最近的区块高度H。
8.根据权利要求7所述的区块链系统内交易可信校验实现方法,其特征在于,所述HashPath DB终对区块链上由区块构成的hash路径进行了分段存储,根据取得交易ID所在的区块高度h和区块高度H对HashPath DB进行查询,获得区块高度h到区块高度H的hash路径block_h_H_hashPath。
9.根据权利要求8所述的区块链系统内交易可信校验实现方法,其特征在于,所述返回给用户的数据为tx_hashPath和block_h_H_hashPath组成的hashPath。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993452.XA CN112131235A (zh) | 2020-09-21 | 2020-09-21 | 一种区块链系统内交易可信校验实现方法 |
PCT/CN2021/116849 WO2022057678A1 (zh) | 2020-09-21 | 2021-09-07 | 一种区块链系统内交易可信校验实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993452.XA CN112131235A (zh) | 2020-09-21 | 2020-09-21 | 一种区块链系统内交易可信校验实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112131235A true CN112131235A (zh) | 2020-12-25 |
Family
ID=73841707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010993452.XA Pending CN112131235A (zh) | 2020-09-21 | 2020-09-21 | 一种区块链系统内交易可信校验实现方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112131235A (zh) |
WO (1) | WO2022057678A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022057678A1 (zh) * | 2020-09-21 | 2022-03-24 | 中国电子科技网络信息安全有限公司 | 一种区块链系统内交易可信校验实现方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086067B (zh) * | 2022-07-19 | 2022-11-15 | 江西农业大学 | 一种数据处理方法、网关、传感器及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN109087101A (zh) * | 2018-08-07 | 2018-12-25 | 北京三快在线科技有限公司 | 交易校验方法、装置、存储介质及电子设备 |
CN109684375A (zh) * | 2018-12-07 | 2019-04-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN110175840A (zh) * | 2019-04-19 | 2019-08-27 | 华中科技大学 | 联盟链中实现轻钱包机制的方法、客户端、联盟链及系统 |
CN111080298A (zh) * | 2019-12-26 | 2020-04-28 | 电子科技大学 | 一种适用于能源区块链的区块生成与交易验证方法 |
CN111382164A (zh) * | 2020-03-06 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的业务处理方法 |
CN111415161A (zh) * | 2020-04-27 | 2020-07-14 | 财付通支付科技有限公司 | 基于区块链的数据验证方法、装置及计算机可读存储介质 |
CN111445236A (zh) * | 2019-11-14 | 2020-07-24 | 杭州复杂美科技有限公司 | 一种区块链交易验证方法、设备及存储介质 |
CN111596862A (zh) * | 2020-05-20 | 2020-08-28 | 南京如般量子科技有限公司 | 一种区块链历史交易数据自主优化方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10972279B2 (en) * | 2018-06-07 | 2021-04-06 | International Business Machines Corporation | Efficient validation for blockchain |
CN109408551B (zh) * | 2018-08-06 | 2021-07-06 | 杭州复杂美科技有限公司 | 数据查询方法及系统、共识方法及系统、设备和存储介质 |
US10951408B2 (en) * | 2018-09-05 | 2021-03-16 | Nec Corporation | Method and system for publicly verifiable proofs of retrievability in blockchains |
CN111640018B (zh) * | 2020-05-06 | 2021-08-03 | 深圳前海微众银行股份有限公司 | 一种区块链交易存在性验证方法及装置 |
CN112131235A (zh) * | 2020-09-21 | 2020-12-25 | 中国电子科技网络信息安全有限公司 | 一种区块链系统内交易可信校验实现方法 |
-
2020
- 2020-09-21 CN CN202010993452.XA patent/CN112131235A/zh active Pending
-
2021
- 2021-09-07 WO PCT/CN2021/116849 patent/WO2022057678A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN109087101A (zh) * | 2018-08-07 | 2018-12-25 | 北京三快在线科技有限公司 | 交易校验方法、装置、存储介质及电子设备 |
CN109684375A (zh) * | 2018-12-07 | 2019-04-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN110175840A (zh) * | 2019-04-19 | 2019-08-27 | 华中科技大学 | 联盟链中实现轻钱包机制的方法、客户端、联盟链及系统 |
CN111445236A (zh) * | 2019-11-14 | 2020-07-24 | 杭州复杂美科技有限公司 | 一种区块链交易验证方法、设备及存储介质 |
CN111080298A (zh) * | 2019-12-26 | 2020-04-28 | 电子科技大学 | 一种适用于能源区块链的区块生成与交易验证方法 |
CN111382164A (zh) * | 2020-03-06 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的业务处理方法 |
CN111415161A (zh) * | 2020-04-27 | 2020-07-14 | 财付通支付科技有限公司 | 基于区块链的数据验证方法、装置及计算机可读存储介质 |
CN111596862A (zh) * | 2020-05-20 | 2020-08-28 | 南京如般量子科技有限公司 | 一种区块链历史交易数据自主优化方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022057678A1 (zh) * | 2020-09-21 | 2022-03-24 | 中国电子科技网络信息安全有限公司 | 一种区块链系统内交易可信校验实现方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022057678A1 (zh) | 2022-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7765215B2 (en) | System and method for providing a trustworthy inverted index to enable searching of records | |
AU2005239366B2 (en) | Partial query caching | |
US8176088B2 (en) | Incremental cardinality estimation for a set of data values | |
US10140351B2 (en) | Method and apparatus for processing database data in distributed database system | |
CN107145537B (zh) | 一种表格数据导入方法及系统 | |
CN107085570B (zh) | 数据处理方法、应用服务器和路由器 | |
US8150836B2 (en) | System, method, and computer-readable medium for reducing row redistribution costs for parallel join operations | |
CN112131235A (zh) | 一种区块链系统内交易可信校验实现方法 | |
CN112579602B (zh) | 多版本数据存储方法、装置、计算机设备及存储介质 | |
CN106815326A (zh) | 一种检测无主键数据表一致性的系统及方法 | |
CN112256698B (zh) | 一种基于多哈希函数的表关系自动关联方法 | |
US11126751B2 (en) | Index creation for data records | |
US20090292704A1 (en) | Adaptive aggregation: improving the performance of grouping and duplicate elimination by avoiding unnecessary disk access | |
CN109597829B (zh) | 一种实现可搜索加密关系型数据库缓存的中间件方法 | |
CN110727693A (zh) | 访问异构数据库的方法、装置、设备、插件及存储介质 | |
WO2021057127A1 (zh) | 一种基于多条业务属性的数据存储方法、装置及设备 | |
CN110543495A (zh) | 游标遍历存储方法及装置 | |
CN110413631B (zh) | 一种数据查询方法及装置 | |
CN113704248B (zh) | 一种基于外置索引的区块链查询优化方法 | |
CN112948898A (zh) | 一种区块链中防止应用数据被篡改的方法和安全模块 | |
CN104050291A (zh) | 一种账户余额数据的并行处理方法和系统 | |
CN114647659A (zh) | 数据处理方法、装置、电子设备、存储介质 | |
CN103559272A (zh) | 向维度表里导入数据的方法和装置 | |
CN112860802A (zh) | 数据库操作语句的处理方法、装置及电子设备 | |
US11204933B2 (en) | Data manipulation record storage method, system, apparatus, and device |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201225 |
|
RJ01 | Rejection of invention patent application after publication |