Transaction processing method and device, equipment, readable storage medium and program product

By determining processing nodes in the Ethereum network and obtaining target state data from state nodes of transaction participants, the problem of inefficient transaction processing is solved and more efficient processing speed is achieved.

CN119652970AActive Publication Date: 2025-03-18CHINA TELECOM CLOUD TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202411738222.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-29
Publication Date
2025-03-18
Estimated Expiration
2044-11-29

AI Technical Summary

Technical Problem

In the Ethereum network, transaction processing is inefficient, mainly due to the need to frequently access the disk during processing to find and update state data.

Method used

By determining the processing node corresponding to the transaction request in the processing node and obtaining the target status data from the state node of the transaction participant without storing the target status data, transaction processing is performed in the processing node.

Benefits of technology

Improve transaction efficiency, reduce dependence on disk, and improve processing speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119652970A_ABST
    Figure CN119652970A_ABST
Patent Text Reader

Abstract

The invention relates to a transaction processing method and device, equipment, a readable storage medium and a program product. The method comprises the following steps: acquiring a transaction request initiated by a transaction initiator; wherein the transaction request comprises identification information of a transaction participant corresponding to the to-be-processed transaction; the transaction participants comprise a transaction initiator and a transaction receiver; determining a processing node corresponding to the transaction request according to the identification information of the transaction initiator, and sending the transaction request to the processing node; under the condition that the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data comprises first state data of the transaction initiator, and / or second state data of the transaction receiver; and controlling the processing node to process the to-be-processed transaction according to the first state data and the second state data. By adopting the method, the transaction processing efficiency can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of Ethereum technology, and in particular to a transaction processing method, apparatus, device, readable storage medium and program product. Background Art

[0002] With the growth of online transaction volume, in order to facilitate the processing of transactions and manage transaction records, the management of transaction records based on blockchain has become the mainstream method. However, the application field of blockchain technology is limited and the development is difficult. Based on this, the Ethereum network has emerged. In the Ethereum network, there are world states and account states.

[0003] Normally, the status data of different accounts are stored on disk. During transaction processing, the status data needs to be searched and updated. Therefore, the access to disk during transaction processing can easily lead to low transaction processing efficiency, which needs to be solved urgently. Summary of the invention

[0004] Based on this, it is necessary to provide a transaction processing method, device, equipment, readable storage medium and program product that can improve transaction processing efficiency in response to the above technical problems.

[0005] In a first aspect, the present application provides a transaction processing method, comprising:

[0006] Acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include a transaction initiator and a transaction receiver;

[0007] Determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0008] In the case where the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0009] The control processing node processes the pending transaction according to the first status data and the second status data.

[0010] In one embodiment, the control processing node obtains target status data from the status node corresponding to the transaction participant, including:

[0011] According to the storage status of the status data corresponding to each transaction participant in the processing node, the processing node is controlled to select the status node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node according to the identification information of the target transaction participant, and obtain the target status data from the status node;

[0012] Among them, the status data of the target transaction participants is not stored in the processing node.

[0013] In one embodiment, selecting a state node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node according to the identification information of the target transaction participant includes:

[0014] According to the identification information of the target transaction participant and the mapping relationship corresponding to the processing node, a state node corresponding to the target transaction participant is selected from at least two candidate state nodes corresponding to the processing node.

[0015] In one embodiment, obtaining target state data from a state node includes:

[0016] Send a data acquisition request to the status node;

[0017] When the state node allows responding to the data acquisition request, the target state data is acquired from the state node.

[0018] In one embodiment, the transaction request includes transaction content; accordingly, the control processing node processes the transaction to be processed according to the first state data and the second state data, including:

[0019] Controlling the processing node to adjust the first state data and the second state data based on the transaction content to process the pending transaction when the first state data and the second state data satisfy the transaction request;

[0020] If the first status data and / or the second status data do not satisfy the transaction request, the transaction request is rejected.

[0021] In one embodiment, the method further comprises:

[0022] The first state data of the transaction initiator and the second state data of the transaction participant are stored in the processing node, and when the first state data and the second state data meet the transaction request, the processing node is controlled to adjust the first state data and the second state data based on the transaction content to process the transaction to be processed;

[0023] Correspondingly, after adjusting the first state data and the second state data, the method further includes:

[0024] The state adjustment instruction is sent to the state node corresponding to the transaction participant so that the corresponding state node can adjust the recorded state data.

[0025] In a second aspect, the present application further provides a transaction processing device, including:

[0026] A request acquisition module, used to acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include a transaction initiator and a transaction receiver;

[0027] A processing node determination module, used to determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0028] A data acquisition module, used to control the processing node to acquire the target state data from the state node corresponding to the transaction participant when the target state data is not stored in the processing node; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0029] The first transaction processing module is used to control the processing node to process the pending transaction according to the first status data and the second status data.

[0030] In a third aspect, the present application further provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:

[0031] Acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include a transaction initiator and a transaction receiver;

[0032] Determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0033] In the case where the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0034] The control processing node processes the pending transaction according to the first status data and the second status data.

[0035] In a fourth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the following steps are implemented:

[0036] Acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include a transaction initiator and a transaction receiver;

[0037] Determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0038] In the case where the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0039] The control processing node processes the pending transaction according to the first status data and the second status data.

[0040] In a fifth aspect, the present application further provides a computer program product, including a computer program, which implements the following steps when executed by a processor:

[0041] Acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include a transaction initiator and a transaction receiver;

[0042] Determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0043] In the case where the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0044] The control processing node processes the pending transaction according to the first status data and the second status data.

[0045] The transaction processing method, device, equipment, readable storage medium and program product described above, in the case of a pending transaction, determine the processing node responsible for processing the pending transaction according to the transaction initiator of the pending transaction, and send a transaction request to the processing node to request the processing node to process the transaction request. Further, by controlling the processing node to process the pending transaction, when the target status data is not stored in the processing node, the processing node is controlled to obtain the target status data from the status node corresponding to the transaction participant, and then the processing node is controlled to process the pending transaction according to the first status data and the second status data. In the above process, in order to improve the transaction processing speed of the processing node, only a part of the status data is stored in the transaction processing node. When the target status data is not stored in the transaction processing node, the target status data is obtained from the corresponding status node, and then the processing of the pending transaction is completed. The whole process can improve the transaction processing efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0047] Figure 1 An application environment diagram of a transaction processing method in an embodiment;

[0048] Figure 2A A flowchart of a transaction processing method in one embodiment;

[0049] Figure 2B A schematic diagram of a distributed Merkle tree D-MPT architecture in one embodiment;

[0050] Figure 3 It is a flowchart of a step of acquiring target state data in one embodiment;

[0051] Figure 4 A schematic diagram of a process flow of processing steps for a transaction to be processed in one embodiment;

[0052] Figure 5 A flowchart of a transaction processing method in another embodiment;

[0053] Fig. 6A A flowchart of a transaction processing method in another embodiment;

[0054] Figure 6B A schematic diagram of a state virtual node in an embodiment;

[0055] Figure 7 is a structural block diagram of a transaction processing device in one embodiment;

[0056] Figure 8 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0057] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0058] The transaction processing method provided in the embodiment of the present application can be applied to Figure 1 In the application environment shown. Among them, the terminal 102 communicates with the blockchain 104 through the network. The data storage system can store the data that the blockchain 104 needs to process. The blockchain 104 obtains the transaction request initiated by the transaction initiator; wherein the transaction request includes the identification information of the transaction participant corresponding to the pending transaction; the transaction participants include the transaction initiator and the transaction recipient; the blockchain 104 determines the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and sends the transaction request to the processing node; if the target state data is not stored in the processing node, the blockchain 104 controls the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator, and / or, the second state data of the transaction recipient; the blockchain 104 controls the processing node to process the pending transaction according to the first state data and the second state data. The terminal 102 may be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, IoT devices, and portable wearable devices. IoT devices may be smart speakers, smart TVs, smart air conditioners, smart vehicle-mounted devices, projection devices, etc. Portable wearable devices may be smart watches, smart bracelets, head-mounted devices, etc. Head-mounted devices may be virtual reality (VR) devices, augmented reality (AR) devices, smart glasses, etc.

[0059] In an exemplary embodiment, Figure 2A As shown, a transaction processing method is provided, which is applied to Figure 1 Taking the blockchain 104 in FIG. 1 as an example, the following steps may be included:

[0060] S210: Obtain a transaction request initiated by a transaction initiator.

[0061] Among them, the transaction request includes the identification information of the transaction participants corresponding to the transaction to be processed, and the transaction request is used to request the distributed data storage system to process the corresponding transaction. The distributed data storage system performs transaction processing based on the blockchain network.

[0062] The transaction participants include the transaction initiator and the transaction receiver. For example, account A transfers 100 yuan to account B. The transfer is initiated by account A. Accordingly, account A is the transaction initiator and account B is the transaction receiver. The identification information of the transaction participants is used to uniquely mark the identity information of the transaction participants. For example, the identification information can be account information or a preset unique identifier.

[0063] In this embodiment, the transaction initiator can input a transaction request through the transaction platform, and at this time, the system can receive the corresponding transaction request.

[0064] S220: Determine a processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node.

[0065] The processing node may be a node for processing a transaction request. The distributed storage system includes at least two processing nodes, wherein different processing nodes are used to process transaction requests initiated by different transaction initiators. Exemplarily, processing node 1 is used to process transaction requests initiated by transaction initiators 1-10; processing node 2 is used to process transaction requests initiated by transaction initiators 2-20.

[0066] Specifically, in this embodiment, a correspondence between a reference transaction initiator and a reference processing node is predetermined, and the reference processing node corresponding to the identification information of the transaction initiator in the correspondence is used as the processing node corresponding to the transaction request. Further, the transaction request is sent to the processing node for the processing node to process the transaction request.

[0067] In this embodiment, the distributed data storage system may be based on blockchain for business processing support. For example, it may be Ethereum blockchain.

[0068] In this embodiment, the distributed storage system can be presented as a distributed Merkle tree D-MPT architecture. For example, the world state tree is horizontally split, and the original structure is divided into the top part and the bottom part of the state tree. The top part is the node close to the root of the original state tree. Figure 2B As shown in the figure, the whole architecture includes a top-level part and a bottom-level part, where the top-level part has nodes A, B, and C. The bottom-level part is a number of state subtrees, each of which has only a small amount of state data, such as Figure 2BThe state subtree subtree-1 has nodes D, G, and H, and only two account states G and H.

[0069] It should be noted that in the D-MPT architecture, there are two types of nodes: one is the miner node: the miner node participates in the transaction execution of the system and needs to obtain account data and update data. In the D-MPT architecture, there is only one miner node, which saves the top part of the state tree and some active state data. The other is the state node: the state node is in the memory, and saves part of the state data and the corresponding witness data in the form of a state subtree. If the scale of the state data grows to a certain extent, it can be expanded by adding state nodes in the system. In the entire distributed data storage system, including multiple Figure 2B The distributed Merkle tree shown, different miner nodes are used to process transactions for different accounts.

[0070] S230: When the target status data is not stored in the processing node, control the processing node to obtain the target status data from the status node corresponding to the transaction participant.

[0071] The target state data includes the first state data of the transaction initiator and / or the second state data of the transaction receiver. The first state data is used to represent the state data corresponding to the transaction transactions completed by the transaction initiator within the historical period; the second state data is used to represent the state data corresponding to the transaction transactions completed by the transaction receiver within the historical period.

[0072] In this embodiment, the processing node stores active state data, wherein the active state data is state data that has been accessed by the system in the recent period of time, or state data that needs to be accessed during the operation of the system in the recent period of time.

[0073] Optionally, in this embodiment, when the first state data is stored in the processing node and the second state data is stored, the processing node can be directly controlled to process the corresponding transaction request. When the first state data is not stored in the processing node, or when the second state data is not stored, the processing node is controlled to obtain the unstored state data from the state node corresponding to the transaction participant. Exemplarily, if the first state data is not stored in the processing node, the processing node is controlled to obtain the first state data from the state node corresponding to the transaction initiator; if the second state data is not stored in the processing node, the processing node is controlled to obtain the second state data from the state node corresponding to the transaction recipient.

[0074] In this embodiment, there is a corresponding relationship between each transaction participant and its corresponding status node. That is to say, after determining the owner of the target status data not stored in the processing node, the processing node can be controlled to obtain the target status data from the corresponding status node based on the corresponding relationship.

[0075] S240: Control the processing node to process the transaction to be processed according to the first status data and the second status data.

[0076] Specifically, in this embodiment, based on the transaction content of the transaction to be processed, the first state data and the second state data are adjusted to process the transaction to be processed.

[0077] For example, if the transaction content of the transaction to be processed is a transfer of 100 yuan from account A to account B, the processing node can be controlled to reduce the balance in the first state data by 100 yuan and increase the balance in the second state data by 100 yuan.

[0078] Furthermore, in order to facilitate subsequent inquiries, in this embodiment, the transaction processing time corresponding to the pending transaction may also be added to the status data corresponding to the transaction participant.

[0079] In the transaction processing method described above, when there are pending transactions, the processing node responsible for processing the pending transactions is determined according to the transaction initiator of the pending transactions, and the transaction request is sent to the processing node to request the processing node to process the transaction request. Furthermore, the pending transactions are processed by controlling the processing node. When the target status data is not stored in the processing node, the processing node is controlled to obtain the target status data from the status node corresponding to the transaction participant, and then the processing node is controlled to process the pending transactions according to the first status data and the second status data. In the above process, in order to improve the transaction processing speed of the processing node, only a part of the status data is stored in the transaction processing node. When the target status data is not stored in the transaction processing node, the target status data is obtained from the corresponding status node, and then the processing of the pending transactions is completed. The whole process can improve the transaction processing efficiency.

[0080] Based on the technical solutions of the above embodiments, the present application also provides an optional embodiment. In this optional embodiment, the process of the control processing node acquiring the target status data from the status node corresponding to the transaction participant is refined.

[0081] See also Figure 3 The target state data acquisition steps shown include:

[0082] S310, according to the storage status of the status data corresponding to each transaction participant in the processing node, control the processing node to select the status node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node according to the identification information of the target transaction participant, and obtain the target status data from the status node.

[0083] There are at least two candidate nodes corresponding to the processing node, and the candidate nodes are state nodes used to store the state data of the corresponding user.

[0084] The status data of the target transaction participant is not stored in the processing node. It can be understood that in this embodiment, if the first status data corresponding to the transaction initiator is not stored in the processing node, the transaction initiator is used as the target transaction participant; if the second status data corresponding to the transaction recipient is not stored in the processing node, the transaction recipient is used as the target transaction participant.

[0085] Exemplarily, in this embodiment, the correspondence between the reference participant and the reference status node can be predetermined, and after the target transaction participant is determined, the reference status node corresponding to the target transaction participant in the correspondence is used as its corresponding status node.

[0086] Optionally, in this embodiment, the state node corresponding to the target transaction participant may be selected from at least two candidate state nodes corresponding to the processing node according to the identification information of the target transaction participant and the mapping relationship corresponding to the processing node.

[0087] The mapping relationship is used to represent the corresponding relationship between the identification information and the state node. Accordingly, the reference state node corresponding to the identification information of the target transaction participant in the mapping relationship is used as its corresponding state node.

[0088] In this embodiment, there is no limitation on the construction method and construction process of the mapping relationship. Exemplarily, the mapping relationship can be constructed based on a hash ring.

[0089] S320, sending a data acquisition request to the status node.

[0090] Specifically, in this embodiment, the control processing node sends a data acquisition request to the status node to request to acquire target status data.

[0091] S330: When the status node allows responding to the data acquisition request, obtain target status data from the status node.

[0092] Specifically, in this embodiment, when the state node allows responding to the data acquisition request, the target state data can be sent to the processing node. The processing node can also be fed back with consent acquisition information so that the processing node can acquire the target state data from the state node based on the consent acquisition information.

[0093] In the above embodiment, the whole process of the processing node obtaining the target status data from the status node is given, so that the process of obtaining the target status data is clearer. In addition, a mapping relationship is pre-constructed to determine the status node, which makes the process of determining the status node simpler, thereby improving the efficiency of obtaining the target status data and improving the efficiency of transaction processing to a certain extent.

[0094] Based on the technical solutions of the above embodiments, the present application also provides an optional embodiment. In this optional embodiment, the transaction request includes transaction content. In this case, the process of the control processing node processing the pending transaction according to the first state data and the second state data is described in detail.

[0095] See also Figure 4 The processing steps of the pending transaction shown include:

[0096] start.

[0097] S410, determining whether both the first state data and the second state data satisfy the transaction request, if so, executing S420, if not, executing S430.

[0098] S420, controlling the processing node to adjust the first state data and the second state data based on the transaction content to process the transaction to be processed.

[0099] It is understandable that if the first state data and / or the second state data do not satisfy the transaction request, the transaction cannot be processed. For example, if the transaction content of the pending transaction is a transfer of 100 yuan from account A to account B, if the first state data indicates that the balance in account A is less than 100 yuan, the transaction cannot be processed.

[0100] Optionally, in order to make the transaction processing more rigorous, in this embodiment, the first state data and the second state data may also be subjected to legal verification to determine whether the account of the transaction participant is in a frozen state. If so, the transaction processing cannot be performed.

[0101] S430, controlling the processing node to refuse to execute the transaction request.

[0102] In the above embodiment, before processing the transaction to be processed, the first state data and the second state data corresponding to the transaction to be processed are verified, and when both the first state data and the second state data are verified, the transaction to be processed is processed, thereby improving the rigor of transaction processing.

[0103] It should be noted that after the first state data and the second state data are adjusted, the adjusted first state data and the second state data will be stored in the processing node as active state data.

[0104] Based on the technical solutions of the above embodiments, the present application also provides an optional embodiment. In this optional embodiment, the transaction processing method provided by the present application is further supplemented.

[0105] See also Figure 5 The transaction processing method shown includes:

[0106] S510, when the first state data of the transaction initiator and the second state data of the transaction participant are stored in the processing node and the first state data and the second state data satisfy the transaction request, the processing node is controlled to adjust the first state data and the second state data based on the transaction content to process the transaction to be processed.

[0107] Specifically, in this embodiment, the first state data of the transaction initiator and the second state data of the transaction participant are stored in the processing node, and when the first state data and the second state data satisfy the transaction request, the processing node is controlled to adjust the first state data and the second state data stored in the processing node based on the transaction content to process the transaction to be processed.

[0108] Correspondingly, after the above adjustment of the first state data and the second state data, the state adjustment instruction can also be sent to the state node corresponding to the transaction participant, so that the corresponding state node can adjust the recorded state data, thereby adjusting the state data stored in the state node to the latest data.

[0109] In the above embodiment, subsequent steps after the transaction processing is completed are provided to ensure that the status data in the status node is the latest data.

[0110] Based on the technical solutions of the above embodiments, the present application also provides an optional embodiment. In this optional embodiment, the transaction processing method provided by the present application is introduced in detail.

[0111] See also Fig. 6A The transaction processing method shown includes:

[0112] S601, obtaining a transaction request initiated by a transaction initiator;

[0113] The transaction request includes identification information of the transaction participants corresponding to the transaction to be processed; the transaction participants include the transaction initiator and the transaction receiver;

[0114] S602, determining a processing node corresponding to the transaction request according to the identification information of the transaction initiator, and sending the transaction request to the processing node;

[0115] S603, the control processing node determines whether the first state data and the second state data are stored therein; if so, execute S610, if not, execute S604;

[0116] S604, according to the storage status of the status data corresponding to each transaction participant in the processing node, controlling the processing node to select the status node corresponding to the target transaction participant from at least two candidate status nodes corresponding to the processing node according to the identification information of the target transaction participant and the mapping relationship corresponding to the processing node;

[0117] It should be noted that in D-MPT, the world state tree that originally stores blockchain state data is still a whole logically, but is divided into several parts:

[0118] The formal definition of the world state tree is as follows:

[0119]

[0120] In the formula, It is the state tree in the memory of the miner node, which will save the top part of the state tree and try to store active state data; The state subtree of the bottom layer, when the amount of data is small, is called ; One server (i.e. one account) corresponds to one status node, and one status node corresponds to multiple , the miner node can save multiple trees according to the server configuration ; Indicates the mapping relationship between the state prefix (the first several bytes of the state address) saved in the miner node and the state node. The state node can be obtained through the address prefix; It means that miner nodes can record transaction execution, account updates and other information of the blockchain system through pre-written logs.

[0121] In this embodiment, in order for the miner node to obtain inactive status data, it needs to access the status node, so the miner node also needs to save the mapping relationship between the status prefix of the status data and the status node:

[0122] ;

[0123] In the formula, the status prefix represents the status data, Indicates the id of the status node. You can go to the corresponding status node to search for data.

[0124] The state tree is split horizontally. There is only one state tree at the top level, while the bottom level is divided into a larger number of state subtrees. The state node can adaptively adjust the number of subtrees it saves according to its node configuration. In order to facilitate the adaptive adjustment setting, the state virtual node is introduced.

[0125] like Figure 6B The following figure shows the content of a state node. A server corresponds to a state node. The state node is mapped to k state virtual nodes according to its configuration. The size of k can be adaptively adjusted according to the node. Each state virtual node has a fixed number of .

[0126] For state data, it is necessary to determine which state node it is divided into, and which node should be used to obtain data when data is needed. To this end, this patent combines the consistent hashing algorithm to and the state virtual node are mapped to the same hash ring, which ranges from 0 to When it comes to data division, it can be directly allocated according to the state prefix of the address, and the state virtual node is mapped through a hash function.

[0127] When determining the state node number of the state data, just search for the number of the next node along the hash ring. The node number obtained at this time is the number of the state virtual node. After obtaining the number and address of the state node, send the corresponding state data to the state node for storage. In order to facilitate the quick search of data, after the data is divided, it will be set in the miner node To save the mapping relationship between state data and state nodes.

[0128] S605, controlling the processing node to send a data acquisition request to the status node;

[0129] The data acquisition request format is as follows:

[0130] S606, when the state node allows responding to the data acquisition request, controlling the processing node to acquire target state data from the state node;

[0131] Wherein, the state data of the target transaction participant is not stored in the processing node. Wherein, the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0132] S607, the control processing node determines whether both the first state data and the second state data satisfy the transaction request; if so, execute S608, if not, execute S609;

[0133] S608, adjusting the first state data and the second state data to process the pending transaction;

[0134] S609, rejecting the transaction execution request;

[0135] S610, when the first state data of the transaction initiator and the second state data of the transaction participant are stored in the processing node and the first state data and the second state data satisfy the transaction request, controlling the processing node to adjust the first state data and the second state data based on the transaction content to process the transaction to be processed;

[0136] S611, sending a status adjustment instruction to a status node corresponding to a transaction participant, so that the corresponding status node can adjust the recorded status data.

[0137] Furthermore, in order to make the above process clearer, the present application also provides a specific operation embodiment corresponding to the processing node (ie, the miner node) when performing the read operation:

[0138] 1. First, the miner node executing the transaction will search for the local ;

[0139] 2. If there is required status data, the data update algorithm will be called to update The leaf node status of

[0140] 3. If the required data is not found, you need to In the process, the corresponding status node number is obtained and a status request message is sent;

[0141] 4. Get the corresponding status data from the status node;

[0142] The formal definition of the status request message is as follows:

[0143] ;

[0144] 5. After receiving the status request message, the status node searches in the tree to To pass in parameters, call the search algorithm and obtain the state data in the state subtree;

[0145] 6. Get account data Later, the state node will generate witness data through the verification method ;

[0146] 7. Finally, send a request confirmation message. Sent to the miner node together with the witness data;

[0147] The formal definition of the request confirmation message is as follows:

[0148] .

[0149] Furthermore, it should be noted that in this embodiment, as the system runs longer, more users will join the blockchain system, and the amount of blockchain data will continue to grow. In the architecture, state data needs to be stored on the state node, and the state node memory may not be sufficient to store the growing data. Therefore, the system needs to be expanded, and a certain number of new nodes need to be added as state nodes to avoid the state node's memory running out and causing the blockchain system to fail, so the scalability of the system needs to be ensured.

[0150] System expansion requires adding new state nodes to the system, that is, adding new machines to the architecture as components. The newly added state nodes will follow the following steps:

[0151] 1. According to its node hardware configuration, it is mapped into k state virtual nodes;

[0152] 2. Then map these state virtual nodes to the hash ring;

[0153] 3. Re-divide the data into corresponding nodes for storage in a clockwise direction;

[0154] 4. During the data redistribution process, multiple state virtual nodes will be generated, which will affect multiple positions on the hash ring;

[0155] 5. Data will be transferred from related nodes to the new node with only a small portion of its status data. There will not be a situation where a node suddenly transfers a large amount of data.

[0156] In addition, nodes in the blockchain public chain network can freely join and exit the network, and there are also nodes in the network with powerful hardware resources that are sufficient to store all state data in memory. In this case, all data can be accessed from The data can be obtained from the network, and no disk I / O operation will be generated in the data search; however, more node resources are limited, and only partial state data can be saved. State data needs to be obtained when executing some transactions; even some machines with poor performance have insufficient resources to run miner nodes, and can only save less state data, but such nodes also want to participate in the operation of the blockchain.

[0157] In this application, the system parameter settings can be adjusted to better adapt to the hardware device configuration according to the actual situation. The number of reserved layers of the top part of the world state tree in the system is defined as , by modifying To adjust the space occupied by the top layer; A 32-byte hash value is used to generate witness data, and the state subtree data size is small, so a shorter hash value can be used to generate witness data without causing conflicts, which can reduce the size of data transmitted in the network. The compression factor of the witness data is defined as c, which compresses the size of the witness data, thereby reducing the time to transmit data in the network.

[0158] By modifying the configuration parameters r and c of D-MPT, the system settings can be adjusted to suit different server configurations. For example: if the hardware resources are sufficient and only data needs to be obtained from the local memory, and no remote state data application is called during transaction execution, the top reserved layer number r=+∞ can be set, and the top part is actually the entire state tree; or if the hardware configuration of the miner node is poor and the state node needs to be accessed frequently, resulting in network overhead, if the compression coefficient c=1, the witness data will not be compressed; if the compression coefficient c=0 is set, all state nodes are actually considered to be trusted, and witness data does not need to be generated, only state data needs to be obtained. Adjusting the compression coefficient c will affect the data security of the miner node, and you can choose to set it according to the server situation in the architecture.

[0159] In addition to the parameter r, saving more active state data in the top layer will increase the data hit rate and also reduce the amount of data communicated over the network. Therefore, ideally, in D-MPT, the top layer should set the number of accounts to be retained based on the maximum amount of available memory, and modifications to the top layer data should be performed in the node's local memory as much as possible.

[0160] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.

[0161] Based on the same inventive concept, the embodiment of the present application also provides a transaction processing device for implementing the transaction processing method involved above. The implementation solution provided by the device to solve the problem is similar to the implementation solution recorded in the above method, so the specific limitations in one or more transaction processing device embodiments provided below can refer to the limitations on the transaction processing method above, and will not be repeated here.

[0162] In an exemplary embodiment, Figure 7 As shown, a transaction processing device is provided, including: a request acquisition module 710, a processing node determination module 720 and a data acquisition module 730, wherein:

[0163] The request acquisition module 710 is used to acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participant includes a transaction initiator and a transaction receiver;

[0164] The processing node determination module 720 is used to determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0165] The data acquisition module 730 is used to control the processing node to acquire the target state data from the state node corresponding to the transaction participant when the target state data is not stored in the processing node; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0166] The first transaction processing module 740 is used to control the processing node to process the pending transaction according to the first status data and the second status data.

[0167] In one embodiment, the data acquisition module 730 is specifically used to control the processing node to select a status node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node according to the storage status of the status data corresponding to each transaction participant in the processing node, and obtain the target status data from the status node; wherein the status data of the target transaction participant is not stored in the processing node.

[0168] In one embodiment, the data acquisition module 730 is specifically used to select a state node corresponding to the target transaction participant from at least two candidate state nodes corresponding to the processing node according to the identification information of the target transaction participant and the mapping relationship corresponding to the processing node.

[0169] In one embodiment, the data acquisition module 730 includes a request sending unit, which is used to send a data acquisition request to the status node; and a data acquisition unit, which is used to acquire target status data from the status node when the status node allows responding to the data acquisition request.

[0170] In one embodiment, a transaction request includes transaction content; accordingly, the first transaction processing module includes a first processing unit, which is used to control the processing node to adjust the first state data and the second state data based on the transaction content to process the transaction to be processed when the first state data and the second state data meet the transaction request; and a second processing unit, which is used to refuse to execute the transaction request when the first state data and / or the second state data do not meet the transaction request.

[0171] In one embodiment, the transaction processing device further includes a second transaction processing module, which is used to store the first state data of the transaction initiator and the second state data of the transaction participant in the processing node, and when the first state data and the second state data satisfy the transaction request, control the processing node to adjust the first state data and the second state data based on the transaction content to process the pending transaction; and send the state adjustment instruction to the state node corresponding to the transaction participant so that the corresponding state node can adjust the recorded state data. Correspondingly, the first transaction module further includes an instruction sending unit, which is used to send the state adjustment instruction to the state node corresponding to the transaction participant so that the corresponding state node can adjust the recorded state data.

[0172] Each module in the transaction processing device can be implemented in whole or in part by software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to each module.

[0173] In an exemplary embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as shown in FIG. Figure 8As shown. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. The processor, the memory and the input / output interface are connected through a system bus, and the communication interface, the display unit and the input device are connected to the system bus through the input / output interface. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, near field communication (NFC) or other technologies. When the computer program is executed by the processor, a transaction processing method is implemented. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device can be a touch layer covering the display screen, or a button, trackball or touchpad set on the computer device shell, or an external keyboard, touchpad or mouse.

[0174] Those skilled in the art will understand that Figure 8 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0175] In an exemplary embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:

[0176] Acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include a transaction initiator and a transaction receiver;

[0177] Determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0178] In the case where the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0179] The control processing node processes the pending transaction according to the first status data and the second status data.

[0180] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0181] According to the storage status of the status data corresponding to each transaction participant in the processing node, the processing node is controlled to select the status node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node according to the identification information of the target transaction participant, and obtain the target status data from the status node;

[0182] Among them, the status data of the target transaction participants is not stored in the processing node.

[0183] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0184] According to the identification information of the target transaction participant and the mapping relationship corresponding to the processing node, a state node corresponding to the target transaction participant is selected from at least two candidate state nodes corresponding to the processing node.

[0185] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0186] Send a data acquisition request to the status node;

[0187] When the state node allows responding to the data acquisition request, the target state data is acquired from the state node.

[0188] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0189] Controlling the processing node to adjust the first state data and the second state data based on the transaction content to process the pending transaction when the first state data and the second state data satisfy the transaction request;

[0190] If the first status data and / or the second status data do not satisfy the transaction request, the transaction request is rejected.

[0191] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0192] The first status data of the transaction initiator and the second status data of the transaction participant are stored in the processing node, and when the first status data and the second status data satisfy the transaction request, the processing node is controlled to adjust the first status data and the second status data based on the transaction content to process the transaction to be processed; and the status adjustment instruction is sent to the status node corresponding to the transaction participant, so that the corresponding status node can adjust the recorded status data.

[0193] In one embodiment, a computer readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0194] Acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include a transaction initiator and a transaction receiver;

[0195] Determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0196] In the case where the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0197] The control processing node processes the pending transaction according to the first status data and the second status data.

[0198] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0199] According to the storage status of the status data corresponding to each transaction participant in the processing node, the processing node is controlled to select the status node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node according to the identification information of the target transaction participant, and obtain the target status data from the status node;

[0200] Among them, the status data of the target transaction participants is not stored in the processing node.

[0201] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0202] According to the identification information of the target transaction participant and the mapping relationship corresponding to the processing node, a state node corresponding to the target transaction participant is selected from at least two candidate state nodes corresponding to the processing node.

[0203] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0204] Send a data acquisition request to the status node;

[0205] When the state node allows responding to the data acquisition request, the target state data is acquired from the state node.

[0206] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0207] Controlling the processing node to adjust the first state data and the second state data based on the transaction content to process the pending transaction when the first state data and the second state data satisfy the transaction request;

[0208] If the first status data and / or the second status data do not satisfy the transaction request, the transaction request is rejected.

[0209] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0210] The first status data of the transaction initiator and the second status data of the transaction participant are stored in the processing node, and when the first status data and the second status data satisfy the transaction request, the processing node is controlled to adjust the first status data and the second status data based on the transaction content to process the transaction to be processed; and the status adjustment instruction is sent to the status node corresponding to the transaction participant, so that the corresponding status node can adjust the recorded status data.

[0211] In one embodiment, a computer program product is provided, comprising a computer program, which, when executed by a processor, implements the following steps:

[0212] Acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include a transaction initiator and a transaction receiver;

[0213] Determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node;

[0214] In the case where the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient;

[0215] The control processing node processes the pending transaction according to the first status data and the second status data.

[0216] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0217] According to the storage status of the status data corresponding to each transaction participant in the processing node, the processing node is controlled to select the status node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node according to the identification information of the target transaction participant, and obtain the target status data from the status node;

[0218] Among them, the status data of the target transaction participants is not stored in the processing node.

[0219] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0220] According to the identification information of the target transaction participant and the mapping relationship corresponding to the processing node, a state node corresponding to the target transaction participant is selected from at least two candidate state nodes corresponding to the processing node.

[0221] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0222] Send a data acquisition request to the status node;

[0223] When the state node allows responding to the data acquisition request, the target state data is acquired from the state node.

[0224] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0225] Controlling the processing node to adjust the first state data and the second state data based on the transaction content to process the pending transaction when the first state data and the second state data satisfy the transaction request;

[0226] If the first status data and / or the second status data do not satisfy the transaction request, the transaction request is rejected.

[0227] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0228] The first status data of the transaction initiator and the second status data of the transaction participant are stored in the processing node, and when the first status data and the second status data satisfy the transaction request, the processing node is controlled to adjust the first status data and the second status data based on the transaction content to process the transaction to be processed; and the status adjustment instruction is sent to the status node corresponding to the transaction participant, so that the corresponding status node can adjust the recorded status data.

[0229] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.

[0230] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, an artificial intelligence (AI) processor, etc., but are not limited to this.

[0231] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.

[0232] The above embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A transaction processing method, characterized in that: The method comprises: Acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of transaction participants corresponding to the transaction to be processed; the transaction participants include the transaction initiator and the transaction recipient; Determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node; In the case that the target state data is not stored in the processing node, controlling the processing node to obtain the target state data from the state node corresponding to the transaction participant; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient; The processing node is controlled to process the pending transaction according to the first status data and the second status data.

2. The method according to claim 1, characterized in that The controlling the processing node to obtain the target status data from the status node corresponding to the transaction participant includes: According to the storage status of the status data corresponding to each of the transaction participants in the processing node, control the processing node to select the status node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node according to the identification information of the target transaction participant, and obtain the target status data from the status node; Wherein, the state data of the target transaction participant is not stored in the processing node.

3. The method according to claim 2, characterized in that The selecting, according to the identification information of the target transaction participant, a state node corresponding to the target transaction participant from at least two candidate nodes corresponding to the processing node, comprises: According to the identification information of the target transaction participant and the mapping relationship corresponding to the processing node, a state node corresponding to the target transaction participant is selected from at least two candidate state nodes corresponding to the processing node.

4. The method according to claim 2, characterized in that: The acquiring the target state data from the state node comprises: Sending a data acquisition request to the status node; In a case where the status node allows responding to the data acquisition request, the target status data is acquired from the status node.

5. The method according to any one of claims 1 to 4, characterized in that The transaction request includes transaction content; accordingly, controlling the processing node to process the pending transaction according to the first status data and the second status data includes: controlling the processing node to adjust the first state data and the second state data based on the transaction content, so as to process the pending transaction, if the first state data and the second state data satisfy the transaction request; When the first status data and / or the second status data do not satisfy the transaction request, the transaction request is refused to be executed.

6. The method according to any one of claims 1 to 4, characterized in that The method further comprises: The processing node stores first state data of the transaction initiator and second state data of the transaction participant, and when the first state data and the second state data satisfy the transaction request, controls the processing node to adjust the first state data and the second state data based on the transaction content, so as to process the pending transaction; Correspondingly, after adjusting the first state data and the second state data, the method further includes: The state adjustment instruction is sent to the state node corresponding to the transaction participant, so that the corresponding state node can adjust the recorded state data.

7. A transaction processing device, characterized in that: The device comprises: A request acquisition module, used to acquire a transaction request initiated by a transaction initiator; wherein the transaction request includes identification information of a transaction participant corresponding to the transaction to be processed; the transaction participants include the transaction initiator and the transaction recipient; A processing node determination module, configured to determine the processing node corresponding to the transaction request according to the identification information of the transaction initiator, and send the transaction request to the processing node; a data acquisition module, configured to control the processing node to acquire the target state data from the state node corresponding to the transaction participant when the target state data is not stored in the processing node; wherein the target state data includes the first state data of the transaction initiator and / or the second state data of the transaction recipient; The first transaction processing module is used to control the processing node to process the transaction to be processed according to the first status data and the second status data.

8. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 6 are implemented.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.

10. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.

Citation Information

Patent Citations

  • Method, apparatus and storage medium for processing transactions in a distributed network

    CN109118220A

  • Data processing method and device

    CN110045912A

  • Transaction processing method, device and system and storage medium

    CN111143040A

  • Cluster management method, device and equipment and computer storage medium

    CN113326100A

  • Business processing method and device, computer equipment, storage medium and program product

    CN117573305A