IP Library Granted Patent US 11,803,537
Granted Patent B2
US 11,803,537 · App. 16/777,141 · Granted Oct 31, 2023

Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT)

Inventor: Prithvi Krishnan Padmanabhan (San Ramon, CA)
Assignee: Salesforce, Inc.
G06F16/2379G06F16/214G06F16/258G06F16/27
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,803,537
App. No.
16/777,141
Granted
Oct 31, 2023
Kind
B2
Abstract

Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using Distributed Ledger Technology (DLT) in conjunction with a cloud based computing environment include operating a blockchain interface to the blockchain on behalf of a plurality of tenants of the host organization, in which each one of the plurality of tenants operate as a participating node with access to the blockchain. The system receives input for adding a plurality of authorized network participants to a declared application, updates a blockchain asset on the blockchain containing metadata for the declared application, deploys an executable install package to each of the plurality of authorized network participants for the declared application, retrieves the metadata for the declared application from the blockchain, and displays GUIs specific to the declared application which are auto generated by the executable install package based on the retrieved metadata.

Claims (78)

1. A method performed by a system of a host organization having at least a processor and a memory therein to execute instructions, wherein the method comprises:

operating a blockchain interface to a blockchain on behalf of a plurality of tenants of the host organization, wherein each one of the plurality of tenants operate as a participating node with access to the blockchain, and wherein the operating the blockchain interface on behalf of a plurality of tenants of the host organization comprises, for each tenant:

receiving consent from a participating node of the tenant; and

creating, based on the receiving the consent, a sidechain associated with the participating node, wherein the sidechain is formed from a fork block of the blockchain and further comprises one or more sidechain blocks, and wherein the participating node has access to the one or more sidechain blocks;

receiving an SQL formatted query specifying data records stored within the blockchain;

retrieving, based on the SQL formatted query, metadata from the blockchain describing a data structure for the stored records including relationships between entities within the stored records;

creating RDBMS tables based on the metadata retrieved from the blockchain;

building a temporary view for the stored records within a database of the host organization and formatting the temporary view in an RDBMS format based on the retrieved metadata;

applying the SQL formatted query to the RDBMS tables to identify one or more block numbers associated with the blockchain;

retrieving payload data from the blocks of the blockchain associated with the block numbers, wherein the payload data comprises the stored records in a native blockchain format;

populating the stored records retrieved from the blockchain into the temporary view by populating the payload data into the RDBMS tables; and

applying the received SQL formatted query against the RDBMS tables populated with the payload data within the temporary view in the database system of the host organization.

2. The method of claim 1 , further comprising:

recording all transactions against the blockchain affecting the stored records; and

replaying all transactions recorded against the temporary view to synchronize the temporary view with the blockchain when the blockchain is inaccessible.

3. The method of claim 2 , further comprising:

writing the synchronized temporary view to a new blockchain to migrate the data from the first blockchain to the new blockchain.

4. The method of claim 2 , further comprising:

writing the synchronized temporary view back to the blockchain to restore the stored records onto the blockchain after a catastrophic failure and data loss for the blockchain.

5. The method of claim 1 , wherein the RDBMS tables are contained within an Apex translation engine, and wherein the method further comprises:

receiving the SQL formatted query at the Apex translation engine; and

parsing the SQL formatted query at the Apex translation engine to identify one or more asset identifiers, wherein the asset identifiers are associated with the block numbers.

6. The method of claim 5 , further comprising:

transmitting the parsed SQL query terms and the one or more asset identifiers through an Apex block translator to convert the SQL formatted query into a native blockchain protocol for payload data retrieval from the blockchain.

7. The method of claim 1 , wherein the payload data is provided to an Apex block translator to populate the RDBMS tables.

8. The method of claim 1 :

wherein the payload data is retrieved from the blockchain in a hashed or serialized data format.

9. The method of claim 1 , wherein retrieving the payload data comprises retrieving the blocks of the blockchain associated with the block numbers.

10. The system of claim 1 , wherein the system is further configurable to perform operations including:

recording all transactions against the blockchain affecting the stored records;

replaying all transactions recorded against the temporary view to synchronize the temporary view with the blockchain when the blockchain is inaccessible; and

writing the synchronized temporary view to a new blockchain to migrate the data from the first blockchain to the new blockchain or writing the synchronized temporary view back to the blockchain to restore the stored records onto the blockchain after a catastrophic failure and data loss for the blockchain.

11. The system of claim 1 :

wherein the payload data is retrieved from the blockchain in a hashed or serialized data format.

12. A non-transitory computer-readable storage media having instructions stored thereupon that, when executed by a processor of a system at a host organization, the instructions cause the system to perform operations including:

operating a blockchain interface to a blockchain on behalf of a plurality of tenants of the host organization, wherein each one of the plurality of tenants operate as a participating node with access to the blockchain, and wherein the operating the blockchain interface on behalf of a plurality of tenants of the host organization comprises, for each tenant:

receiving consent from a participating node of the tenant; and

creating, based on the receiving the consent, a sidechain associated with the participating node, wherein the sidechain is formed from a fork block of the blockchain and further comprises one or more sidechain blocks, and wherein the participating node has access to the one or more sidechain blocks;

receiving an SQL formatted query specifying data records stored within the blockchain;

retrieving, based on the SQL formatted query, metadata from the blockchain describing a data structure for the stored records including relationships between entities within the stored records;

creating RDBMS tables based on the metadata retrieved from the blockchain;

building a temporary view for the stored records within a database of the host organization and formatting the temporary view in an RDBMS format based on the retrieved metadata;

applying the SQL formatted query to the RDBMS tables to identify one or more block numbers associated with the blockchain;

retrieving payload data from the blocks of the blockchain associated with the block numbers, wherein the payload data comprises the stored records in a native blockchain format;

populating the stored records retrieved from the blockchain into the temporary view by populating the payload data into the RDBMS tables; and

applying the received SQL formatted query against the RDBMS tables populated with the payload data within the temporary view in the database system of the host organization.

13. The non-transitory computer-readable storage media of claim 12 , wherein the instructions, when executed by the processor, cause the system to perform operations further comprising:

recording all transactions against the blockchain affecting the stored records; and

replaying all transactions recorded against the temporary view to synchronize the temporary view with the blockchain when the blockchain is inaccessible.

14. The non-transitory computer-readable storage media of claim 13 , wherein the instructions, when executed by the processor, cause the system to perform operations further comprising:

writing the synchronized temporary view to a new blockchain to migrate the data from the first blockchain to the new blockchain; or

writing the synchronized temporary view back to the blockchain to restore the stored records onto the blockchain after a catastrophic failure and data loss for the blockchain.

15. The non-transitory computer-readable storage media of claim 12 , wherein the RDBMS tables are contained within an Apex translation engine, and wherein the operations further comprise:

receiving the SQL formatted query at the Apex translation engine; and

parsing the SQL formatted query at the Apex translation engine to identify one or more asset identifiers, wherein the asset identifiers are associated with the block numbers; and

transmitting the parsed SQL query terms and the one or more asset identifiers through an Apex block translator to convert the SQL formatted query into a native blockchain protocol for payload data retrieval from the blockchain.

16. The non-transitory computer-readable storage media of claim 12 , wherein the payload data is provided to an Apex block translator to populate the RDBMS tables.

17. The non-transitory computer-readable storage media of claim 12 :

wherein the payload data is retrieved from the blockchain in a hashed or serialized data format.

18. The non-transitory computer-readable storage media of claim 12 ,

wherein retrieving the payload data comprises retrieving the blocks of the blockchain associated with the block numbers.

19. A system to execute at a host organization, wherein the system comprises:

a memory configured to store non-transitory instructions;

a processor configured to execute the non-transitory instructions to cause the system to carry out operations including:

operating a blockchain interface to a blockchain on behalf of a plurality of tenants of the host organization, wherein each one of the plurality of tenants operate as a participating node with access to the blockchain, and wherein the operating the blockchain interface on behalf of a plurality of tenants of the host organization comprises, for each tenant:

receiving consent from a participating node of the tenant; and

creating, based on the receiving the consent, a sidechain associated with the participating node, wherein the sidechain is formed from a fork block of the blockchain and further comprises one or more sidechain blocks, and wherein the participating node has access to the one or more sidechain blocks;

receiving an SQL formatted query specifying data records stored within the blockchain;

retrieving, based on the SQL formatted query, metadata from the blockchain describing a data structure for the stored records including relationships between entities within the stored records;

creating RDBMS tables based on the metadata retrieved from the blockchain;

building a temporary view for the stored records within a database of the host organization and formatting the temporary view in an RDBMS format based on the retrieved metadata;

applying the SQL formatted query to the RDBMS tables to identify one or more block numbers associated with the blockchain;

retrieving payload data from the blocks of the blockchain associated with the block numbers, wherein the payload data comprises the stored records in a native blockchain format;

populating the stored records retrieved from the blockchain into the temporary view by populating the payload data into the RDBMS tables; and

applying the received SQL formatted query against the RDBMS tables populated with the payload data within the temporary view in the database system of the host organization.

20. The system of claim 19 , wherein the operations further comprise:

recording all transactions against the blockchain affecting the stored records; and

replaying all transactions recorded against the temporary view to synchronize the temporary view with the blockchain when the blockchain is inaccessible.

Assignments (2)
CHANGE OF NAME Recorded Sep 13, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 064896/0941 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2021
From: PADMANABHAN, PRITHVI KRISHNAN
To: SALESFORCE.COM, INC.
Reel/Frame 057848/0344 →
Continuity (4)
Continuation In Part 16399920 · Apr 30, 2019
Continuation In Part 16264645 · Jan 31, 2019
Provisional Application 62839529 · Apr 26, 2019
Related Publication 20200250177A1 · Aug 6, 2020
Cited By (8)
US 12,432,116 US 12,452,066 US 12,609,917 US 12,632,442 US 12,645,674 US 12,670,151 US 12,688,196 US 12,689,572