Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
The Action is responsive to the Request for Continued Examination including Amendments and Remarks filed on 12/10/2025. Claims 1-5, 7-15, and 17-20 are pending claims. Claims 1, 11, and 20 are written in independent form. Dependent Claims 6 and 16 have been cancelled.
Priority
Acknowledgment is made of a claim for priority as a continuation of PCT/CN2023/101379, filed 06/20/2023, which claims foreign priority to CN202210797362.2, filed 7/7/2022, under 35 U.S.C. § 119(a)-(d) or (f), and is also acknowledged. Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Claim Interpretation
Claims 1, 11, and 20 recite the phrase “to be processed;” which is being understood as the intent to process, but is not actively performing any processing step/limitation. Examiner suggests to amend the claim limitations to recite all of the steps in a positive manner or removing the phrase if the processing to be performed are merely the limitations that follow.
Claims 1, 11, and 20 recite the limitation “Obtaining a plurality of groups of transaction data to be processed;” which is being interpreted to have a scope of “Obtaining a plurality of groups of transaction data”. However, for the purpose of compact prosecution, the limitation is being addressed herein as if all of the steps are recited in a positive manner.
Claim 10 recites the phrase “to obtain” which is being understood as the intent to obtain, but is not actively performing any obtaining step/limitation. Examiner suggests to amend the claim limitations to recite all of the steps in a positive manner.
Claim 10 recites the limitation “Traversing a transaction read cache of the second transaction data, to obtain a read data set of the second transaction data…” which is being interpreted to have a scope of “Traversing a transaction read cache of the second transaction data”. However, for the purpose of compact prosecution, the limitation is being addressed herein as if all of the steps are recited in a positive manner.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-5, 7-15, and 17-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-patentable subject matter. The claimed invention is directed to one or more abstract ideas without significantly more. The judicial exception is not integrated into a practical application. The claims do not include additional elements that are sufficient to amount to significantly more than judicial exception. The eligibility analysis in support of these findings is provided below.
As per Claims 1, 11, and 20,
STEP 1:In accordance with Step 1 of the eligibility inquiry (as explained in MPEP 2106), the claimed method (claims 1-5 and 7-10), apparatus (claims 11-15 and 17-19), and non-transitory computer-readable storage media (claim 20) are directed to one of the eligible categories of subject matter and therefore satisfies Step 1.
STEP 2A Prong One:The independent claims 1, 11, and 20 recite the following limitations directed to an abstract idea:
Determining, from the plurality of groups of transaction data according to transaction executing results of the plurality of groups of transaction data, at least one group of first transaction data that meets a preset execution condition;
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making observation of the plurality of groups of transaction data according to transaction executing results and a present execution condition, and based on the observation and evaluation, making a judgement and/or opinion of at least one group of first transaction data that meets the preset execution condition.
Wherein the determining the at least one group of the first transaction data that meets the preset execution condition comprises:
performing a hashing operation on the write keyword to obtain a first hash string of the group of transaction data;
The limitation recites a mathematical concept of executing a hash function that takes as input a write keyword of each group of transaction data and outputs a hash string of each group of transaction data.
Traversing a read data set of each group of transaction data from a corresponding transaction read cache and
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by observing and evaluating a read data set of each group of transaction data that is from a corresponding transaction read cache.
performing a hashing operation on a read keyword of each group of transaction data to obtain a second hash string of the group of transaction data; and
The limitation recites a mathematical concept of executing a mathematical formula in the form of any hashing operation that takes as input “a read keyword of the each group of transaction data” and outputs “a second hash string of each group of transaction data”.
Matching the second hash string of each group of transaction data with each first hash string in the Bloom filter to determine, according to a matching result, the at least one group of the first transaction data that meets the preset execution condition and at least one group of second transaction data that does not meet the preset execution condition;
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation of a second hash string of each group of transaction data, a first hash string of each group of transaction data, and a preset execution condition, making a judgement and/or opinion of matching second hash strings with first hash strings, based on the observation and evaluation, and based on the judgement and/or opinion of the matching hash strings and the observation and evaluation, making another judgement and/or opinion of at least one group of first transaction data that meets a preset execution condition and at lest one group of second transaction data that does not meet the preset execution condition.
Packaging the plurality of groups of transaction data, to generate a consensus-pending block,
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation of the plurality of groups of transaction data and based on the observation and evaluation, making a judgement and/or opinion to package or organize the groups of transaction data into a consensus-pending block.
Performing first consensus processing on the first transaction data, and
The limitation recites a mathematical concept of executing a mathematical formula by taking as input the first transaction data and executing/performing a “first consensus processing” formula on the input.
performing second consensus processing, different from the first consensus processing, on the second transaction data,
The limitation recites a mathematical concept of executing a mathematical formula by taking as input the second transaction data and executing/performing a “second consensus processing” formula on the input.
adding the consensus-pending block to a blockchain in response to a successful completion of the first consensus processing and the second consensus processing, wherein the added consensus-pending block becomes a new block of the blockchain.
The limitation recites a mathematical concept of executing a mathematical function that adds a new block to the blockchain in response to/after successfully completing prior steps of first and second consensus processing.
STEP 2A Prong Two:Claims 1, 11, and 20 recite that the steps are performed using “a computer device”, “at least one memory”, “one or more processors”, “one or more non-transitory computer-readable storage media”, and “a blockchain”, which is a high-level recitation of generic computer components and represents mere instructions to apply on a computer as in MPEP 2106.05(f), which does not provide integration into a practical application.
The claim recites the following additional elements:
Obtaining a plurality of groups of transaction data to be processed;
The limitation recites an insignificant extra solution activity as retrieval of data (ie. Mere data gathering) such as ‘obtaining information’ as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
Wherein the determining the at least one group of the first transaction data that meets the preset execution condition comprises:
Obtaining, for each group of transaction data, a write keyword from a corresponding transaction write cache
The limitation recites an insignificant extra solution activity as retrieval of data (ie. Mere data gathering) such as ‘obtaining information’ as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
Writing the first hash string of each group of transaction data to a Bloom filter;
The limitation recites an insignificant extra solution activity as storage and retrieval of data (ie. Mere data gathering) such as ‘obtaining information’ as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
The limitation also recites using “a Bloom filter”, which are a high-level recitation of generic computer components and represents mere instructions to apply on a computer as in MPEP 2106.05(f), which does not provide integration into a practical application.
the consensus-pending block recording the at least group of first transaction data and at least one group of second transaction data, and
The limitation recites an insignificant extra-solution activity as selecting a particular type of data being used to represent the consensus-pending block as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
the second transaction data being transaction data different form the first transaction data among the plurality of groups of transaction data;
The limitation recites an insignificant extra-solution activity as selecting a particular type of data being used to represent the second transaction data as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
wherein the first consensus processing comprises parallel consensus processing, the second consensus processing comprises serial consensus processing, the first consensus processing on the first transaction data is prioritized over the second consensus processing on the second transaction data;
The limitation recites an insignificant extra-solution activity as selecting a particular type of data being used to represent the first consensus processing and the second consensus processing as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
Viewing the additional limitations together and the claim as a whole, nothing provides integration into a practical application.
STEP 2B:
The conclusions for the mere implementation using a computer are carried over and does not provide significantly more.
With respect to “Obtaining a plurality of groups of transaction data to be processed;” identified as insignificant extra-solution activity above this is also WURC as court-identified see MPEP 2106.05(d)(II)(i).
With respect to “Obtaining, for each group of transaction data, a write keyword from a corresponding transaction write cache” identified as insignificant extra-solution activity above this is also WURC as court-identified see MPEP 2106.05(d)(II)(i).
With respect to “Writing the first hash string of each group of transaction data to a Bloom filter;” identified as insignificant extra-solution activity above this is also WURC as court-identified see MPEP 2106.05(d)(II)(i).
With respect to “the consensus-pending block recording the at least group of first transaction data and at least one group of second transaction data,” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to “the second transaction data being transaction data different form the first transaction data among the plurality of groups of transaction data;” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to “wherein the first consensus processing comprises parallel consensus processing, the second consensus processing comprises serial consensus processing, the first consensus processing on the first transaction data is prioritized over the second consensus processing on the second transaction data;” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
Looking at the claim as a whole does not change this conclusion and the claim is ineligible.
As per Dependent Claims 2-10 and 12-19,
STEP 1:In accordance with Step 1 of the eligibility inquiry (as explained in MPEP 2106), the claimed method (claims 1-5 and 7-10), apparatus (claims 11-15 and 17-19), and non-transitory computer-readable storage media (claim 20) are directed to one of the eligible categories of subject matter and therefore satisfies Step 1.
STEP 2A Prong One:The dependent claims 2-5, 7-10, 12-15, and 17-19 recite the following limitations directed to an abstract idea:
The limitation(s) of Dependent Claims 2 and 12 includes the step(s) of:
Wherein the consensus-pending block records the first transaction data and the second transaction data based on a differential record rule, and
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation of the first transaction data, the second transaction data, and the differential record rule, and making a judgement and/or opinion, based on the observation and evaluation, to package or record the first transaction data and the second transaction data in accordance with the differential record rule.
The packaging the plurality of groups of transaction data, to generate the consensus-pending block comprises:
Packaging the plurality of groups of transaction data according to the arrangement rule, to generate the consensus-pending block,
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation of the plurality of groups of transaction data and the arrangement rule, and based on the observation and evaluation, making a judgement and/or opinion to package or organize the groups of transaction data into a consensus-pending block.
A group of the at least one group of the second transaction data and the consensus-pending block being provided with a target label, and the target label being set based on the label setting rule, wherein
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation of at least a label setting rule, and based on the observation and evaluation, making a judgement and/or opinion to set and provide a target label with the second transaction data and the consensus-pending block.
The first consensus processing and the second consensus processing are performed after packaging the plurality of groups of transaction data based on the arrangement rule.
The limitation recites a mathematical concept of executing a mathematical formula by executing/performing the “first consensus processing” formula on the input of the first transaction data and the “second consensus processing" formula on the input of the second transaction data following/after the packaging of the plurality of groups of transaction data based on the arrangement rule.
The limitation(s) of Dependent Claims 4 and 14 includes the step(s) of:
Invoking the target smart contract to execute the target transaction data, to obtain a target transaction execution result, wherein the target transaction execution result is applied in obtaining the write data set of the target transaction data.
The limitation recites a mathematical concept of executing a function/smart contract that relates to specific transaction data being executed and applied in obtaining a write data set.
The limitation(s) of Dependent Claims 7 and 17 includes the step(s) of:
Wherein the determining, from the plurality of groups of transaction data according to the matching result, the at least one group of the first transaction data that meets the present execution condition comprises:
In response to that the matching result of the transaction data is unsuccessful, determining that that transaction data meets the preset execution condition and determining the transaction data to be the first transaction data; and
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation that the matching result of the transaction data is unsuccessful and of the transaction data and the preset execution condition, making a judgement and/or opinion that the transaction data meets the preset execution condition and making a judgement and/or opinion that the transaction data is the first transaction data, based on the observation and evaluation.
In response to that the matching result of the transaction data is successful, determining that the transaction data does not meet the preset execution condition and determining the transaction data to be the second transaction data.
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation that the matching result of the transaction is successful and of the transaction data and the preset execution condition, making a judgement and/or opinion that the transaction data does not meet the preset execution condition and making a judgement and/or opinion that the transaction data is the second transaction data, based on the observation and evaluation.
The limitation(s) of Dependent Claims 8 and 18 includes the step(s) of:
Executing the at least one group of second transaction data in series, to obtain second transaction execution results of the second transaction data;
The limitation recites a mathematical concept of executing a function by taking as input “the at least one group of second transaction data” and executing/performing a function “in series” on the input and outputs “second transaction execution results”.
Combining the first transaction execution results and the second transaction execution results, to obtain a transaction combination execution result.
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation of the first and second transaction execution results and based on the observation and evaluation, making a judgement and/or opinion to combine the first and second transaction execution results into a single transaction combination execution result.
The limitation(s) of Dependent Claims 9 and 19 includes the step(s) of:
Performing validity verification on the first consensus processing process, and in response to that the verification fails, deleting the first transaction execution results and the second transaction execution results; and
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by observing and evaluating the first consensus processing process, making a judgement and/or opinion, based on the observation and evaluation, of whether the first consensus processing process if passes or fails verification, and then based on the judgement and/or opinion that the verification fails, making a judgement and/or opinion to delete the first and second transaction execution results.
Performing the second consensus processing on the plurality of groups of transaction data, to obtain the transaction execution results of the plurality of groups of transaction data.
The limitation recites a mathematical concept of executing a mathematical formula by taking as input the plurality of groups of transaction data and executing/performing a “second consensus processing” formula on the input that outputs “the transaction execution results of the plurality of groups of transaction data”.
The limitation(s) of Dependent Claim 10 includes the step(s) of:
Wherein the performing validity verification on the first consensus processing process comprises:
Traversing a transaction read cache of the second transaction data, to obtain a read data set of the second transaction data, wherein the read data set is stored to the transaction read cache in a form of a key-value pair;
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by observing and evaluating a read cache of transaction data stored in form of a key-value pair, and making a judgement and/or opinion to obtain “a read data set of the second transaction data” based on the observation and evaluation.
Performing a hashing operation on a read keyword of the second transaction data, to obtain a verification hash string of the second transaction data; and
The limitation recites a mathematical concept of executing a mathematical formula in the form of any hashing operation that takes as input “a read keyword of the second transaction data” and outputs “a verification hash string”.
Performing matching processing on the verification hash string based on the first hash string stored in a Bloom filter, and in response to the matching succeeding, determining that verification of the first consensus processing process succeeds.
The limitation recites a mental process of observation, evaluation, judgement, and/or opinion capable of being performed by the human mind by making an observation and evaluation of a verification hash string and a first hash string that is stored in a Bloom filter, making a judgement and/ or opinion that the two hash strings are a match, and thus that the verification of the first consensus processing process succeeds, based on the observation and evaluation.
STEP 2A Prong Two:The claim(s) recite the following additional elements:
The limitation(s) of Dependent Claims 2 and 12 includes the step(s) of:
The differential record rule comprises: an arrangement rule and a label setting rule;
The limitation recites an insignificant extra-solution activity as selecting a particular type/names of underlying rules being used to represent the differential record rule as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
The limitation(s) of Dependent Claims 3 and 13 includes the step(s) of:
Creating the corresponding transaction read cache and transaction write cache for each group of transaction data in the plurality of groups of transaction data,
The limitation recites an insignificant extra solution activity as storage and retrieval of data (ie. Mere data gathering) such as ‘obtaining information’ as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
The limitation also recites using a “read cache” and a “write cache”, which are a high-level recitation of generic computer components and represents mere instructions to apply on a computer as in MPEP 2106.05(f), which does not provide integration into a practical application.
wherein
The transaction read cache corresponding to the transaction data is configured to store the read data set of the transaction data, the read data set being applied in invoking a smart contract and executing the transaction data; and
The limitation recites an insignificant extra-solution activity as selecting a particular type of data being stored in the read cache as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
The transaction write cache corresponding to the transaction data is configured to store the write data set of the transaction data, the write data set storing a transaction execution result obtained after invoking the smart contract and executing the transaction data.
The limitation recites an insignificant extra-solution activity as selecting a particular type of data being stored in the write cache as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
The limitation(s) of Dependent Claims 4 and 14 includes the step(s) of:
Obtaining a read data set of target transaction data from the transaction reach cache, and based on invoking information in the read data set of the target transaction data, obtaining a target smart contract for executing the target transaction data, wherein the target transaction data is from the plurality of groups of transaction data; and
The limitation recites an insignificant extra solution activity as retrieval of data (ie. Mere data gathering) such as ‘obtaining information’ as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
The limitation(s) of Dependent Claims 5 and 15 includes the step(s) of:
Wherein the transaction execution result of each group of transaction data is stored in the corresponding transaction write cache in form of a key-value pair, and the read data set of each group of transaction data is stored to the corresponding transaction read cache in form of a key-value pair; and
The limitation recites an insignificant extra solution activity as storage and retrieval of data (ie. Mere data gathering) such as ‘obtaining information’ as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
The limitation also recites using a “read cache” and a “write cache”, which are a high-level recitation of generic computer components and represents mere instructions to apply on a computer as in MPEP 2106.05(f), which does not provide integration into a practical application.
wherein the write keyword refers to a key in the key-value pair corresponding to the transaction execution result and
The limitation recites an insignificant extra-solution activity as selecting a particular type of data being represented by or associated with the write keyword as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
wherein the read keyword refers to a key in the key-value pair corresponding to the read data set.
The limitation recites an insignificant extra-solution activity as selecting a particular type of data being represented by or associated with the read keyword as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
The limitation(s) of Dependent Claims 8 and 18 includes the step(s) of:
Obtaining first transaction execution results of the at least one group of first transaction data from the transaction execution results of the plurality of groups of transaction data;
The limitation recites an insignificant extra solution activity as retrieval of data (ie. Mere data gathering) such as ‘obtaining information’ as identified in MPEP 2106.05(g) and does not provide integration into a practical application.
Viewing the additional limitations together and the claim as a whole, nothing provides integration into a practical application.
STEP 2B:
The conclusions for the mere implementation using a computer are carried over and does not provide significantly more.
With respect to Claims 2 and 12 reciting “The differential record rule comprises: an arrangement rule and a label setting rule;” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to Claims 3 and 13 reciting “Creating the corresponding transaction read cache and transaction write cache for each group of transaction data in the plurality of groups of transaction data,” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to Claims 3 and 13 reciting “The transaction read cache corresponding to the transaction data is configured to store the read data set of the transaction data, the read data set being applied in invoking a smart contract and executing the transaction data;” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to Claims 3 and 13 reciting “The transaction write cache corresponding to the transaction data is configured to store the write data set of the transaction data, the write data set storing a transaction execution result obtained after invoking the smart contract and executing the transaction data.” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to Claims 4 and 14 reciting “Obtaining a read data set of target transaction data from the transaction reach cache, and based on invoking information in the read data set of the target transaction data, obtaining a target smart contract for executing the target transaction data, wherein the target transaction data is from the plurality of groups of transaction data;” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(i).
With respect to Claims 5 and 15 reciting “Wherein the transaction execution result of each group of transaction data is stored in the corresponding transaction write cache in a form of a key-value pair, and the read data set of each group of transaction data is stored to the corresponding transaction read cache in a form of a key-value pair;” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to Claims 5 and 15 reciting “wherein the write keyword refers to a key in the key-value pair corresponding to the transaction execution result” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to Claims 5 and 15 reciting “wherein the read keyword refers to a key in the key-value pair corresponding to the read data set” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(iv).
With respect to Claims 8 and 18 reciting “Obtaining first transaction execution results of the at least one group of first transaction data from the transaction execution results of the plurality of groups of transaction data;” identified as insignificant extra-solution activity above this is also WURC when claimed in a merely generic manner as court-identified see MPEP 2106.05(d)(II)(i).
Looking at the claim as a whole does not change this conclusion and the claim is ineligible.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1, 3-5, 7-11, 13-15, and 17-20 are rejected under 35 U.S.C. 103 as being unpatentable over Chinese Patent Publication CN112381649A, hereinafter referred to as CN649, and further in view of Chinese Patent Publication CN106603198A, hereinafter referred to as CN198, Chinese Patent Publication CN112884587A, hereinafter referred to as CN587, and Ramabaja (U.S. Pre-Grant Publication No. 2023/0108083).
Regarding Claim 1:
CN649 teaches a data processing method, executed by a computer device, comprising:
Obtaining a plurality of groups of transaction data to be processed;
CN649 teaches at S302 that “a leader node of the block chain acquires all transaction information to be executed from the transaction pool” (Page 6).
Determining, from the plurality of groups of transaction data according to transaction executing results of the plurality of groups of transaction data, at least one group of first transaction data that meets a preset execution condition;
CN649 teaches “a leader node…performs virtual transaction execution, and divides the transaction information into first-type transaction information and second-type transaction information according to a virtual execution result;” (Page 6).
Packaging the plurality of groups of transaction data, to generate a consensus-pending block, the consensus-pending block recording the at least group of first transaction data and at least one group of second transaction data, and the second transaction data being transaction data different form the first transaction data among the plurality of groups of transaction data; and
CN649 teaches at S303 that “the leader node of the block chain carries out serial transaction execution on the first type of transaction information of the serial execution queue to obtain a first execution result, and carries out parallel transaction execution on the second type of transaction information of the parallel execution queue to obtain a second execution result.” and at S304 that “a leader node of the block chain packs the first type of transaction information and the first execution result of the serial execution queue and the second type of transaction information and the second execution result of the parallel execution queue into a block, and sends the block to a copy node of the block chain.” (Page 7).
Performing first consensus processing on the first transaction data, and performing second consensus processing, different from the first consensus processing, on the second transaction data,
CN649 teaches at S305 that “the duplicate node of the block chain unpacks the block, performs serial transaction execution on the first type of transaction information of the serial execution queue and checks the first execution result, performs parallel transaction execution on the second type of transaction information of the parallel execution queue and checks the second execution result to obtain a verification result of the block,” (Page 7).
wherein the first consensus processing comprises parallel consensus processing, the second consensus processing comprises serial consensus processing, the first consensus processing on the first transaction data is prioritized over the second consensus processing on the second transaction data;
CN649 teaches “dividing the transaction information into first-type transaction information and second-type transaction information according to a virtual execution result includes…determining the transaction information as first-class transaction information” (Page 4 Paragraphs 20-22) and “classifying the transaction information into first-class transaction information and second-class transaction information” (Page 5 Paragraph 1) where “the duplicate node of the block chain unpacks the block, performs serial transaction execution on the first type of transaction information of the serial execution queue and checks the first execution result, performs parallel transaction execution on the second type of transaction information of the parallel execution queue and checks the second execution result to obtain a verification result of the block,” (Page 7). Therefore, CN649 teaches a first consensus processing comprising serial consensus processing and a second consensus processing comprising parallel consensus process, and prioritizing the first consensus processing over the second consensus processing. Because CN649 teaches a limited number (two types) of consensus processing (serial and parallel), it would have been obvious to a person having ordinary skill in the art to have tried prioritizing the parallel transaction execution on the first type of transaction information over serial transaction execution on the second type of the transaction information due to the limited combinations of serial and parallel transaction execution.
CN649 explicitly teaches all of the elements of the claimed invention as recited above except:
Wherein the determining the at least one group of the first transaction data that meets the preset execution condition comprises:
Obtaining, for each group of transaction data, a write keyword from the corresponding transaction write cache and
performing a hashing operation on the write keyword to obtain a first hash string of the group of transaction data;
Writing the first hash string of each group of transaction data to a Bloom filter;
Traversing the read data set of each group of transaction data from a corresponding transaction read cache and
performing a hashing operation on a read keyword of each group of transaction data to obtain a second hash string of the group of transaction data; and
Matching the second hash string of each group of transaction data with each first hash string in the Bloom filter to determine, according to a matching result, the at least one group of the first transaction data that meets the preset execution condition and at least one group of second transaction data that does not meet the preset execution condition;
adding the consensus-pending block to a blockchain in response to a successful completion of the first consensus processing and the second consensus processing, wherein the added consensus-pending block becomes a new block of the blockchain.
However, in the related field of endeavor of blockchain transaction execution, CN198 teaches:
adding the consensus-pending block to a blockchain in response to a successful completion of the first consensus processing and the second consensus processing, wherein the added consensus-pending block becomes a new block of the blockchain.
CN198 teaches “the block that passes the consensus algorithm is formally included in the blockchain for storage, and the nodes of the entire network indicate that they accept the block.” (Page 2 Paragraph 8).
Thus, it would have been obvious to one of ordinary skill in the art, having the teachings of CN198 and CN649 at the time that the claimed invention was effectively filed, to have modified the systems and methods for providing transaction consensus, as taught by CN649, with the network coding, as taught by CN198.
One would have been motivated to make such modification because CN198 teaches “Compared with traditional data transmission methods, network coding can effectively improve network throughput, balance network load and improve bandwidth utilization” (Page 2 Paragraph 8)
CN198 and CN649 explicitly teach all of the elements of the claimed invention as recited above except:
Wherein the determining the at least one group of the first transaction data that meets the preset execution condition comprises:
Obtaining, for each group of transaction data, a write keyword from the corresponding transaction write cache and
performing a hashing operation on the write keyword to obtain a first hash string of the group of transaction data;
Writing the first hash string of each group of transaction data to a Bloom filter;
Traversing the read data set of each group of transaction data from a corresponding transaction read cache and
performing a hashing operation on a read keyword of each group of transaction data to obtain a second hash string of the group of transaction data; and
Matching the second hash string of each group of transaction data with each first hash string in the Bloom filter to determine, according to a matching result, the at least one group of the first transaction data that meets the preset execution condition and at least one group of second transaction data that does not meet the preset execution condition;
However, in the related field of endeavor of blockchain transaction execution, CN587, in combination with CN198 and CN649, teaches:
Wherein the determining the at least one group of the first transaction data that meets the preset execution condition comprises:
Obtaining, for each group of transaction data, a write keyword from the corresponding transaction write cache and
CN587 teaches “the values of the write parameters included in the execution results of the transactions that are identified successfully in the multiple transactions are stored in the second cache area” (Page 3 Paragraph 29).CN649 teaches “after the execution of the transaction information is completed, the leader node distinguishes failure types for all transaction information which fails to be executed according to the transaction return response codes of the execution result” (Page 9 Paragraph 18).
performing a hashing operation on the write keyword to obtain a first hash string of the group of transaction data;
CN587 teaches “each block chain may perform hash calculation on the execution result corresponding to each of the multiple transactions, to obtain a hash value of each execution result.” (Page 7 Paragraph 15).
Traversing the read data set of each group of transaction data from a corresponding transaction read cache and
CN587 teaches “for each read parameter identifier in the respective first set of the multiple transactions, if the value of the parameter corresponding to the identifier is not stored in the cache region, the control device obtains the value of the parameter from the state database of the storage device and stores the value of the parameter into the cache region” (Page 4 Paragraph 21) thereby teaching traversing the read data set of each group of transaction data from a corresponding cache.
performing a hashing operation on a read keyword of each group of transaction data to obtain a second hash string of the group of transaction data; and
CN587 teaches “the cache region may include at least a first cache region, and the first cache region may be configured to store the identifier and the value of the parameter read from the respective first set of each transaction” (Page 9 Paragraph 5) and “each block chain may perform hash calculation on the execution result corresponding to each of the multiple transactions, to obtain a hash value of each execution result.” (Page 7 Paragraph 15).
CN649 teaches “after the execution of the transaction information is completed, the leader node distinguishes failure types for all transaction information which fails to be executed according to the transaction return response codes of the execution result” (Page 9 Paragraph 18).
Matching the second hash string of each group of transaction data with each first hash string in the Bloom filter to determine, according to a matching result, the at least one group of the first transaction data that meets the preset execution condition and at least one group of second transaction data that does not meet the preset execution condition;
CN649 teaches “comparing and verifying the new execution result with the first execution result of the serial execution queue to obtain a first verification result.” (Page 7 Paragraph 9)
CN587s further teaches “each block chain may perform hash calculation on the execution result corresponding to each of the multiple transactions, to obtain a hash value of each execution result.” (Page 7 Paragraph 15) thereby teaching the comparing/matching using the hash values.
CN649 further teaches “if the transaction return response code is a response code which is executed successfully or the response code is a response code which is executed unsuccessfully but related to the transaction execution sequence, determining the transaction information as first-class transaction information; and if the transaction return response code is a response code which fails to execute and is irrelevant to the transaction execution sequence, determining the transaction information as second type transaction information.” (Page 11 Paragraph 12) thereby teaching determining at least one group of second transaction data that does not meet the preset execution condition.
Thus, it would have been obvious to one of ordinary skill in the art, having the teachings of CN198, CN587 and CN649 at the time that the claimed invention was effectively filed, to have modified the network coding, as taught by CN198, and the systems and methods for providing transaction consensus, as taught by CN649, with the caching of parameters, as taught by CN587.
One would have been motivated to make such modification because CN587 teaches “by applying the scheme, when each transaction is executed, the value of the parameter read by each transaction is not required to be obtained from the state database of the storage area through IO operation, so that the IO operation of the nodes of the block chain is reduced, the purpose of reducing time delay is achieved, the transaction execution efficiency is improved, the problem of transaction data update lag is solved, the value of the parameter stored in the cache area can be more accurate, and the transaction execution success rate is improved.” (Page 14 Paragraph 6).
CN649, CN198, and CN587 explicitly teach all of the elements of the claimed invention as recited above except:
Writing the first hash string of each group of transaction data to a Bloom filter;
However, in the related field of endeavor of transaction verification, Ramabaja teaches:
Writing the first hash string of each group of transaction data to a Bloom filter;
Ramabaja teaches “the transaction verification system operates to cause each computing node of the plurality of computing nodes to execute the pre-processing operation further to calculate a plurality of root hashes of a plurality of bloom trees up to the defined second constant value for the plurality of distributed bloom filters. In the above example, “M” bloom tree root hashes are computed and stored at the computing node (each root hash of a bloom tree is computed from one of the generated distributed bloom filters)” (Para. [0061]).
Thus, it would have been obvious to one of ordinary skill in the art, having the teachings of Ramabaja, CN587, CN198, and CN649 at the time that the claimed invention was effectively filed, to have modified the caching of parameters, as taught by CN587, the network coding, as taught by CN198, and the systems and methods for providing transaction consensus, as taught by CN649, with the use of bloom filters for quickly verifying the presence of a given transaction, as taught by Ramabaja.
One would have been motivated to make such modification because Ramabaja teaches “As each bloom block has ‘M’ root hashes, a computing node can quickly verify the presence of a given transaction, by interacting with other computing nodes” (Para. [0076]) and it would be obvious to a person having ordinary skill in the art that performing a quick verification of the presence of a given transaction using bloom blocks of a bloom filter would improve the overall speed of the overall system and operations.
Regarding Claim 3:
Ramabaja, CN587, CN198, and CN649 further teach:
Creating the corresponding transaction read cache and transaction write cache for each group of transaction data in the plurality of groups of transaction data, wherein
CN587 teaches “the cache region may include at least a first cache region, and the first cache region may be configured to store the identifier and the value of the parameter read from the respective first set of each transaction” (Page 9 Paragraph 5) and “the values of the write parameters included in the execution results of the transactions that are identified successfully in the multiple transactions are stored in the second cache area” (Page 3 Paragraph 29) thereby teaching creating a transaction read cache and a transaction write cache.
The transaction read cache corresponding to the transaction data is configured to store the read data set of the transaction data, the read data set being applied in invoking a smart contract and executing the transaction data; and
CN587 teaches “the cache region may include at least a first cache region, and the first cache region may be configured to store the identifier and the value of the parameter read from the respective first set of each transaction” (Page 9 Paragraph 5).
The transaction write cache corresponding to the transaction data is configured to store the write data set of the transaction data, the write data set storing a transaction execution result obtained after invoking the smart contract and executing the transaction data.
CN587 teaches “the values of the write parameters included in the execution results of the transactions that are identified successfully in the multiple transactions are stored in the second cache area” (Page 3 Paragraph 29).
CN587 further teaches “after the control device obtains all transactions of the plurality of blocks, a respective first set of each transaction may be obtained by pre-executing each transaction. Alternatively, the respective first set of each transaction pre-recorded in the smart contract may also be read, and so on” (Page 11 Paragraph 15) thereby teaching that the transaction results are obtained after invoking the smart contract and executing the transaction data.
Regarding Claim 4:
Ramabaja, CN587, CN198, and CN649 further teach:
Obtaining a read data set of target transaction data from the transaction read cache, and based on invoking information in the read data set of the target transaction data, obtaining a target smart contract for executing the target transaction data, wherein the target transaction data is from the plurality of groups of transaction data; and
CN587 teaches “the cache region may include at least a first cache region, and the first cache region may be configured to store the identifier and the value of the parameter read from the respective first set of each transaction” (Page 9 Paragraph 5).
CN587 further teaches “after the control device obtains all transactions of the plurality of blocks, a respective first set of each transaction may be obtained by pre-executing each transaction. Alternatively, the respective first set of each transaction pre-recorded in the smart contract may also be read” (Page 11 Paragraph 15).
Invoking the target smart contract to execute the target transaction data, to obtain a target transaction execution result, wherein the target transaction execution result is applied in obtaining the write data set of the target transaction data.
CN649 teaches “After the intelligent contract is called in the transaction, transaction result information is obtained, including whether the calling is successful or not and a contract return value.” (Page 5 Last Paragraph – Page 6 Paragraph 1).
CN587 further teaches “the control device of each blockchain node in the blockchain system may first obtain all transactions of the plurality of blocks and a respective first set of the all transactions. Wherein the first set of any transaction may include an identification of parameters accessed by that transaction… the accessed parameters may include read parameters and write parameters” (Page 11 Paragraph 14) and “after the control device obtains all transactions of the plurality of blocks, a respective first set of each transaction may be obtained by pre-executing each transaction. Alternatively, the respective first set of each transaction pre-recorded in the smart contract may also be read, and so on” (Page 11 Paragraph 15).
Regarding Claim 5:
Ramabaja, CN587, CN198, and CN649 further teach:
Wherein the transaction execution result of a group of transaction data is stored in the corresponding transaction write cache in a form of a key-value pair, and the read data set of the group of transaction data is stored to the corresponding transaction read cache in a form of a key-value pair; and
CN587 teaches “the values of the write parameters included in the execution results of the transactions that are identified successfully in the multiple transactions are stored in the second cache area” (Page 3 Paragraph 29).CN587 further teaches “the identifier and the value of the parameter are stored in the local cache region in an associated manner (for example, in the form of a key-value pair)” (Page 9 Paragraph 4).
wherein the write keyword refers to a key in the key-value pair corresponding to the transaction execution result;
CN587 teaches “the values of the write parameters included in the execution results of the transactions that are identified successfully in the multiple transactions are stored in the second cache area” (Page 3 Paragraph 29).CN587 further teaches “the identifier and the value of the parameter are stored in the local cache region in an associated manner (for example, in the form of a key-value pair)” (Page 9 Paragraph 4).
wherein the read keyword refers to a key in the key-value pair corresponding to the read data set; and
CN587 teaches “the accessed parameters may comprise at least the read parameters” (Page 11 Paragraph 14) and “the identifier and the value of the parameter are stored in the local cache region in an associated manner (for example, in the form of a key-value pair)” (Page 9 Paragraph 4).
Regarding Claim 7:
Ramabaja, CN587, CN198, and CN649 further teach:
Wherein the determining, from the plurality of groups of transaction data according to the matching result, the at least one group of the first transaction data that meets the present execution condition comprises:
In response to that the matching result of the transaction data is unsuccessful, determining that transaction data meets the preset execution condition and determining the transaction data to be the first transaction data; and
CN649 teaches “if the transaction return response code is a response code which is executed successfully or the response code is a response code which is executed unsuccessfully but related to the transaction execution sequence, determining the transaction information as first-class transaction information; and if the transaction return response code is a response code which fails to execute and is irrelevant to the transaction execution sequence, determining the transaction information as second type transaction information.” (Page 11 Paragraph 12).
In response to that the matching result of the transaction data is successful, determining that the transaction data does not meet the preset execution condition and determining the transaction data to be the second transaction data.
CN649 teaches “if the transaction return response code is a response code which is executed successfully or the response code is a response code which is executed unsuccessfully but related to the transaction execution sequence, determining the transaction information as first-class transaction information; and if the transaction return response code is a response code which fails to execute and is irrelevant to the transaction execution sequence, determining the transaction information as second type transaction information.” (Page 11 Paragraph 12).
Regarding Claim 8:
Ramabaja, CN587, CN198, and CN649 further teach:
Executing the at least one group of second transaction data in series, to obtain second transaction execution results of the second transaction data;
CN587 teaches “obtain[ing] a plurality of transaction groups, and a plurality of transaction groups are processed in parallel, where, for each transaction group, the transactions included in the transaction group are executed in series” (Page 11 Paragraph 10).
Obtaining first transaction execution results of the at least one group of first transaction data from the transaction execution results of the plurality of groups of transaction data; and
CN587 teaches “For each transaction group, the individual transactions included in the transaction group are executed serially. The computing means C may return the results of the execution of the respective transactions to the communication module of the control means M. And storing the execution result of each transaction in a third cache region by the communication module.” (Page 6 Paragraph 14) thereby teaching obtaining results from different groups of transaction data.
Combining the first transaction execution results and the second transaction execution results, to obtain a transaction combination execution result.
CN587 teaches “For each transaction group, the individual transactions included in the transaction group are executed serially. The computing means C may return the results of the execution of the respective transactions to the communication module of the control means M. And storing the execution result of each transaction in a third cache region by the communication module.” (Page 6 Paragraph 14) thereby teaching combining the execution results for at least storage in the third cache region.
Regarding Claim 9:
Ramabaja, CN587, CN198, and CN649 further teach:
Performing validity verification on the first consensus processing process, and in response to that the verification fails, deleting the first transaction execution results and the second transaction execution results; and
CN649 teaches “the second type of transaction information is transaction information which is executed unsuccessfully and unrelated to the transaction execution sequence” (Page 6 Paragraph 9) where “In an embodiment of the present disclosure, in the process of dropping disk storage in the blockchain, the transaction information in the block may delete the second type of transaction information in the parallel execution queue in the block” (Page 7 Paragraph 16).
Performing the second consensus processing on the plurality of groups of transaction data, to obtain the transaction execution results of the plurality of groups of transaction data.
CN649 teaches “if the failed transaction is rebroadcast to other nodes, view switching is forcibly triggered, and the consensus node is replaced. (this step is mainly to find and verify whether there is transaction information misjudged by the common node in the parallel transaction queue, if there is misjudgment, the new common node packs the transaction misjudged in the next common stage again, at the same time, records the number of times of the packed common execution of the transaction, when exceeding a certain threshold, the transaction information is forcibly abandoned.)” (Page 10 Paragraph 12) thereby teaching performing a second consensus processing.
Regarding Claim 10:
Ramabaja, CN587, CN198, and CN649 further teach:
Wherein the performing validity verification on the first consensus processing process comprises:
Traversing a transaction read cache of the second transaction data, to obtain a read data set of the second transaction data, wherein the read data set is stored to the transaction read cache in form of a key-value pair;
CN587 teaches “for each read parameter identifier in the respective first set of the multiple transactions, if the value of the parameter corresponding to the identifier is not stored in the cache region, the control device obtains the value of the parameter from the state database of the storage device and stores the value of the parameter into the cache region” (Page 4 Paragraph 21) thereby teaching traversing the read data set of each group of transaction data.
CN587 further teaches “the accessed parameters may comprise at least the read parameters” (Page 11 Paragraph 14) and “the identifier and the value of the parameter are stored in the local cache region in an associated manner (for example, in the form of a key-value pair)” (Page 9 Paragraph 4).
Performing a hashing operation on a read keyword of the second transaction data, to obtain a verification hash string of the second transaction data; and
CN587 teaches “the cache region may include at least a first cache region, and the first cache region may be configured to store the identifier and the value of the parameter read from the respective first set of each transaction” (Page 9 Paragraph 5) and “each block chain may perform hash calculation on the execution result corresponding to each of the multiple transactions, to obtain a hash value of each execution result.” (Page 7 Paragraph 15).
CN649 teaches “after the execution of the transaction information is completed, the leader node distinguishes failure types for all transaction information which fails to be executed according to the transaction return response codes of the execution result” (Page 9 Paragraph 18).
Performing matching processing on the verification hash string based on the first hash string stored in a Bloom filter, and in response to that the matching succeeds, determining that verification of the first consensus processing process succeeds.
Ramabaja teaches “the transaction verification system operates to cause each computing node of the plurality of computing nodes to execute the pre-processing operation further to calculate a plurality of root hashes of a plurality of bloom trees up to the defined second constant value for the plurality of distributed bloom filters. In the above example, “M” bloom tree root hashes are computed and stored at the computing node (each root hash of a bloom tree is computed from one of the generated distributed bloom filters)” (Para. [0061]).
Ramabaja further teaches “The bloom blocks of the computing nodes are different from any block of the blockchain, wherein, via its bloom block, each computing node includes a plurality of root hashes of a plurality of bloom trees and one distributed bloom filter.” (Abstract) and “As each bloom block has ‘M’ root hashes, a computing node can quickly verify the presence of a given transaction, by interacting with other computing nodes” (Para. [0076]).
Regarding Claim 11:
Some of the limitations herein are similar to some or all of the limitations of Claim 1.
Ramabaja, CN587, CN198, and CN649 further teach:
At least one memory and one or more processors, the at least one memory storing computer-readable instructions, and the computer-readable instructions, when executed by the one or more processors, causing the one or more processors to implement steps.
CN649 teaches:
“In a third aspect, an embodiment of the present disclosure provides a service device, including: a processor and a memory;
the memory stores computer-executable instructions;
the processor executes computer-executable instructions stored by the memory to cause the processor to perform the blockchain based transaction consensus method as described above in the first aspect and various possible designs of the first aspect.
In a fourth aspect, the embodiments of the present disclosure provide a computer-readable storage medium, in which computer-executable instructions are stored, and when a processor executes the computer-executable instructions, the block chain based transaction consensus method as described in the first aspect and various possible designs of the first aspect is implemented.” (Page 5)
Regarding Claim 13:
All of the limitations herein are similar to some or all of the limitations of Claim 3.
Regarding Claim 14:
All of the limitations herein are similar to some or all of the limitations of Claim 4.
Regarding Claim 15:
All of the limitations herein are similar to some or all of the limitations of Claim 5.
Regarding Claim 17:
All of the limitations herein are similar to some or all of the limitations of Claim 7.
Regarding Claim 18:
All of the limitations herein are similar to some or all of the limitations of Claim 8.
Regarding Claim 19:
All of the limitations herein are similar to some or all of the limitations of Claim 9.
Regarding Claim 20:
Some of the limitations herein are similar to some or all of the limitations of Claim 1.
Ramabaja, CN587, CN198, and CN649 further teach:
One or more non-transitory computer-readable storage media, storing computer-readable instructions, and the computer-readable instructions, when executed by one or more processors, causing the one or more processors to perform steps.
CN649 teaches:
“In a third aspect, an embodiment of the present disclosure provides a service device, including: a processor and a memory;
the memory stores computer-executable instructions;
the processor executes computer-executable instructions stored by the memory to cause the processor to perform the blockchain based transaction consensus method as described above in the first aspect and various possible designs of the first aspect.
In a fourth aspect, the embodiments of the present disclosure provide a computer-readable storage medium, in which computer-executable instructions are stored, and when a processor executes the computer-executable instructions, the block chain based transaction consensus method as described in the first aspect and various possible designs of the first aspect is implemented.” (Page 5)
Claim(s) 2 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Ramabaja, CN587, CN198 and CN649 and further in view of Xiao et al. (U.S. Pre-Grant Publication No. 2023/0130074, hereinafter referred to as Xiao).
Regarding Claim 2:
Ramabaja, CN587, CN198, and CN649 further teach:
Wherein the consensus-pending block records the first transaction data and the second transaction data are based on a differential record rule, and the differential record rule comprises: an arrangement rule and
CN587 teaches “the transactions included in each transaction group may be sorted in the order of transaction reception time. It will be appreciated that all transactions may be grouped in other ways, and the present embodiment is not limited to the specific manner of grouping” (Page 11 –Paragraph 3), thereby teaching a differential record rule comprising an arrangement rule.
a label setting rule;
CN649 teaches “dividing the transaction information into first-type transaction information and second-type transaction information according to a virtual execution result includes…determining the transaction information as first-class transaction information” (Page 4 Paragraphs 20-22) and “classifying the transaction information into first-class transaction information and second-class transaction information” (Page 5 Paragraph 1) thereby teaching at least a class labeling rule.
The packaging the plurality of groups of transaction data, to generate a consensus-pending block comprises:
Packaging the plurality of groups of transaction data according to the arrangement rule, to generate the consensus-pending block,
CN587 teaches “the transactions included in each transaction group may be sorted in the order of transaction reception time. It will be appreciated that all transactions may be grouped in other ways, and the present embodiment is not limited to the specific manner of grouping” (Page 11 – Paragraph 3).CN587 further teaches “the accounting node may package the order of the plurality of transactions and the keys for the parameters read and the keys for the parameters written for each transaction into a packet corresponding to the block” (Page 6 – Paragraph 9)
The target label being set based on the label setting rule, wherein
The first consensus processing and the second consensus processing are performed after packaging the plurality of groups of transaction data based on the arrangement rule.
CN649 teaches at S303 that “the leader node of the block chain carries out serial transaction execution on the first type of transaction information of the serial execution queue to obtain a first execution result, and carries out parallel transaction execution on the second type of transaction information of the parallel execution queue to obtain a second execution result.” and at S304 that “a leader node of the block chain packs the first type of transaction information and the first execution result of the serial execution queue and the second type of transaction information and the second execution result of the parallel execution queue into a block, and sends the block to a copy node of the block chain.” (Page 7).
CN649 further teaches at S305 that “the duplicate node of the block chain unpacks the block, performs serial transaction execution on the first type of transaction information of the serial execution queue and checks the first execution result, performs parallel transaction execution on the second type of transaction information of the parallel execution queue and checks the second execution result to obtain a verification result of the block,” (Page 7).Therefore, CN649 teaches performing the first and second consensus processing (S305) after the packaging based on the arrangement rule (S303).
CN649, CN198, and CN587 explicitly teach all of the elements of the claimed invention as recited above except:
A group of the at least one group of the second transaction data and the consensus-pending block being provided with a target label, and
However, in the related field of endeavor of blockchain transaction processing, Xiao teaches:
A group of the at least one group of the second transaction data and the consensus-pending block being provided with a target label, and
Xiao teaches “a TXID is a character field necessary for labelling transfers in blockchain asset transactions” (Para. [0042]) thereby teaching an additional label setting rule.
Xiao teaches “A TXID, or a Transaction ID, also known as a transaction Hash or a transaction number, is a long string of characters obtained by performing Hash computation to blockchain transaction information. A TXID is a character field necessary for labelling transfers in blockchain asset transactions” (Para. [0042]). Xiao further teaches “Transaction: a block body is formed by transactions, namely, packed transactions. Transactions are actual data stored in a blockchain, and a block records and confirms when and in what order some transactions became a part of the blockchain.” (Para. [0050]).Therefore, Xiao teaches a group of transaction data and the consensus-pending block being provided with a target label, such as a transaction ID.
Thus, it would have been obvious to one of ordinary skill in the art, having the teachings of Xiao, Ramabaja, CN587, CN198, and CN649 at the time that the claimed invention was effectively filed, to have modified the use of bloom filters for quickly verifying the presence of a given transaction, as taught by Ramabaja, the caching of parameters, as taught by CN587, the network coding, as taught by CN198, and the systems and methods for providing transaction consensus, as taught by CN649, with the dynamic joining and exit of nodes, as taught by Xiao,
One would have been motivated to make such combination because Xiao teaches parallelized broadcast and “the structured network topology of the network transmission optimization method is made to address delay among nodes, and is adaptive to dynamic joining and exit of nodes, thereby improving network transmission efficiency” (Abstract).
Regarding Claim 12:
All of the limitations herein are similar to some or all of the limitations of Claim 2.
Response to Amendment
Applicant’s Amendments, filed on 12/10/2025, are acknowledged and accepted.
Response to Arguments
On page 16 of the Remarks filed on 12/10/2025, and with respect to the 101 rejection, Applicant argues that “The claim does not recite organizing human activity, a fundamental economic practice, or mental processes. Nor is it a bare mathematical formula; hashing and Bloom-filter membership tests are recited as parts of a concrete pipeline that cannot practically be performed in the human mind at blockchain scale.”.Applicant’s argument is not convincing because the claims are understood as reciting a combination of steps that can be performed by the human mind or by executing mathematical formulas/functions. It is further noted that a blockchain is merely mentioned in the last limitation in the context of adding a new block to the blockchain rather than performing all of the steps “at the blockchain scale” as the argument indicates.
On pages 16-17 of the Remarks filed on 12/10/2025, and with respect to the 101 rejection, Applicant argues that “the claim as a whole integrates that concept into a practical application that improves the functioning of a computer network, namely, a blockchain consensus system” because “coordinated [claimed] elements materially change how the node processes transactions and schedules consensus, producing more throughput without violating consistency”.Applicant’s argument is not convincing because the claims do not recite any scheduling of consensus, merely processing transaction data, packaging/storing groups of transaction data, performing consensus processing, and then adding a new block to a blockchain at the completion of the consensus processing. Further, abstract ideas capable of being performed by the human mind or that are understood to be executing mathematical formulas/functions do not themselves integrate the abstract idea into a practical application.
On page 17 of the Remarks filed on 12/10/2025, and with respect to the 101 rejection, Applicant argues that “the recited use of a bloom filter…to approximate set intersection between read and write keyspaces, followed by routing to distinct consensus paths, is comparable to the "specific asserted improvement in computer capabilities" that supported eligibility in Enfish (database architecture) and McRO (animation automation). 2019 PEG similarly explains that claims are integrated into a practical application when they improve the functioning of a computer or network. The conflict detection and two-mode consensus scheduling of amended claim 1 fit that pattern.Applicant’s argument is moot because the claims merely recite storing hash string data in a Bloom filter and performing matching with hash string data that has been stored in the Bloom filter. Nowhere do the claims recite using the bloom filter itself for any approximation of set intersection between read and write keyspaces, as is being argued.
On page 18 of the Remarks filed on 12/10/2025, and with respect to the 101 rejection, Applicant argues that “Contrary to the Office's suggestion that "obtaining" or "packaging" is insignificant extra-solution activity, those actions here are not tacked-on data movement. They are integral to the pipeline that enables safe parallelism: the block carries both classes of transactions, and the network nodes use the class information and processing order to complete consensus deterministically. Nor are "computer device,” “read/write caches," or "blockchain" invoked at a high level; the caches supply the read/write key material used in the hashing and Bloom filter operations, and the blockchain commit step is conditioned on the defined parallel-then-serial consensus flow.”Applicant’s argument is not convincing because the act of obtaining data, while the obtained data may be processed in another step, is maintained as being itself insignificant extra-solution activity. It is further noted that the step of “packaging” was never analyzed as being an insignificant extra-solution activity.
On page 18 of the Remarks filed on 12/10/2025, and with respect to the 101 rejection, Applicant argues that “The ordered combination, including hashing write keywords, populating a Bloom filter, hashing read keywords, matching against the filter to classify transactions, then executing a priority consensus schedule with parallel first and serial second paths for a single consensus-pending block, was not conventional in blockchain systems and is not shown in the record to be routine. The Office's characterization of individual steps as generic data handling overlooks how the elements cooperate to yield a new capability: conflict-aware, throughput-maximizing consensus in one block without sacrificing determinism.”Applicant’s argument is not convincing because the specification merely states that throughput and efficiency are improved “because the transaction data can be executed in parallel” (Para. [0046]), not because of the ordered combination being argued. It is further noted that the specification does not mention any maximization of throughput, how conflict awareness improves anything, or even the terms conflict or determinism.
On page 19 of the Remarks filed on 12/10/2025, and with respect to the 101 rejection, Applicant argues that “The rejection does not cite evidence establishing that blockchain nodes conventionally used Bloom filters in the manner claimed (i.e., as a pre-consensus read/write conflict predicter driving a two-path consensus schedule for a single block).”Applicant’s argument is moot because the claims merely recite storing hash string data in a Bloom filter and performing matching with hash string data that has been stored in the Bloom filter. Nowhere do the claims recite using the bloom filter itself for any pre-consensus read/write conflict predicter driving a two-path consensus schedule for a single block, as is being argued.
On page 19 of the Remarks filed on 12/10/2025, and with respect to the 101 rejection, Applicant argues that “The rejection does not…show that this sequencing, i.e., parallel consensus for non-conflicting transactions prioritized over serial consensus for conflicting transactions within the same block, was routine.”Applicant’s argument is moot because the rejection related to parallel and serial consensus is addressing the mere type of consensus processing being used and cites MPEP 2016.05(d)(II)(iv) as being relevant. However, the rejection does not state that performing consensus processing itself is well-understood, routine, or conventional. To the contrary, the rejection understands performing consensus processing as a mathematical concept of executing a mathematical formula by taking as input the transaction data and executing/performing a “consensus processing” formula on the input.
On page 22 of the Remarks filed on 12/10/2025, and with respect to the 103 rejection, Applicant argues that “to the extent CN649 discloses classifying transactions and running parallel/serial based virtual execution, CN649 fails to disclose or suggest hashing read/write keywords and matching in a Bloom filter as a pre-consensus test for parallelizability. Further, although CN587 discloses storing read/write keys, grouping transactions, and hashing transaction results, CN587 still fails to disclose or suggest writing write-key hashes into a Bloom filter and matching read-key hashes against it to decide parallelizability, as recited in amended claim 1. As to Ramabaja, it appears that the Office relies on Ramabaja because Ramabaja mentions "Bloom filters." However, Applicant respectfully notes that Bloom filters are used in Ramabaja for presence verification,not for pre-classifying parallelizability of transactions by intersecting read vs. write sets. In other words, CN649, CN587, and Ramabaja, whether taken alone or in any combination, fail to disclose or suggest the above-emphasized claim elements recited in amended claim 1.”Applicant’s argument is not convincing because the scope of the claims do not appear to reflect the argued scope of using Bloom filters for pre-classifying parallelizability of transactions by intersecting read vs. write sets. Instead, the claims merely recite a scope related to the Bloom filter of “writing a first hash string of each group of transaction data to a Bloom filter” and matching the second hash string of each group of transaction data with each first hash string” where the first hash string is “in the Bloom filter”.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Liu (U.S. Pre-Grant Publication No. 2023/0275771) teaches a transaction data processing method includes executing M transactions among N transactions in parallel during a process of packing the N transactions into a block and performing block consensus on the block, to obtain first transaction execution results. The method further includes identifying, after the block consensus succeeds, transactions identical to the M transactions as a first type of transactions in the block, and classifying the first transaction execution results associated with the M transactions as pre-execution transaction execution results. The method further includes identifying transactions in the block other than the first type of transactions as a second type of transactions, and executing, after the block consensus succeeds, the second type of transactions in parallel to obtain second transaction execution results. The method further includes combining the pre-execution transaction execution results with the second transaction execution results in sequence.It is noted that this reference has the same assignee as the present application and was published after the filing date of the present application.
Davis (U.S. Pre-Grant Publication No. 2017/0344435) teaches a method for recovery of missing or extra data using a bloom filter includes: storing a plurality of transaction messages, each including a transaction value; generating a bloom filter of the transaction messages, the bloom filter being generated using a number of hash rounds and with a size at least double the number of transaction messages; generating a recover message including the number of transaction messages, the number of hash rounds, the size, and the generated bloom filter; transmitting the recover message to a consensus node; receiving a response message from the consensus node, the response message including at least one additional transaction message; and inserting the at least one additional transaction message into the plurality of transaction messages.
Gutierrez-Sheris (U.S. Pre-Grant Publication No. 2020/0396065) teaches applying different types of Fitness Gradient Consensus methodologies, including hash distance and bucket consensus variations within a digital blockchain by calculating the highest fitness value among competing blocks or blockchain segments in order to resolve conflicts and allocate the rewards associated with building new blocks. The improved consensus system applies conflict resolution formulas to incentivize every block-building node in a blockchain network to share every block it generates, as soon as it completes construction, in order to improve chances of a reward, resulting in enhanced blockchain speed and security.
Kelly (U.S. Pre-Grant Publication No. 2019/0334920) teaches providing tenant security and compliance in a cloud computing environment. Specifically, the method and system disclosed herein implement a marketplace solution which extends blockchain technology to the problem of providing defined security levels in the cloud computing environment. In adapting blockchain technology, the method and system disclosed herein provide a mechanism for guaranteeing tenant security without any implication of trust between security providers and security requestors or consumers.
Foreign Publication CN108958925A teaches “The invention discloses an energy-saving Proof of Work (POW for short) method, which includes executing parallel computing tasks, executing serial computing tasks, and solving multiple problems. The invention also discloses an energy-saving workload proof system, which includes a serial calculation module, a parallel calculation module and a plurality of problem solving modules. On the basis of the traditional workload proof, the present invention proposes three-dimensional requirements for each computing node in the blockchain, namely, parallel computing capability, serial computing capability and manual computing capability, and the three dimensions can be adjusted through the consensus mechanism The ratio of calculations to ensure robustness and reduce energy consumption.” (Abstract)The reference further teaches “Preferably, the execution of parallel computing tasks, the execution of serial computing tasks and the execution of multiple problem-solving tasks, the specific execution modes and workloads of these three types of tasks are determined by the implemented consensus mechanism, and the execution mode refers to how To switch between tasks, serial computing tasks and multiple problem-solving tasks, the proportion of the three types of tasks can be adjusted through the consensus mechanism, and the proportion of any type of task can be between 0% and 100%.” and “the execution of parallel computing tasks and the execution of serial computing tasks are mutually exclusive and cannot be performed at the same time.” (Page 2 Paragraphs 10-11)
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ROBERT F MAY whose telephone number is (571)272-3195. The examiner can normally be reached Monday-Friday 9:30am to 6pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Boris Gorney can be reached at 571-270-5626. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ROBERT F MAY/Examiner, Art Unit 2154 1/23/2026
/BORIS GORNEY/Supervisory Patent Examiner, Art Unit 2154