IP Library Granted Patent US 11,568,372
Granted Patent B2
US 11,568,372 · App. 16/679,924 · Granted Jan 31, 2023

Deterministic java virtual machine

Inventors: Michael Christopher Hearn (Zurich, CH); Qurratul Ain Shams Asari (London, GB)
Assignee: R3 LTD.
G06Q20/065G06Q20/02G06Q20/382G06Q20/3825G06Q20/3827G06Q20/3829G06Q40/12G06Q50/18H04L9/3236H04L9/3247H04L9/3297G06Q2220/00H04L9/50H04L2209/56
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,568,372
App. No.
16/679,924
Granted
Jan 31, 2023
Kind
B2
Abstract

A method and system are provided to support a decentralized distributed ledger in which transactions are recorded by parties to the transactions without the use of a blockchain. A distributed ledger system provides a protocol framework that supports the development of protocol flows. A protocol flow is computer code that controls the performance of a transaction by the party or parties to the transaction. Protocol flows can be developed for different types of transactions. The distributed ledger system allows transactions to be proposed, accepted, and notarized by a notary and stored without the use of a blockchain ledger. The distributed ledger system can avoid the expense of the computational and storage resources needed to redundantly verify a transaction and store evidence on the many nodes of a blockchain distributed ledger.

Claims (22)

1. A method for modifying target code so that execution of the target code by a virtual machine is deterministic, the method comprising:

accessing, by a computing node, the target code;

disabling catching of an exception by the target code;

relinking, by the computing node, references of the target code from standard functions of a standard runtime library to shadow functions of a shadow runtime library, the shadow functions being deterministic versions of the standard functions; and

directing, by the computing node, use of a hardware-independent floating-point operation.

2. The method of claim 1 wherein the target code is contract code of a distributed ledger system and the virtual machine is a Java virtual machine.

3. The method of claim 2 wherein the contract code is fully pure.

4. The method of claim 2 wherein the directing of use of the hardware-independent floating-point operation includes adding a flag to a method of the target code.

5. The method of claim 2 wherein the relinking of references includes adjusting references in a constant pool.

6. The method of claim 1 further comprising prohibiting the target code from having finalizers and prohibiting calls to a native interface of the virtual machine.

7. The method of claim 1 further comprising prohibiting callbacks by a garbage collector of the virtual machine.

8. The method of claim 1 further comprising modifying calls to a hash code function so that a thread local random number generator of a thread is reseeded before execution begins.

9. A computing system for modifying target code so that execution of the target code by a virtual machine is deterministic, the computing system comprising:

one or more computer-readable storage mediums for storing computer-executable instructions for controlling the one or more computing systems to:

disable catching of an exception by the target code;

relink references of the target code from standard functions of a standard runtime library to shadow functions of a shadow runtime library, the shadow functions being deterministic versions of the standard functions; and

direct use of a hardware-independent floating-point operation; and

one or more processors for executing the computer-executable instructions stored in the one or more computer-readable storage mediums.

10. The computing system of claim 9 wherein the target code is contract code of a distributed ledger system and the virtual machine is a Java virtual machine.

11. The computing system of claim 9 wherein the computer-executable instructions for controlling the one or more computing systems further prohibit the target code from having finalizers and prohibiting calls to a native interface of the virtual machine.

12. The computing system of claim 9 wherein the computer-executable instructions for controlling the one or more computing systems further prohibit callbacks by a garbage collector of the virtual machine.

13. The computing system of claim 9 wherein the computer-executable instructions for controlling the one or more computing systems further modify calls to a hash code function so that a thread local random number generator of a thread is reseeded before execution begins.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2020
From: HEARN, MICHAEL CHRISTOPHER; ASARI, QURRATUL AIN SHAMS
To: R3 LTD.
Reel/Frame 052697/0019 →
Continuity (7)
Division 15364213 · Nov 29, 2016
Continuation In Part 15243402 · Aug 22, 2016
Continuation In Part 15243473 · Aug 22, 2016
Continuation In Part 15243902 · Aug 22, 2016
Provisional Application 62427685 · Nov 29, 2016
Provisional Application 62323952 · Apr 18, 2016
Related Publication 20200074422A1 · Mar 5, 2020