IP Library Granted Patent US 11,611,560
Granted Patent B2
US 11,611,560 · App. 16/778,628 · Granted Mar 21, 2023

Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform

Inventor: Prithvi Krishnan Padmanabhan (San Ramon, CA)
Assignee: salesforce.com, inc.
H04L63/102G06F16/248G06F16/252G06F16/28G06Q10/10H04L63/08
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,611,560
App. No.
16/778,628
Granted
Mar 21, 2023
Kind
B2
Abstract

Described herein are means for implementing consensus on read via a consensus on write smart contract trigger for a Distributed Ledger Technology (DLT) platform in conjunction with a cloud based computing environment. According to a particular embodiment, there is a system having at least a processor and a memory therein, wherein the system is configurable with means for: operating a blockchain interface to a blockchain on behalf of a plurality of customers of the host organization, in which each of the plurality of customers operate as a participating node on the blockchain; receiving a read request for data stored on the blockchain from a user authenticated with the host organization; issuing a write transaction to the blockchain specifying both (i) the user and (ii) the read request; in which the write transaction automatically triggers execution of a smart contract to enforce access controls for the user; attaining consensus from the participating nodes of the blockchain for the write transaction at the blockchain pursuant to the access controls for the user being validated by the smart contract as allowing the user to read the data identified by the read request, in which the write transaction is added to the blockchain with an indication the user has permission to read the data identified by the read request; retrieving the data from the blockchain identified by the read request; throwing an event indicating the user has permission to read the data identified by the read request and returning as part of the thrown event, the data retrieved from the blockchain; and returning the data retrieved from the blockchain to the user in fulfillment of the read request. Other related embodiments are disclosed.

Claims (96)

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

executing instructions via the processor configurable to cause the system to operate a blockchain interface to a blockchain on behalf of a plurality of customers of the host organization, wherein the host organization operates as a participating node on the blockchain to enable interactions between the host organization and the blockchain and further wherein each of the plurality of customers operate as a participating node on the blockchain;

receiving a read request at the host organization, wherein the read request specifies data to be retrieved which is stored on the blockchain on behalf of a user authenticated with the host organization;

issuing a write transaction, via the participating node of the host organization, by the host organization executing the write transaction to the blockchain specifying both (i) the user and (ii) the read request;

wherein the write transaction automatically triggers execution of a smart contract to enforce access controls for the user;

attaining consensus from the participating nodes of the blockchain for the write transaction at the blockchain pursuant to the access controls for the user being validated by the smart contract as allowing the user to read the data specified by the read request, wherein the write transaction is added to the blockchain with an indication the user has permission to read the data specified by the read request;

wherein the blockchain issues a thrown event indicating the user has permission to read the data specified by the read request and responsively returns the data specified from the blockchain to the host organization;

receiving the data specified at the host organization, sent from the blockchain to the host organization via the blockchain interface; and

returning the data specified by the read request from the host organization to the user in fulfillment of the read request.

2. The method of claim 1 , further comprising:

registering an event listener of the host organization with the blockchain;

catching the thrown event at the event listener of the host organization;

extracting the data retrieved from the blockchain from the thrown event; and

wherein returning the data retrieved from the blockchain to the user comprises the event listener returning the data retrieved to the user as extracted from the thrown event.

3. The method of claim 1 , further comprising:

periodically polling the blockchain to determine whether consensus has been attained for the write transaction indicating the user has permission to read the data identified by the read request;

wherein retrieving the data from the blockchain identified by the read request comprises retrieving the data responsive to the periodic polling of the blockchain determining that consensus has been attained for the write transaction; and

wherein returning the data retrieved from the blockchain to the user in fulfillment of the read request is performed responsive to determining that consensus has been attained for the write transaction.

4. The method of claim 1 , further comprising:

receiving a second read request for other data stored on the blockchain from the user authenticated with the host organization;

issuing a second write transaction to the blockchain specifying both (i) the user and (ii) the read second read request;

wherein the second write transaction automatically triggers execution of the smart contract to enforce the access controls for the user; and

wherein consensus fails for the second write transaction.

5. The method of claim 4 :

wherein the second write transaction is prevented from being written to the blockchain; and

wherein executing the smart contract throws a second event indicating the user lacks permission to read the other data identified by the read request.

6. The method of claim 1 , wherein throwing the event comprises the smart contract executing on the blockchain throwing the event indicating either a denial of the read request based on the user lacking permission to read the data or an approval of the read request based the user having permission to read the data identified by the read request pursuant to access controls.

7. The method of claim 1 , further comprising:

executing a second smart contract on the blockchain;

wherein the second smart contract reads the write transaction having previously been added to the blockchain with the indication the user has permission to read the data identified by the read request; and

wherein the second smart contract executing on the blockchain throws the event indicating the user has permission to read the data identified by the read request and returning as part of the thrown event, the data retrieved from the blockchain.

8. The method of claim 1 :

wherein an event listener executing at the host organization subscribes to write events on the blockchain;

wherein the event listener receives a notification from the blockchain upon consensus being attained for the write transaction and the write transaction having been successfully added to the blockchain with the indication that the user has permission to read the data identified by the read request from the blockchain; and

wherein throwing the event comprises the event listener throwing the event indicating the user has permission to read the data identified by the read request and returning as part of the thrown event, the data retrieved from the blockchain.

9. The method of claim 1 :

wherein the blockchain provides access controls for write transactions to the blockchain; and

wherein the blockchain does not provide access controls for read transactions from the blockchain.

10. The method of claim 1 :

wherein an implementing protocol for the blockchain provides consensus on write;

wherein any write transaction on the blockchain is subjected to consensus by the participating nodes on the blockchain; and

wherein the implementing protocol for the blockchain does not require consensus for reads from the blockchain.

11. The method of claim 1 , further comprising:

associating the smart contract with a transaction type corresponding to the write transaction for the blockchain;

wherein the smart contract implements a consensus on read validation scheme triggered by the write transaction matching the transaction type associated with the smart contract;

wherein the smart contract reads metadata from the blockchain defining the access controls for the user enforces the access controls for read requests arriving at the blockchain via write transactions to the blockchain.

12. The method of claim 1 , further comprising:

receiving input from a GUI defining access controls for one or more users of the host organization;

generating metadata representing the defined access controls; and

transacting the metadata representing the defined access controls onto the blockchain; and

wherein the smart contract reads the metadata representing the defined access controls from the blockchain at run-time to enforce the access controls for the user's read request.

13. Non-transitory computer readable storage media having instructions stored thereon that, when executed by a system of a host organization having at least a processor and a memory therein, the instructions cause the system to perform the following operations:

executing instructions via the processor configurable to cause the system to operate a blockchain interface to a blockchain on behalf of a plurality of customers of the host organization, wherein the host organization operates as a participating node on the blockchain to enable interactions between the host organization and the blockchain and further wherein each of the plurality of customers operate as a participating node on the blockchain;

receiving a read request at the host organization, wherein the read request specifies data to be retrieved which is stored on the blockchain on behalf of a user authenticated with the host organization;

issuing a write transaction, via the participating node of the host organization, by the host organization executing the write transaction to the blockchain specifying both (i) the user and (ii) the read request;

wherein the write transaction automatically triggers execution of a smart contract to enforce access controls for the user;

attaining consensus from the participating nodes of the blockchain for the write transaction at the blockchain pursuant to the access controls for the user being validated by the smart contract as allowing the user to read the data specified by the read request, wherein the write transaction is added to the blockchain with an indication the user has permission to read the data specified by the read request;

wherein the blockchain issues a thrown event indicating the user has permission to read the data specified by the read request and responsively returns the data specified from the blockchain to the host organization;

receiving the data specified at the host organization, sent from the blockchain to the host organization via the blockchain interface; and

returning the data specified by the read request from the host organization to the user in fulfillment of the read request.

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

registering an event listener of the host organization with the blockchain;

catching the thrown event at the event listener of the host organization;

extracting the data retrieved from the blockchain from the thrown event; and

wherein returning the data retrieved from the blockchain to the user comprises the event listener returning the data retrieved to the user as extracted from the thrown event.

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

periodically polling the blockchain to determine whether consensus has been attained for the write transaction indicating the user has permission to read the data identified by the read request;

wherein retrieving the data from the blockchain identified by the read request comprises retrieving the data responsive to the periodic polling of the blockchain determining that consensus has been attained for the write transaction; and

wherein returning the data retrieved from the blockchain to the user in fulfillment of the read request is performed responsive to determining that consensus has been attained for the write transaction.

16. The non-transitory computer readable storage media of claim 13 : wherein the second write transaction is prevented from being written to the blockchain; and

wherein executing the smart contract throws a second event indicating the user lacks permission to read the other data identified by the read request.

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

wherein an event listener executing at the host organization subscribes to write events on the blockchain;

wherein the event listener receives a notification from the blockchain upon consensus being attained for the write transaction and the write transaction having been successfully added to the blockchain with the indication that the user has permission to read the data identified by the read request from the blockchain; and

wherein throwing the event comprises the event listener throwing the event indicating the user has permission to read the data identified by the read request and returning as part of the thrown event, the data retrieved from the blockchain.

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

a memory to store instructions;

a set of one or more processors;

a non-transitory machine-readable storage medium that provides instructions that, when executed by the set of one or more processors, the instructions stored in the memory are configurable to cause the system to perform operations comprising:

executing instructions via the processor configurable to cause the system to operate a blockchain interface to a blockchain on behalf of a plurality of customers of the host organization, wherein the host organization operates as a participating node on the blockchain to enable interactions between the host organization and the blockchain and further wherein each of the plurality of customers operate as a participating node on the blockchain;

receiving a read request at the host organization, wherein the read request specifies data to be retrieved which is stored on the blockchain on behalf of a user authenticated with the host organization;

issuing a write transaction, via the participating node of the host organization, by the host organization executing the write transaction to the blockchain specifying both (i) the user and (ii) the read request;

wherein the write transaction automatically triggers execution of a smart contract to enforce access controls for the user;

attaining consensus from the participating nodes of the blockchain for the write transaction at the blockchain pursuant to the access controls for the user being validated by the smart contract as allowing the user to read the data specified by the read request, wherein the write transaction is added to the blockchain with an indication the user has permission to read the data specified by the read request;

wherein the blockchain issues a thrown event indicating the user has permission to read the data specified by the read request and responsively returns the data specified from the blockchain to the host organization;

receiving the data specified at the host organization, sent from the blockchain to the host organization via the blockchain interface; and

returning the data specified by the read request from the host organization to the user in fulfillment of the read request.

19. The system of claim 18 , wherein the system is further configured to:

register an event listener of the host organization with the blockchain;

catch the thrown event at the event listener of the host organization;

extract the data retrieved from the blockchain from the thrown event; and

wherein returning the data retrieved from the blockchain to the user comprises the event listener to return the data retrieved to the user as extracted from the thrown event.

20. The system of claim 18 , wherein the system is further configured to:

periodically poll the blockchain to determine whether consensus has been attained for the write transaction indicating the user has permission to read the data identified by the read request;

wherein retrieving the data from the blockchain identified by the read request comprises the system to retrieve the data responsive to the periodic polling of the blockchain determining that consensus has been attained for the write transaction; and

wherein returning the data retrieved from the blockchain to the user in fulfillment of the read request is performed responsive to determining that consensus has been attained for the write transaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2021
From: PADMANABHAN, PRITHVI KRISHNAN
To: SALESFORCE.COM, INC.
Reel/Frame 057849/0098 →
Continuity (1)
Related Publication 20210243193A1 · Aug 5, 2021
Cited By (9)
US 12,328,394 US 12,354,089 US 12,380,430 US 12,469,077 US 12,526,155 US 12,632,442 US 12,645,674 US 12,670,151 US 12,688,196