IP Library Granted Patent US 10,789,064
Granted Patent B2
US 10,789,064 · App. 16/834,559 · Granted Sep 29, 2020

Function-as-a-service (FaaS) platform in blockchain networks

Inventors: Kailai Shao (Hangzhou, CN); Xuming Lu (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F8/70G06F9/46H04L9/3239H04L2209/38H04L2209/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 10,789,064
App. No.
16/834,559
Granted
Sep 29, 2020
Kind
B2
Abstract

Implementations of the present specification include receiving, from a smart contract, and by a function controller executing within the blockchain network, a function call to execute a function, the function call including data for execution of the function, transmitting, by the function controller, the data of the function call to a function component, the function component executing the function based on the data of the function call, receiving, by the function controller, a function result from the function component, and providing, by the function controller, the function result to the smart contract.

Claims (62)

1. A computer-implemented method providing a function-as-a-service (FaaS) platform within a blockchain network, the computer-implemented method being executed by one or more processors, the computer-implemented method comprising:

initiating, by a first blockchain node in the blockchain network, a request to execute a transaction using a smart contract associated with the first or a second blockchain node in the blockchain network;

receiving, by the smart contract, the request to execute the transaction;

determining, by the smart contract, a first function of the transaction to be executed;

receiving, from the smart contract, and by a first function controller executing within the blockchain network, a first function call to execute the first function of the transaction, wherein the first function call comprises data of the first function call for execution;

transmitting, by the first function controller, the data of the first function call for execution to a first function component;

executing, by the first function component, the first function of the transaction based on the data of the first function call for execution;

receiving, by the first function controller, a first function execution result from the first function component; and

providing, by the first function controller, the first function execution result to the smart contract prior to execution, by the smart contract, of the transaction at least partially based on the first function execution result.

2. The computer-implemented method of claim 1 , wherein the first function call further comprises an address of the first function of the transaction and a version identifier of the first function of the transaction.

3. The computer-implemented method of claim 2 , wherein the version identifier of the first function of the transaction is null indicating that a latest version of the first function of the transaction is to be executed.

4. The computer-implemented method of claim 1 , further comprising updating, by the first function controller, statistics associated with a version of the first function of the transaction that was executed in response to the first function call.

5. The computer-implemented method of claim 4 , wherein the statistics indicate a number of times each version of the first function of the transaction has been executed.

6. The computer-implemented method of claim 1 , further comprising:

receiving, from the smart contract, and by a second function controller executing within the blockchain network, a second function call to execute a second function of the transaction, wherein the second function call comprises data of the second function call for execution, wherein the second function of the transaction is different from the first function of the transaction, and wherein the second function controller is different from the first function controller;

transmitting, by the second function controller, the data of the second function call for execution to a second function component, wherein the second function component is different from the first function component;

executing, by the second function component, the second function of the transaction based on the data of the second function call for execution;

receiving, by the second function controller, a second function execution result from the second function component; and

providing, by the second function controller, the second function execution result to the smart contract prior to execution, by the smart contract, of the transaction at least partially based on the second function execution result.

7. The computer-implemented method of claim 6 , wherein the first function of the transaction and the second function of the transaction are provided by different providers.

8. One or more non-transitory computer-readable storage media encoded with instructions executed by one or more computers that cause the one or more computers to perform operations providing a function-as-a-service (FaaS) platform within a blockchain network, the operations comprising:

initiating, by a first blockchain node in the blockchain network, a request to execute a transaction using a smart contract associated with the first or a second blockchain node in the blockchain network;

receiving, by the smart contract, the request to execute the transaction;

determining, by the smart contract, a first function of the transaction to be executed;

receiving, from the smart contract, and by a first function controller executing within the blockchain network, a first function call to execute the first function of the transaction, wherein the first function call comprises data of the first function call for execution;

transmitting, by the first function controller, the data of the first function call for execution to a first function component;

executing, by the first function component, the first function of the transaction based on the data of the first function call for execution;

receiving, by the first function controller, a first function execution result from the first function component; and

providing, by the first function controller, the first function execution result to the smart contract prior to execution, by the smart contract, of the transaction at least partially based on the first function execution result.

9. The one or more non-transitory computer-readable storage media of claim 8 , wherein the first function call further comprises an address of the first function of the transaction and a version identifier of the first function of the transaction.

10. The one or more non-transitory computer-readable storage media of claim 9 , wherein the version identifier of the first function of the transaction is null indicating that a latest version of the first function of the transaction is to be executed.

11. The one or more non-transitory computer-readable storage media of claim 8 , wherein the operations further comprise updating, by the first function controller, statistics associated with a version of the first function of the transaction that was executed in response to the first function call.

12. The one or more non-transitory computer-readable storage media of claim 11 , wherein the statistics indicate a number of times each version of the first function of the transaction has been executed.

13. The one or more non-transitory computer-readable storage media of claim 8 , wherein the operations further comprise:

receiving, from the smart contract, and by a second function controller executing within the blockchain network, a second function call to execute a second function of the transaction, wherein the second function call comprises data of the second function call for execution, wherein the second function of the transaction is different from the first function of the transaction, and wherein the second function controller is different from the first function controller;

transmitting, by the second function controller, the data of the second function call for execution to a second function component, wherein the second function component is different from the first function component;

executing, by the second function component, the second function of the transaction based on the data of the second function call for execution;

receiving, by the second function controller, a second function execution result from the second function component; and

providing, by the second function controller, the second function execution result to the smart contract prior to execution, by the smart contract, of the transaction at least partially based on the second function execution result.

14. The one or more non-transitory computer-readable storage media of claim 13 , wherein the first function of the transaction and the second function of the transaction are provided by different providers.

15. A system, comprising:

one or more computers; and

one or more memories coupled to the one or more computers and stored with instructions executed by the one or more computers to perform operations providing a function-as-a-service (FaaS) platform within a blockchain network, the operations comprising:

initiating, by a first blockchain node in the blockchain network, a request to execute a transaction using a smart contract associated with the first or a second blockchain node in the blockchain network;

receiving, by the smart contract, the request to execute the transaction;

determining, by the smart contract, a first function of the transaction to be executed;

receiving, from the smart contract, and by a first function controller executing within the blockchain network, a first function call to execute the first function of the transaction, wherein the first function call comprises data of the first function call for execution;

transmitting, by the first function controller, the data of the first function call for execution to a first function component;

executing, by the first function component, the first function of the transaction based on the data of the first function call for execution;

receiving, by the first function controller, a first function execution result from the first function component; and

providing, by the first function controller, the first function execution result to the smart contract prior to execution, by the smart contract, of the transaction at least partially based on the first function execution result.

16. The system of claim 15 , wherein the first function call further comprises an address of the first function of the transaction and a version identifier of the first function of the transaction.

17. The system of claim 16 , wherein the version identifier of the first function of the transaction is null indicating that a latest version of the first function of the transaction is to be executed.

18. The system of claim 15 , wherein the operations further comprise updating, by the first function controller, statistics associated with a version of the first function of the transaction that was executed in response to the first function call.

19. The system of claim 18 , wherein the statistics indicate a number of times each version of the first function of the transaction has been executed.

20. The system of claim 15 , wherein the operations further comprise:

receiving, from the smart contract, and by a second function controller executing within the blockchain network, a second function call to execute a second function of the transaction, wherein the second function call comprises data of the second function call for execution, wherein the second function of the transaction is different from the first function of the transaction, and wherein the second function controller is different from the first function controller;

transmitting, by the second function controller, the data of the second function call for execution to a second function component, wherein the second function component is different from the first function component;

executing, by the second function component, the second function of the transaction based on the data of the second function call for execution;

receiving, by the second function controller, a second function execution result from the second function component; and

providing, by the second function controller, the second function execution result to the smart contract prior to execution, by the smart contract, of the transaction at least partially based on the second function execution result.

21. The system of claim 20 , wherein the first function of the transaction and the second function of the transaction are provided by different providers.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2020
From: SHAO, KAILAI; LU, XUMING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052575/0898 →