CPC G06F 21/6227 (2013.01) [G06F 16/128 (2019.01); G06F 16/137 (2019.01); G06F 16/1734 (2019.01); G06F 16/182 (2019.01); G06F 16/1865 (2019.01); G06F 16/2358 (2019.01); G06F 16/2379 (2019.01); G06F 21/602 (2013.01); H04L 9/0643 (2013.01); H04L 9/3247 (2013.01)] | 22 Claims |
1. A method for synchronization of node structured query language (SQL) relational databases in an SQL relational database system and replicating data across nodes in the SQL relational database system, said SQL relational database system comprising a plurality of validation nodes each comprising a node relational database, each node relational database being an SQL database, each node relational database further being a copy of a shared relational database or being in a condition to be synchronized in accordance with the method to be a copy of the shared relational database, the SQL relational database system further comprising a client node, wherein at least one of the plurality of validation nodes is a primary validation node, the primary validation node having received a transaction message comprising instructions to modify data records in the node SQL relational databases of the SQL relational database system, wherein each of the validation nodes stores, in its respective node relational database, a respective blockchain of data blocks, wherein each data block in the blockchain of data blocks comprises at least a cryptographically unambiguous identifier of a previous data block in the respective blockchain of data blocks, wherein each data block further comprises one or more transaction messages being ordered so that they are executed in a predetermined order, the method comprising:
a) the primary validation node making a save point for a primary validation node relational database of the primary validation node, the save point creating a state of the primary validation node relational database to which the primary validation node relational database can be reverted to, at a later point in time, so that the primary validation node can tentatively carry out the instructions in the transaction message and later roll back the primary validation node relational database to the state of the primary validation node relational database present before making the save point;
b) the primary validation node attempting to carry out the instructions in the transaction message and, if the attempt to carry out the instructions is successful:
c) the primary validation node storing a first data block in the primary validation node relational database as part of a blockchain of data blocks of the primary validation node, the first data block comprising the transaction message and a cryptographically unambiguous identifier of a data block of the blockchain of data blocks of the primary validation node preceding the first data block;
d) the primary validation node creating a first cryptographically unambiguous identifier of the first data block, and storing the first cryptographically unambiguous identifier in the primary validation node relational database of the primary validation node; and
e) the primary validation node sending a first block message to a first non-primary validation node of the plurality of validation nodes, the first block message comprising the first data block and the first cryptographically unambiguous identifier of the first data block;
f) the first non-primary validation node receiving the first block message, and creating a save point for a first non-primary validation node relational database of the first non-primary validation node, the save point creating a state of the first non-primary validation node relational database to which the first non-primary validation node relational database can be reverted to at a later point in time, so that the first non-primary validation node can tentatively carry out the instructions in the transaction message of the first block message and later roll back the first non-primary validation node relational database to the state of the first non-primary validation node relational database present before making the save point;
g) the first non-primary validation node attempting to carry out the instructions in the transaction message in the first block message so as to arrive at a first non-primary validation node relational database that matches the primary validation node relational database and, if the first non-primary validation node is successful in carrying out the instructions in the transaction message in the first block message:
h) the first non-primary validation node storing a second data block in the first non-primary validation node relational database as part of a blockchain of data blocks of the first non-primary validation node, the second data block comprising the transaction message and a cryptographically unambiguous identifier of a data block of the blockchain of data blocks of the first non-primary validation node preceding the second data block; and
i) the first non-primary validation node creating a second cryptographically unambiguous identifier of the second data block, and storing the second cryptographically unambiguous identifier in the first non-primary validation node relational database; and
j) the primary validation node and the first non-primary validation node removing their respective save points based on a predetermined number of the plurality of validation nodes having achieved identical blockchain of data blocks, wherein a determination of whether the plurality of validation nodes have achieved the identical blockchain of blocks comprises using a consensus algorithm.
|