IP Library Granted Patent US 11,194,961
Granted Patent B2
US 11,194,961 · App. 16/237,642 · Granted Dec 7, 2021

Systems, methods, and apparatuses for adding a document history graph and corresponding hash value to a blockchain in a cloud based computing environment

Inventors: Chi Wang (Redmond, WA); Edet Edet Nkposong (Mercer Island, WA)
Assignee: salesforce.com, inc.
G06F40/197G06F16/137G06F16/1834G06F16/9024G06F21/604G06F21/606G06F21/6209G06F21/64H04L9/0618H04L9/3239H04L9/3247H04L9/3297H04L63/123G06F2221/2145H04L2209/38H04L2463/121
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,194,961
App. No.
16/237,642
Granted
Dec 7, 2021
Kind
B2
Abstract

In a hosted computing environment a web server receives a document history graph. The web server performs a hash function, providing the document history graph as input to the hash function, the hash function providing a hash value as output. A blockchain services interface in the hosted computing environment generates a blockchain block that includes the hash value in a block payload hash field and the document history graph in a block payload field in the blockchain block. A blockchain consensus manager proposes adding the blockchain block to a private blockchain and receives an indication of consensus A block validator adds the blockchain block to the private blockchain responsive to consensus.

Claims (47)

1. A method performed by a hosted computing environment, the hosted computing environment having at least one processor and a memory therein, the method comprising:

receiving, at a web server in the hosted computing environment, a document history graph;

performing, at the web server, a hash function, providing the document history graph as input to the hash function, the hash function providing a hash value as output;

generating, at a blockchain services interface in the hosted computing environment, a blockchain block that includes the hash value in a block payload hash field and the document history graph in a block payload field of the blockchain block, wherein the blockchain block is generated independently of one or more of: (i) a user client device, and (ii) an application executing on a user client device;

proposing, via a blockchain consensus manager in the hosted computing environment, adding the blockchain block to a private blockchain;

receiving at the blockchain consensus manager an indication of consensus among authorized blockchain nodes in the private blockchain to add the blockchain block to the private blockchain; and

adding, via a block validator in the hosted computing environment, the blockchain block to the private blockchain responsive to receiving the indication of consensus.

2. The method of claim 1 , wherein performing the hash function comprises performing the hash function in response to the web server receiving from a document management application an indication of change to the document history graph.

3. The method of claim 1 , wherein performing the hash function comprises periodically performing the hash function without regard to the web server receiving an indication of change to the document history graph.

4. The method of claim 1 , wherein generating, at the blockchain services interface in the hosted computing environment, the blockchain block, comprises generating the blockchain block in response to the web server receiving from a document management application an indication of change in the document history graph.

5. The method of claim 1 , wherein generating, at the blockchain services interface in the hosted computing environment, the blockchain block, comprises periodically generating the blockchain block without regard to the web server receiving from a document management application an indication of change in the document history graph.

6. The method of claim 1 , wherein receiving, at the web server in the hosted computing environment, the document history graph, comprises:

receiving an initial version of a document and creating a node in the document history graph, the node comprising metadata for the initial version of the document;

receiving additional versions of the document and creating corresponding nodes in the document history graph each comprising metadata for the respective versions of the document; and

receiving a final version of the document and creating a leaf node in the document history graph comprising metadata for the final version of the document.

7. The method of claim 1 , wherein the metadata for each of the initial, respective, and final versions of the document comprises a previous version number associated with an earlier version of the document dating back to the root node, a version number for the version of the document, a pointer to a location in a data store at which the version of the document is stored, a hash value of the version of the document, and a signature of one or more signatories to the version of the document.

8. A system to execute within a hosted computing environment, wherein the system comprises a processor and a memory to execute instructions on the system, the instructions providing:

means for receiving, at a web server in the hosted computing environment, a document history graph;

means for performing, at the web server, a hash function, providing the document history graph as input to the hash function, the hash function providing a hash value as output;

means for generating, at a blockchain services interface in the hosted computing environment, a blockchain block that includes the hash value in a block payload hash field and the document history graph in a block payload field of the blockchain block, wherein the blockchain block is generated independently of one or more of: (i) a user client device, and (ii) an application executing on a user client device;

means for proposing, via a blockchain consensus manager in the hosted computing environment, adding the blockchain block to a private blockchain;

means for receiving at the blockchain consensus manager an indication of consensus among authorized blockchain nodes in the private blockchain to add the blockchain block to the private blockchain; and

means for adding, via a block validator in the hosted computing environment, the blockchain block to the private blockchain responsive to receiving the indication of consensus.

9. The system of claim 8 , wherein the means for performing the hash function comprises means for performing the hash function in response to the web server receiving from a document management application an indication of change to the document history graph.

10. The system of claim 8 , wherein the means for performing the hash function comprises means for periodically performing the hash function without regard to the web server receiving an indication of change to the document history graph.

11. The system of claim 8 , wherein the means for generating, at the blockchain services interface in the hosted computing environment, the blockchain block, comprises means for generating the blockchain block in response to the web server receiving from a document management application an indication of change in the document history graph.

12. The system of claim 8 , wherein the means for generating, at the blockchain services interface in the hosted computing environment, the blockchain block, comprises means for periodically generating the blockchain block without regard to the web server receiving from a document management application an indication of change in the document history graph.

13. The system of claim 8 , wherein the means for receiving, at the web server in the hosted computing environment, the document history graph, comprises:

means for receiving an initial version of a document and creating a node in the document history graph, the node comprising metadata for the initial version of the document;

means for receiving additional versions of the document and creating corresponding nodes in the document history graph each comprising metadata for the respective versions of the document; and

means for receiving a final version of the document and creating a leaf node in the document history graph comprising metadata for the final version of the document.

14. Non-transitory computer readable storage media having instructions stored thereon that, when executed in a hosted computing environment by a processor and a memory therein, cause the hosted computing environment to perform the following operations:

receiving, at a web server in the hosted computing environment, a document history graph;

performing, at the web server, a hash function, providing the document history graph as input to the hash function, the hash function providing a hash value as output;

generating, at a blockchain services interface in the hosted computing environment, a blockchain block that includes the hash value in a block payload hash field and the document history graph in a block payload field of the blockchain block, wherein the blockchain block is generated independently of one or more of: (i) a user client device, and (ii) an application executing on a user client device;

proposing, via a blockchain consensus manager in the hosted computing environment, adding the blockchain block to a private blockchain;

receiving at the blockchain consensus manager an indication of consensus among authorized blockchain nodes in the private blockchain to add the blockchain block to the private blockchain; and

adding, via a block validator in the hosted computing environment, the blockchain block to the private blockchain responsive to receiving the indication of consensus.

15. The non-transitory computer readable storage media of claim 14 , wherein performing the hash function comprises performing the hash function in response to the web server receiving from a document management application an indication of change to the document history graph.

16. The non-transitory computer readable storage media of claim 14 , wherein performing the hash function comprises periodically performing the hash function without regard to the web server receiving an indication of change to the document history graph.

17. The non-transitory computer readable storage media method of claim 14 , wherein generating, at the blockchain services interface in the hosted computing environment, the blockchain block, comprises generating the blockchain block in response to the web server receiving from a document management application an indication of change in the document history graph.

18. The non-transitory computer readable storage media of claim 14 , wherein generating, at the blockchain services interface in the hosted computing environment, the blockchain block, comprises periodically generating the blockchain block without regard to the web server receiving from a document management application an indication of change in the document history graph.

19. The non-transitory computer readable storage media of claim 14 , wherein receiving, at the web server in the hosted computing environment, the document history graph, comprises:

receiving an initial version of a document and creating a node in the document history graph, the node comprising metadata for the initial version of the document;

receiving additional versions of the document and creating corresponding nodes in the document history graph each comprising metadata for the respective versions of the document; and

receiving a final version of the document and creating a leaf node in the document history graph comprising metadata for the final version of the document.

20. The non-transitory computer readable storage media method of claim 14 , wherein the metadata for each of the initial, respective, and final versions of the document comprises a previous version number associated with an earlier version of the document dating back to the root node, a version number for the version of the document, a pointer to a location in a data store at which the version of the document is stored, a hash value of the version of the document, and a signature of one or more signatories to the version of the document.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2019
From: WANG, CHI; NKPOSONG, EDET
To: SALESFORCE.COM, INC.
Reel/Frame 048037/0874 →
Continuity (1)
Related Publication 20200210519A1 · Jul 2, 2020
Cited By (7)
US 12,328,394 US 12,452,066 US 12,537,824 US 12,556,545 US 12,598,193 US 12,598,194 US 12,609,917