IP Library › Granted Patent US 11,928,049
Granted Patent B2
US 11,928,049 · App. 17/315,745 · Granted Mar 12, 2024

Blockchain system for source code testing and script generation with artificial intelligence

Inventors: Obi Reddy Yanamala (Hyderabad, IN); Kumaresan Karuppiah (Chennai, IN); Vinay Jaisinghani (Navi Mumbai, IN); Ravi Ranjan Shandilya (Hyderabad, IN); Samson Paulraj (Hyderabad, IN)
Assignee: Bank of America Corporation
G06F11/3684G06F8/65G06F11/3664G06F16/27G06F21/604G06N5/04H04L9/3239G06F11/3688H04L9/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,928,049
App. No.
17/315,745
Granted
Mar 12, 2024
Kind
B2
Abstract

Aspects of this disclosure relate to a blockchain system for management of scripts associated with software applications. The blockchain system may be supplemented by an artificial intelligence (AI)-based system for generation of test scripts. The blockchain system may employ smart contracts for submission and validation of scripts by different nodes of a peer-to-peer (P2P) network.

Claims (59)

1. A system for validating and updating scripts associated with a plurality of software components of a software application, the system comprising:

a user computing device comprising at least one first processor and a memory storing first computer-readable instructions that, when executed by the at least one first processor, cause the user computing device to:

receive user input comprising a script associated with a software component of the plurality of software components; and

send the script to a plurality of nodes of a peer-to-peer (P2P) network and an ordering server;

a node, of the plurality of nodes of the P2P network, comprising at least one second processor and a memory storing second computer-readable instructions that, when executed by the at least one second processor, cause the node to send an endorsement response for the script, wherein the plurality of nodes are associated with corresponding local copies of a blockchain and local copies of a world state;

the ordering server comprising at least one third processor and a memory storing third computer-readable instructions that, when executed by the at least one third processor, cause the ordering server to:

receive, from the plurality of nodes of the P2P network, endorsement responses;

generate a new block for addition to the local copies of the blockchain, wherein generating the new block comprises:

generating a hash value based on the script, the endorsement responses, and an immediately preceding block hash in the blockchain, and

generating the new block, wherein the new block comprises the script, the endorsement responses, the generated hash value, and the immediately preceding block hash in the blockchain; and

send, to the plurality of nodes of the P2P network, the new block for addition to corresponding local copies of the blockchain and for updating the local copies of the world state to indicate the script; and

a cognitive analytical system comprising a centralized data store, a dynamic script modifier, an artificial intelligence module, and at least one fourth processor and a memory storing fourth computer-readable instructions that, when executed by the at least one fourth processor, cause the cognitive analytical system to:

query the world state to determine whether the world state indicates the script; and

based on the world state indicating the script, add the script to the centralized data store, or modify the script via the dynamic script modifier and the artificial intelligence module and add the modified script to the centralized data store;

wherein the third computer-readable instructions, when executed by the at least one third processor, further cause the ordering server to:

generate, based on the script being added to the centralized data store, one or more test scripts for one or more software components of the plurality of software components;

generate a second block, wherein the second block comprises the one or more test scripts; and

send, to the plurality of nodes of the P2P network, the second block.

2. The system of claim 1 , wherein the second computer-readable instructions, when executed by the at least one second processor, cause the node to update, based on the endorsement responses indicating that a majority of the plurality of nodes have validated the script associated with the software component, a corresponding local copy of the world state to indicate the script.

3. The system of claim 1 , wherein the third computer-readable instructions, when executed by the at least one third processor, further cause the ordering server to determine the one or more software components based on determining linkages between the one or more software components and the software component.

4. The system of claim 1 , wherein sending the script comprises invoking a smart contract for execution at the plurality of nodes, and wherein the smart contract is stored in the local copies of the blockchain.

5. The system of claim 4 , wherein executing the smart contract at the plurality of nodes comprises determining if a user associated with the user computing device is authorized to submit the script.

6. The system of claim 4 , wherein the script comprises an update for the software component, wherein executing the smart contract at the plurality of nodes comprises updating the software component based on the script.

7. The system of claim 4 , wherein the script is for inclusion in the software component, wherein executing the smart contract at the plurality of nodes comprises updating the software component by including the script.

8. The system of claim 1 , wherein the script is a test script for regression testing of the software component.

9. The system of claim 1 , wherein sending the script associated with the software component to the plurality of nodes is based on determining that the plurality of nodes comprises endorsing nodes of the software component.

10. A method comprising:

receiving, at an ordering server from a user computing device, a script associated with a software component of a plurality of software components of a software application;

sending, to a plurality of nodes of a peer-to-peer (P2P) network, the script, wherein the plurality of nodes are associated with corresponding local copies of a blockchain and local copies of a world state;

receiving, from the plurality of nodes, corresponding endorsement responses;

generating a new block for addition to the local copies of the blockchain, wherein generating the new block comprises:

generating a hash value based on the script, the endorsement responses, and an immediately preceding block hash in the blockchain, and

generating the new block, wherein the new block comprises the script, the endorsement responses, the generated hash value, and the immediately preceding block hash in the blockchain; and

sending, to the plurality of nodes of the P2P network, the new block for addition to the local copies of the blockchain and for updating the local copies of the world state to indicate the script;

querying the world state to determine whether the world state indicates the script; and

based on the world state indicating the script, adding the script to a cognitive analytical system comprising a centralized data store, a dynamic script modifier, and an artificial intelligence module, or modifying the script via the dynamic script modifier and the artificial intelligence module and adding the modified script to the centralized data store;

generating, based on the script being added to the centralized data store, one or more test scripts for one or more software components of the plurality of software components;

generating a second block, wherein the second block comprises the one or more test scripts; and

sending, to the plurality of nodes of the P2P network, the second block.

11. The method of claim 10 , further comprising updating, at a node and based on the endorsement responses indicating that a majority of the plurality of nodes have validated the script associated with the software component, a local copy of the world state to indicate the script.

12. The method of claim 10 , further comprising determining the one or more software components based on determining linkages between the one or more software components and the software component.

13. The method of claim 10 , wherein sending the script comprises invoking a smart contract for execution at the plurality of nodes, and wherein the smart contract is stored in the local copies of the blockchain.

14. The method of claim 13 , wherein executing the smart contract at the plurality of nodes comprises determining if a user associated with the user computing device is authorized to submit the script.

15. The method of claim 13 , wherein the script comprises an update for the software component, wherein executing the smart contract at the plurality of nodes comprises updating the software component based on the script.

16. The method of claim 13 , wherein the script is for inclusion in the software component, wherein executing the smart contract at the plurality of nodes comprises updating the software component by including the script.

17. A non-transitory computer-readable medium storing computer-executable instructions that, when executed by a computer processor, causes a computer system to:

receive, from a user computing device, a script associated with a software component of a plurality of software components;

send, to a plurality of nodes of a peer-to-peer (P2P) network, the script, wherein the plurality of nodes are associated with corresponding local copies of a blockchain and local copies of a world state;

receive, from the plurality of nodes, corresponding endorsement responses;

generate a new block for addition to the local copies of the blockchain, wherein generating the new block comprises:

generating a hash value based on the script, the endorsement responses, and an immediately preceding block hash in the blockchain, and

generating the new block, wherein the new block comprises the script, the endorsement responses, the generated hash value, and the immediately preceding block hash in the blockchain; and

send, to the plurality of nodes of the P2P network, the new block for addition to the local copies of the blockchain and for updating the local copies of the world state to indicate the script;

querying the world state to determine whether the world state indicates the script; and

based on the world state indicating the script, adding the script to a cognitive analytical system comprising a centralized data store, a dynamic script modifier, and an artificial intelligence module, or modifying the script via the dynamic script modifier and the artificial intelligence module and adding the modified script to the centralized data store;

generating, based on the script being added to the centralized data store, one or more test scripts for one or more software components of the plurality of software components;

generating a second block, wherein the second block comprises the one or more test scripts; and

sending, to the plurality of nodes of the P2P network, the second block.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions, when executed by the computer processor, causes the computer system to update, based on the endorsement responses indicating that a majority of the plurality of nodes have validated the script associated with the software component, a local copy of the world state to indicate the script.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2021
From: YANAMALA, OBI REDDY; KARUPPIAH, KUMARESAN; JAISINGHANI, VINAY; SHANDILYA, RAVI RANJAN; PAULRAJ, SAMSON
To: BANK OF AMERICA CORPORATION
Reel/Frame 056186/0523 →
Continuity (1)
Related Publication 20220358030A1 · Nov 10, 2022