IP Library Granted Patent US 10,608,829
Granted Patent B1
US 10,608,829 · App. 16/153,980 · Granted Mar 31, 2020

Blockchain timestamp agreement

Inventors: Sachiko Yoshihama (Kawasaki, JP); Tatsushi Inagaki (Yokohama, JP); Yohei Ueda (Tokyo, JP); Kohichi Kamijoh (Tokyo, JP); Hiroaki Nakamura (Tokyo, JP)
Assignee: International Business Machines Corporation
H04L9/3297G06F16/1805G06F16/1834G06F16/27G06Q20/382H04L9/0643H04L29/06H04L43/0852H04L43/106H04L2209/38
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 10,608,829
App. No.
16/153,980
Granted
Mar 31, 2020
Kind
B1
Abstract

An example operation may include one or more of receiving a blockchain request from a client application, determining a network latency between the client application and the endorsing node based on a network path between the client application and the endorsing node, extracting a timestamp from the blockchain request, determining whether the extracted timestamp is invalid based on the network latency between the client application and the endorsing node, and in response to determining that the timestamp is valid, generating an endorsement for the blockchain request and transmitting the endorsement to the client application.

Claims (43)

1. An endorsing node, comprising:

a network interface configured to receive a blockchain request from a client application; and

a processor configured to determine a network latency between the client application and the endorsing node based on a network path between the client application and the endorsing node, extract a timestamp from the blockchain request, determine whether the extracted timestamp is invalid based on the network latency between the client application and the endorsing node, and in response to a determination that the timestamp is valid, generate an endorsement for the blockchain request and control the network interface to transmit the endorsement to the client application.

2. The endorsing node of claim 1 , wherein the processor is further configured to decline to endorse the blockchain request in response to a determination that the timestamp is invalid.

3. The endorsing node of claim 1 , wherein the network latency is determined by a monitoring thread that runs on the endorsing node and periodically measures the network latency between the endorsing node and each of multiple client applications within a blockchain network.

4. The endorsing node of claim 1 , wherein the network latency is retrieved from an in-memory storage of the endorsing node.

5. The endorsing node of claim 1 , wherein the processor is configured to estimate a timestamp for the blockchain request based on the network latency and determine whether the extracted timestamp is within a predefined threshold of the estimated timestamp to determine whether the extracted time stamp is valid.

6. The endorsing node of claim 1 , wherein the processor is configured to determine whether the extracted timestamp is too early.

7. The endorsing node of claim 1 , wherein the processor is further configured to simulate the blockchain request and generate the endorsement in response to a determination that the timestamp is valid and the blockchain request is simulated successfully.

8. A method of an endorsing node, comprising:

receiving a blockchain request from a client application;

determining a network latency between the client application and the endorsing node based on a network path between the client application and the endorsing node;

extracting a timestamp from the blockchain request;

determining whether the extracted timestamp is invalid based on the network latency between the client application and the endorsing node; and

in response to determining that the timestamp is valid, generating an endorsement for the blockchain request and transmitting the endorsement to the client application.

9. The method of claim 8 , further comprising, in response to determining that the timestamp is invalid, declining to endorse the blockchain request.

10. The method of claim 8 , wherein the network latency is determined by a monitoring thread running on the endorsing node that periodically measures the network latency between the endorsing node and each of multiple client applications within a blockchain network.

11. The method of claim 8 , wherein the network latency is retrieved from an in-memory storage of the endorsing node.

12. The method of claim 8 , wherein the determining whether the extracted timestamp is invalid comprises estimating a timestamp for the blockchain request based on the network latency and determining whether the extracted timestamp is within a predefined threshold of the estimated timestamp.

13. The method of claim 8 , wherein the determining whether the extracted timestamp is invalid comprises determining whether the extracted timestamp is too early.

14. The method of claim 8 , further comprising simulating the blockchain request and generating the endorsement in response to the timestamp being determined as valid and the blockchain request being simulated successfully.

15. A non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform a method comprising:

receiving a blockchain request from a client application;

determining a network latency between the client application and an endorsing node based on a network path between the client application and the endorsing node;

extracting a timestamp from the blockchain request;

determining whether the extracted timestamp is invalid based on the network latency between the client application and the endorsing node; and

in response to determining that the timestamp is valid, generating an endorsement for the blockchain request and transmitting the endorsement to the client application.

16. An endorsing node, comprising:

a network interface configured to receive a blockchain request from a client application; and

a processor configured to extract a timestamp from the blockchain request, determine whether or not the extracted timestamp is incorrect based on a network latency determined between the client application and the endorsing node by the endorsing node, and in response to a determination that the extracted timestamp is incorrect, determine a correct timestamp for the blockchain request, modify the blockchain request via replacement of the extracted timestamp with the correct timestamp, and control the network interface to transmit the blockchain request with the corrected timestamp to the client application.

17. The endorsing node of claim 16 , wherein the processor is further configured to determine the network latency between the client application and the endorsing node based on a network path between the peer node and the endorsing node.

18. The endorsing node of claim 16 , wherein the processor is configured to estimate a timestamp for the blockchain request based on the network latency and determine whether the extracted timestamp is within a predefined threshold of the estimated timestamp to determine whether the extract timestamp is incorrect.

19. The endorsing node of claim 18 , wherein the processor is configured to replace the extracted timestamp with the estimated timestamp.

20. The endorsing node of claim 16 , wherein the processor is configured to determine whether the extracted timestamp is too early.

21. A method of an endorsing node, comprising:

receiving a blockchain request from a client application;

extracting a timestamp from the blockchain request;

determining whether or not the extracted timestamp is incorrect based on a network latency determined between the client application and the endorsing node determined by the endorsing node; and

in response to a determination that the extracted timestamp is incorrect, determining a correct timestamp for the blockchain request, modifying the blockchain request by replacing the extracted timestamp with the correct timestamp, and transmitting the blockchain request with the corrected timestamp to the client application.

22. The method of claim 21 , further comprising determining the network latency between the client application and the endorsing node based on a network path between the client application and the endorsing node.

23. The method of claim 21 , wherein the determining whether the extracted timestamp is incorrect comprises estimating a timestamp for the blockchain request based on the network latency and determining whether the extracted timestamp is within a predefined threshold of the estimated timestamp.

24. The method of claim 23 , wherein the modifying comprises replacing the extracted timestamp with the estimated timestamp.

25. The method of claim 21 , wherein the determining whether the extracted timestamp is incorrect comprises determining whether the extracted timestamp is too early.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2024
From: GREEN MARKET SQUARE LIMITED
To: WORKDAY, INC.
Reel/Frame 067801/0892 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: GREEN MARKET SQUARE LIMITED
To: WORKDAY, INC.
Reel/Frame 067556/0783 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2022
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GREEN MARKET SQUARE LIMITED
Reel/Frame 058888/0675 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2018
From: YOSHIHAMA, SACHIKO; INAGAKI, TATSUSHI; UEDA, YOHEI; KAMIJOH, KOHICHI; NAKAMURA, HIROAKI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047091/0090 →
Cited By (5)
US 12,192,387 US 12,242,619 US 12,339,377 US 12,423,488 US 12,430,827