IP Library Granted Patent US 11,734,047
Granted Patent B2
US 11,734,047 · App. 17/335,912 · Granted Aug 22, 2023

Language agnostic smart contract execution on a blockchain

Inventor: Ian Holsman (Minneapolis, MN)
Assignee: Bullish Global
G06F9/45558G06F8/33G06F21/53H04L9/0643G06F2009/45562G06F2009/45587G06F2221/2141G06F2221/2149H04L9/50
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,734,047
App. No.
17/335,912
Granted
Aug 22, 2023
Kind
B2
Abstract

A method for providing a language agnostic contract execution on a blockchain is provided. The method includes providing a menu comprising multiple execution environments, and selecting, from a suite of virtual machine containers, a virtual machine container that runs an execution environment selected by the developer of the blockchain application. The method also includes enabling one or more functions in the virtual machine container to access a dedicated memory or a state variable in the block producer to run an action in the virtual machine container, the action provided by a server running the blockchain application, providing the action to the blockchain application in the virtual machine container, and writing an output from the action of the blockchain application to a secure ledger in a blockchain. A system and a non-transitory, computer-readable medium storing instructions to perform the above method are also provided.

Claims (40)

1. A computer-implemented method for smart contract execution on a blockchain, comprising:

providing, to a developer of a blockchain application accessed by a block producer, a menu comprising a list of multiple execution environments, wherein the blockchain application is hosted by a server as an immutable register in a suite of virtual machine containers;

searching for the developer a virtual machine container that runs an execution environment, associated with the provided list of multiple execution environments, requested by the developer;

selecting, from a search result, the virtual machine container that runs the execution environment selected by the developer of the blockchain application from the menu;

enabling one or more functions in the virtual machine container to access a dedicated memory or a state variable in the block producer to run an action in the virtual machine container, the action provided by a server running the blockchain application for allowing the server to access the dedicated memory or the state variable from the one or more functions of the blockchain application executable in the virtual machine container provided by the server;

providing the action to the blockchain application in the virtual machine container; and

preventing access to the blockchain application with a security feature in an associated virtual machine container.

2. The computer-implemented method of claim 1 , wherein providing a menu comprising multiple execution environments comprises providing a menu including at least one of JVM, native, and C++ execution environments.

3. The computer-implemented method of claim 1 , wherein providing a menu comprising multiple execution environments comprises providing a menu including one or more versions of a same execution environment.

4. The computer-implemented method of claim 1 , wherein enabling one or more functions to access a dedicated memory space comprises executing a software development kit to access the state variable and a library accessible to the developer of the blockchain application.

5. The computer-implemented method of claim 1 , further comprising preventing access to the blockchain application by a third party with a security feature in the virtual machine container.

6. The computer-implemented method of claim 1 , wherein selecting a virtual machine that runs an execution environment selected by the developer comprises detecting the execution environment from a format of a header in a code script provided by the developer.

7. The computer-implemented method of claim 1 , wherein selecting a virtual machine container that runs an execution environment selected by the developer of the blockchain application comprises selecting the virtual machine container that runs an updated version of the execution environment selected by the developer.

8. The computer-implemented method of claim 1 , further comprising identifying a string of characters in a code script from a client device to automatically select the execution environment for the developer.

9. The computer-implemented method of claim 1 , further comprising configuring a virtual machine container to run an execution environment requested by the developer.

10. The computer-implemented method of claim 1 , further comprising allowing a server to access an updated value of the state variable from the blockchain application.

11. A system for smart contract execution on a blockchain, comprising:

a memory configured to store instructions; and

one or more hardware processors configured to execute the instructions to cause the system to:

provide, to a developer of a blockchain application accessed by a block producer, a menu comprising a list of multiple execution environments, wherein the blockchain application is hosted by a server as an immutable register in a suite of virtual machine containers;

search for the developer a virtual machine container that runs an execution environment, associated with the provided list of multiple execution environments, requested by the developer;

select, from a search result, the virtual machine container that runs the execution environment selected by the developer of the blockchain application from the menu;

enable one or more functions in the virtual machine container to access a dedicated memory or a state variable in the block producer to run an action in the virtual machine container, the action provided by a server running the blockchain application to allow the server to access the dedicated memory or the state variable from the one or more functions of the blockchain application executable in the virtual machine container provided by the server;

provide the action to the blockchain application in the virtual machine container; and

prevent access to the blockchain application with a security feature in an associated virtual machine container.

12. The system of claim 11 , wherein providing a menu comprising multiple execution environments comprises providing a menu including one or more versions of a same execution environment.

13. The system of claim 11 , wherein enabling one or more functions to access a dedicated memory space comprises executing a software development kit to access the state variable and a library accessible to the developer of the blockchain application.

14. The system of claim 11 , further comprising preventing access to the blockchain application by a third party with a security feature in the virtual machine container.

15. The system of claim 11 , wherein selecting a virtual machine that runs an execution environment selected by the developer comprises detecting the execution environment from a format of a header in a code script provided by the developer.

16. A non-transitory, computer-readable storage medium storing instructions which, when executed by a hardware processor, cause a computer to perform a method for smart contract execution on a blockchain, the method comprising:

providing, to a developer of a blockchain application accessed by a block producer, a menu comprising a list of multiple execution environments, wherein the blockchain application is hosted by a server as an immutable register in a suite of virtual machine containers;

searching for the developer a virtual machine container that runs an execution environment, associated with the provided list of multiple execution environments, requested by the developer;

selecting, from a search result, the virtual machine container that runs the execution environment selected by the developer of the blockchain application from the menu; enabling one or more functions in the virtual machine container to access a dedicated memory or a state variable in the block producer to run an action in the virtual machine container, the action provided by a server running the blockchain application for allowing the server to access the dedicated memory or the state variable from the one or more functions of the blockchain application executable in the virtual machine container provided by the server;

providing the action to the blockchain application in the virtual machine container;

preventing access to the blockchain application with a security feature in an associated virtual machine container; and

writing an output from the action of the blockchain application to a secure ledger in the blockchain.

17. The non-transitory, computer-readable medium of claim 16 wherein, in the method, enabling one or more functions to access a dedicated memory space comprises executing a software development kit to access the state variable and a library accessible to the developer of the blockchain application.

18. The non-transitory, computer-readable medium of claim 16 , wherein the method further comprises preventing access to the blockchain application by a third party with a security feature in the virtual machine container.

19. The non-transitory, computer-readable medium of claim 16 wherein, in the method, selecting a virtual machine that runs an execution environment selected by the developer comprises detecting the execution environment from a format of a header in a code script provided by the developer.

20. The non-transitory, computer-readable medium of claim 16 , wherein the method further comprises at least one of searching for a virtual machine container that runs an execution environment requested by the developer, and configuring a virtual machine container to run an execution environment requested by the developer.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2022
From: BLOCK.ONE
To: BULLISH GLOBAL
Reel/Frame 059068/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2021
From: BLOCK.ONE LLC
To: BLOCK.ONE
Reel/Frame 058144/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2021
From: HOLSMAN, IAN
To: BLOCK.ONE LLC
Reel/Frame 056418/0050 →
Continuity (2)
Continuation 17177110 · Feb 16, 2021
Related Publication 20220261267A1 · Aug 18, 2022