Modular interface for ASIK: blockchain
Through the application-specific integrated kernel (ASIK) in blockchain technology, the problem of tight coupling between logic and smart contracts is solved, and the loose coupling between blockchain and client applications is realized, reducing maintenance costs, improving performance and user experience. Provides standardized data management tools that support multi-tenant and role permissions.
Patent Information
- Application Number
- CN202380042443.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-05-23
- Filing Date
- 2023-05-19
- Publication Date
- 2025-01-10
AI Technical Summary
The existing blockchain technology has the problem of closely coupling logic with writing smart contracts in enterprise applications, which leads to high maintenance and upgrade costs, and lacks standardized data management tools, which affects the user experience.
Provides application-specific integrated kernel (ASIK), including application programming interface (API) layer, service layer and chain code, receives client applications requests through the API layer, formats data, and executes transactions on the blockchain, manages data operations. Supports multi-tenant frameworks and role permissions to achieve efficient interaction with blockchain platforms.
It realizes loose coupling between blockchain and client applications, reduces maintenance costs, improves performance and user experience, provides standardized data management tools, supports multi-tenant and role permissions, and simplifies the operation of the blockchain platform.
Smart Images

Figure CN119301564A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to a modular interface for blockchain that provides a general solution to business needs by providing a set of application programming interfaces (APIs) synchronized with business logic on chaincode, and in particular to an application specific integration kernel (ASIK). Background Art
[0002] Blockchain is closely associated in the public mind with cryptocurrencies, the use of which was invented in 2009. However, the creation of peer-to-peer currencies was also the invention of a whole new approach to distributed computing for other purposes. Various uses are being explored to take advantage of similar characteristics of guaranteed data availability, lack of centralized control, or cryptographic tamper-proofing.
[0003] The energy currently surrounding blockchain adoption is reminiscent of the early adoption of the Internet. There is the potential to re-experience or avoid the same mistakes regarding logic management that have weighed down applications and systems as they matured. Similar to early websites and applications, cryptocurrency usage of blockchains features relatively simple data structures and hard-coded business logic for managing said data structures. However, the subsequent invention of “smart contracts” has opened the door to arbitrarily complex rules and data.
[0004] Enterprise use cases like supply chain logistics are putting information and logic on the blockchain, comparable to traditional solutions in terms of volume, but without standardized data management tools. With each programmer designing his / her own set of logic in the application code base, the result is again that the logic is tightly coupled to the program (smart contract) that writes that logic.
[0005] Note that not every feature of blockchain needs to be used in enterprise applications. Common scenarios include using blockchain platforms as a convenient way to implement features like cryptographic tamper-proofing and data replication. Enterprises can also implement blockchain networks under their full control using loose consensus rules or centralized front ends, perhaps as a first step toward more distributed applications in the future. Additionally, a consortium with a high level of trust in building a blockchain network along with strict smart contract implementation for support staff can allow administrators and internal auditors to update blockchain data directly based on their own permissions.
[0006] Transaction data and decisions stored in smart contracts have greater value in applications. Transaction data and node functions stored in the blockchain can then be used for other functions or logic without being controlled by consensus, making operations fast, efficient, and reliable. The only required feature is access to use the data stored on the blockchain. Data stored on the blockchain can be efficiently read and processed by applications, or node functions or systems within or outside the blockchain, for purposes beyond the imagination of the initial smart contract programmer.
[0007] Given the dynamic nature of product development, applications that focus on unilateral solutions are becoming obsolete. For many businesses, the cost of suspending and upgrading these applications may be too great. Frequent maintenance periods not only lead to poor performance, but also increase expenses. Changes in logic and product blueprints often change the look and feel of the product, ultimately affecting the user experience. Developing products from emerging technologies such as blockchain is particularly tedious and can require a lot of resources. Distributed ledger technology platforms provide strict data replication, rule enforcement, and immutability and auditability, but usually require specialized skills to program and operate. Summary of the invention
[0008] The systems and methods described herein address the needs of the art by providing an application-specific integrated kernel (ASIK) that interfaces a client application with a blockchain platform that manages a blockchain. The ASIK includes an application programming interface (API) layer that receives a request from a client application to perform a transaction on a blockchain. The API layer formats data associated with the request. The ASIK also includes a service layer that receives at least one command and formatted data associated with the request, identifies the type of the request, and based on the type of the request, forwards at least one command and formatted data to be executed on the blockchain, and returns the processing result of the at least one command and formatted data on the blockchain to the client application. The service layer also describes preconfigured features and functions to interact with the blockchain platform according to a predetermined use case (e.g., a business service) of the application-specific integrated kernel. The ASIK also includes a chain code that manages data operations of the preconfigured features and functions to interact with the blockchain platform for a predetermined use case by converting at least one command into at least one transaction that can be executed on the blockchain platform according to the preconfigured features and functions for the predetermined use case, and by returning the execution result of at least one transaction and formatted data on the blockchain platform to the service layer.
[0009] In an example configuration, the API layer exposes an API that the client application uses to access preconfigured features and functions to interact with the blockchain platform according to a predetermined use case of the dedicated integration kernel. The API layer can also provide a load-balanced Representational State Transfer (REST) API to the client application, where the REST API is suitable for interacting with the blockchain platform. The API layer can also authenticate requests from client applications, authenticate user details received in requests from client applications, check user permissions to perform requests from client applications, prepare requests for submission to the blockchain platform, and return responses from the blockchain platform to the client application.
[0010] In other example configurations, the API layer, service layer, and chaincode can be adapted to support a multi-tenant framework, whereby multiple client applications can create and manage data on the blockchain platform. The API layer, service layer, and chaincode can also be adapted to support three roles including platform administrators, tenants, and core ASIK participants. The platform administrator can be responsible for registering client applications. A tenant can have an ID and resources assigned to it, and can use the ID and resources assigned to it to perform create, read, update, and delete operations on formatted data. Core ASIK participants can have their own IDs, which are used to initiate requests to the API layer. A database can also be provided for each tenant, whereby each tenant performs operations in its own database.
[0011] In another example configuration, the service layer can describe pre-configured features and functions by outlining semantics and syntax and at least one interface, at least one command and formatted data interact with the blockchain platform for a predetermined use case of the dedicated integration kernel through at least one interface. The service layer can also accept input from the API layer and convert the input into actions by calling chain code and state database.
[0012] In another example configuration, the chain code can access the blockchain platform's blockchain ledger and smart contracts to query or update the blockchain ledger. All operations of the client application can be securely recorded in the blockchain ledger.
[0013] The description herein also relates to a method for interfacing a client application with a blockchain platform that manages a blockchain by performing operations, the operations comprising: receiving, by an application programming interface (API) layer, a request to execute a transaction on a blockchain from a client application; formatting, by the API layer, data associated with the request; receiving, by a service layer, at least one command and formatted data associated with the request; identifying, by the service layer, a type of the request; forwarding, by the service layer, at least one command and formatted data for execution on the blockchain based on the type of the request; managing, by a chaincode, data operations by converting at least one command into at least one transaction that can be executed on the blockchain platform according to preconfigured features and functions, the preconfigured features and functions to interact with the blockchain platform according to a predetermined use case (e.g., a business service); and returning the execution result of the at least one transaction and formatted data on the blockchain platform to the client application.
[0014] In an example configuration, the method may also include exposing APIs to client applications that the client applications can use to access preconfigured features and functions to interact with the blockchain platform according to predetermined use cases. The method may also include providing a load-balanced Representational State Transfer (REST) API to the client application, wherein the REST API is suitable for interacting with the blockchain platform. Formatting data associated with the request may include: the API layer validating the request from the client application, validating user details received in the request from the client application, checking the user's permission to perform the request from the client application, and preparing the request for submission to the blockchain platform.
[0015] In other example configurations, the method may also include enabling multiple client applications to create and manage data on the blockchain platform using the API layer, service layer, and chaincode. The API layer, service layer, and chaincode may also be adapted to support three roles including platform administrators, tenants, and core ASIK participants. The platform administrator registers the client application. The tenant performs create, read, update, and delete operations on the formatted data using an ID and resources assigned to the tenant, and the core ASIK participant initiates a request to the API layer using its own ID. Each tenant may also perform operations in its own database.
[0016] In another example configuration, the method may also include: the service layer describes preconfigured features and functions by outlining semantics and syntax and at least one interface, at least one command and formatted data interact with the blockchain platform for a predetermined use case through at least one interface. The method may also include: the service layer accepts input from the API layer and converts the input into an action by calling the chain code and the state database.
[0017] In a further example configuration, the method may include: the chaincode accessing the blockchain ledger and smart contracts of the blockchain platform to query or update the blockchain ledger, and securely recording all operations of the client application to the blockchain ledger.
[0018] The description herein also includes a non-transitory computer-readable medium having instructions stored thereon, which when executed by one or more processors cause the one or more processors to implement a method for docking a client application with a blockchain platform that manages a blockchain. In an example configuration, the instructions implement an application programming interface (API) layer that receives a request from a client application to execute a transaction on a blockchain and formats data associated with the request; a service layer that receives at least one command and formatted data associated with the request, identifies the type of the request, and based on the type of the request, forwards at least one command and formatted data to be executed on the blockchain, and returns the result of executing the at least one command and formatted data on the blockchain platform to the client application; and a chain code that manages data operations by converting at least one command into at least one transaction that can be executed on the blockchain platform according to preconfigured features and functions, and the preconfigured features and functions are to interact with the blockchain platform according to a predetermined use case.
[0019] The embodiments described herein also encompass computer systems for implementing the methods described throughout the present disclosure. For example, the systems and methods described herein can be implemented on a computing platform in the cloud to provide functionality for accessing a blockchain platform as described herein and storing data to the blockchain platform. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like reference numerals indicate similar elements and in which:
[0021] Figure 1 is a general block diagram that provides an overview of the specifications and core components of an application specific integrated core (ASIK) in an illustrative example.
[0022] Figure 2 It is the ASIK in the example configuration Detailed component diagram of the implementation.
[0023] Figure 3 is a diagrammatic diagram of the ASIK Track system objects used to implement an ASIK Track application in an example configuration.
[0024] Figure 4 is a flow diagram illustrating the control flow of an example configuration of the ASIK Track application.
[0025] Figure 5 is a flow chart showing the operation of the ASIK in a general configuration.
[0026] Figure 6is a block diagram of a typical general purpose computer that can be programmed as a special purpose computer suitable for implementing one or more configurations of the ASIK disclosed herein. DETAILED DESCRIPTION
[0027] Below about Figures 1 to 6 The descriptions of the invention are sufficient to describe specific embodiments to enable those skilled in the art to practice them. Other embodiments may incorporate structural, logical, process and other changes. Portions and features of some embodiments may be included in those of other embodiments, or may replace those of other embodiments. The embodiments set forth in the claims encompass all available equivalents of those claims.
[0028] the term
[0029] Blockchain: Uses cryptography to link and secure a growing list of records called blocks. Each block typically contains a cryptographic hash of the previous block, a timestamp, and transaction data. Blockchains are designed to be inherently resistant to modification of transaction data. To function as a distributed ledger, blockchains are typically managed by a peer-to-peer network that collectively adheres to a protocol for validating new blocks. Once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks, which requires the collusion of a majority of the network.
[0030] BNO: Blockchain Network Orchestrator (BNO) is a service used by the ASIK Track application to configure and manage blockchain networks. BNO helps users create Ethereum, Fabric networks, and Element Database (Element DB) instances (Element Database is the assignee's product that provides organizations and users with the ability to manage relational data on blockchains).
[0031] Chaincode: Chaincode is a smart contract or software that represents the business logic for each client (organization) to read and update data on the blockchain ledger in a sample configuration. In the ASIK Track application, chaincode is upgraded by the platform administrator.
[0032] Core ASIK Participants: Anyone who attempts to access the ASIK application via a client application can be called a participant. A core ASIK participant has its own ID, which ASIK uses to make requests to the ASIK API layer. For example, the following are the different participants in the ASIK Track example described in this article:
[0033] Supply Chain Admin: Supply Chain Admin is the administrator of the application. It can create different users / user groups, workflows, etc. Supply Chain Admin can view all entities like workflows or movable products but cannot perform actions on them.
[0034] Auditors: Auditors are external parties who can see all data of a movable product and can resolve disputes.
[0035] Internal Auditor: An internal auditor has access to all data for a moveable product, can resolve disputes, and is an internal participant.
[0036] User / Contributor: Users have the rights to create / transfer / receive movable products. Each user can belong to multiple user groups, and each user group has multiple users who can transfer, receive, or reject child products associated with existing base products and workflows.
[0037] Merged into In Fabric, as an option for the world state database, the database stores the current value of a set of ledger states. When chaincode data values are modeled as ASIK transaction data in JSON, Supports rich queries.
[0038] Disputes: Any discrepancy in the attributes of a product is called a dispute. A dispute can be anything that deviates from what all participants have agreed upon. Users can create disputes for movable products at any point in time. Disputes can be resolved by auditors or by users.
[0039] Fabric: An enterprise-grade permissioned distributed ledger platform that provides modularity and versatility for a broad set of industry use cases.
[0040] Fabric Certificate Authority: The Certificate Authority (CA) provides certificate services to users of the blockchain. More specifically, these services involve user registration, transactions invoked on the blockchain, and Transport Layer Security (TLS) secure connections between users or components of the blockchain. The Enrollment Certificate Authority (ECA) allows new users to register with the blockchain network and enables registered users to request enrollment certificate pairs. One certificate is used for data signing, and one is used for data encryption. These certificates will be used to invoke chaincode transactions on the blockchain.
[0041] JSON: JavaScript Object Notation, a lightweight, text-based, human-readable data interchange format.
[0042] Transportable Products: Transportable products are actual products that are transferred from one node to another. Users can create, transfer, receive, update, and reject transportable products.
[0043] Nest (NestJS): Building efficient and scalable A framework for server-side applications. NestJS uses progressive JavaScript, is built with TypeScript and fully supports TypeScript (but still allows developers to code in pure JavaScript), and combines elements of OOP (object-oriented programming), FP (functional programming), and FRP (functional reactive programming). More information about NestJS can be found in "About NestJS, documentation and foundation, https: / / nestjs.com / .
[0044] A free, open source server environment for executing JavaScript code outside of a browser. is an asynchronous programming platform built on top of the Chrome browser's JavaScript runtime. About More information can be found in the About ” Found in Node.js, Node.js Foundation.
[0045] Platform Administrator: The platform administrator is enrolled during product deployment. The platform administrator role designed specifically for this purpose only has the authority to create and manage tenants in ASIK.
[0046] Product: Product is the metadata of all movable products. Multiple movable products can be created for a single product.
[0047] Smart Contract: A computer protocol that provides general purpose computations to be performed on a blockchain or distributed ledger. Smart contract transactions can be simple, or can implement complex logic. The resulting transactions are typically transparent, traceable, and irreversible to the ledger participants.
[0048] Tenants: Tenants are registered by the platform administrator of ASIK. A tenant represents any client (organization) using ASIK. ASIK provides features that enable multiple clients to use a single application, which is called multi-tenancy. A tenant has an ID and resources assigned to it, which the tenant can use to perform the required CRUD (create, read, update, and delete) operations on any asset in ASIK.
[0049] Tracker: For each movable product, a tracker document is created. It contains all the historical information of the movable product, including attribute updates and moves of the movable product.
[0050] Workflow: The workflow determines the order in which the products will be transferred to the user groups, as well as the attributes associated with the base product.
[0051] Overview
[0052] Computer application designers, especially in large enterprise environments, are increasingly incorporating existing distributed ledger technology (DLT) platforms into their solutions. As described above, these platforms provide strict data replication, rule enforcement, and immutability and auditability, but typically require specialized skills to program and operate. As will be described herein, the following subsystem can be used: the subsystem enables developers to create and operate client applications in a selected platform without specialized skills by combining communication abstractions (including the writing of both data and rules for the data) with a set of data and rule primitives that will support a wide range of potential DLT applications within a category (e.g., for specific use cases). Primitives are typically constructed so that application developers can adapt the primitives to specific use cases, thereby extending the primitives with attributes and additional data rules without requiring DLT platform skills and without losing the strict rule enforcement provided by the DLT platform. In addition, the interfaces designed and acted upon by client application developers for these primitives completely abstract any need for technical understanding of the DLT platform.
[0053] Specific implementations may be dedicated subsystems for a single client application, reusable components used with many client applications, or services that provide application support for many client applications. Other implementations may mediate communications with one or more neighboring DLT nodes, and these nodes may be drawn from a single or multiple DLT networks.
[0054] The description in this article is about Fabric, but those skilled in the art will understand that the technology described herein can also be used in other blockchain networks, such as AION, ArcBlock, EOS, NEO, Sawtooth, NxT, QTUM, Quorum, Smilo, Tezos, TRON, Wanchain or Zilliqa. The terms used in this article are The corresponding terms will be used in the context of other blockchain networks such as those mentioned.
[0055] The example subsystem can implement Indirect use of the Fabric DLT platform for a broad class or hypothetical workflow and information sharing applications, and several operational real-world implementations of such client applications. To implement such a subsystem, there are three key requirements:
[0056] 1. An extensible set of generic data and action primitives that will be represented on a distributed ledger;
[0057] 2. A set of rules operating on these primitives embedded in the distributed ledger that enforce both the local data rules of the subsystem and the allowed extensions of these rules that can be provided by client applications; and
[0058] 3. A programming interface that does not require knowledge of the blockchain platform to operate.
[0059] The resulting subsystem provides a set of tools and libraries that enable ordinary users with knowledge of a certain application category and / or skills in a certain blockchain platform to build their own subsystems to support the creation of client applications in that category. The resulting code is implemented as middleware between the API network and the blockchain protocol, whereby users can consistently interface with the blockchain without extensive knowledge of blockchain operations. In these applications, use case-specific business rules from the upper layer are written and can be executed on the blockchain. New business rules can be added from time to time to update the workflow without disrupting the blockchain's capabilities and controls.
[0060] The Application-Specific Integration Kernel (ASIK) as described in this article is a modular interface that provides generic solutions for major business needs. As described in this article, ASIK is a collection of APIs that are synchronized with the business logic on the chaincode, which gives it a "plug-and-play" nature, keeping things very simple. The web service layer of ASIK identifies business needs and exposes Representational State Transfer (REST) APIs from the package that may be required to complete the task or action. This functionality makes ASIK a generic solution that can be implemented in almost any vertical. As will be apparent from the following description, ASIK is a multi-purpose application that can be implemented in asset tracking, supply chain management, consent management, financial solutions, access control, product inventory, and many more applications.
[0061] In general, ASIK is a collection of APIs for basic use cases that are frequently executed on the blockchain. A certain transaction request made by an end-user is executed through a common set of pre-conceived scenarios configured by the input data collected from the request. Once the transaction is successfully executed on the blockchain, the response is transmitted back to the user in the form of a feasible output.
[0062] The value of ASIK comes from the fact that it can be used without understanding blockchain. In addition, ASIK provides a universal solution that can be adjusted to meet all major business needs. ASIK is highly "pluggable and reusable" because users only need to configure minimal factors to use ASIK according to their needs. Because ASIK provides a universal solution, it will evolve as the market grows or rapidly changing needs. ASIK can be integrated to work with a variety of external application types, making it a multi-purpose application. ASIK is also constantly 'evolving' and there is always room for new features and upgrades, making it a fast and ultra-modern solution. ASIK is also a 'black box for blockchain' because ASIK is a reliable interface between the user and the blockchain. Users do not have to understand the concept of blockchain to get the benefits provided by ASIK. The easy accessibility of ASIK allows it to integrate with external systems without difficulty. ASIK functions in almost all recognizable blockchain networks that support development. ASIK is also compatible with cloud-based platforms, making it versatile and easy to deploy / integrate.
[0063] ASIK can be implemented in many different applications, including:
[0064] ASIK Track - A platform that enables organizations to configure and deploy complex, autonomous fintech-enabled information supply chains, with a built-in marketplace for all participating organizations. An implementation of ASIK Track is described below as an example implementation.
[0065] ASIK Ecosystem - a platform that enables peer-to-peer banking. Because it is built using distributed ledger technology, every transaction is 100% auditable, immutable, and visible only to permissioned users, helping to create a true trust layer between parties transacting on the platform.
[0066] ASIK Consent – A fully actionable data consent management platform that defines entirely new ways of collecting data and notifies users every time their data is used, allowing users to give and withdraw consent in real-time.
[0067] ASIK Verify – a verification platform that uses a combination of blockchain and distributed technologies to ensure 100% verification of digital assets.
[0068] Example Implementation of an ASIK
[0069] As mentioned above, applications that focus only on one-sided solutions are becoming obsolete, and the process of pausing and upgrading them only leads to poor performance and increased expenses. Business solutions derived from emerging technologies such as blockchain are needed that are both ubiquitous and very easy to use. However, developing such products using impactful technologies is tedious and requires a lot of resources. Migrating to a different technology stack is a considerable challenge, which is not the most feasible option for many enterprises.
[0070] The ASIK described in this article addresses these needs in the art by providing reusable and pluggable services that can be utilized by blockchain as well as non-blockchain applications. The ASIK described in this article has been designed for implementation across a variety of blockchain platforms and user programming languages. Portions of the system can be customized, but follow a set of general specifications. This description provides a Fabric Platform and However, it should be appreciated that one skilled in the art can easily extend the description provided herein to other platforms and languages.
[0071] Now refer to Figure 1 Provides a set of specifications, interfaces, and descriptions of core components for all implementations of ASIK.
[0072] Figure 1 is a general block diagram providing an overview of the specifications and core components of an application specific integrated core (ASIK) 100 in an illustrative example. Figure 1 is an adaptation component diagram showing the components and specifications of ASIK in an example configuration. Common specifications are stereotyped as components using the "Specification" to indicate abstract requirements. Specifications are aspects that are expected to be implemented in a common way in all ASIK implementations. The interfaces shown are also specifications that are common to all implementations.
[0073] exist Figure 1 In the client application 1101 to 110 N is an application intended to utilize the ASIK 100. Client applications 1101 to 110 N It can be any third party application, service or tool. There can be multiple client applications 1101 to 110 that access ASIK 100. N or tenant. Client applications 1101 to 110 NThe ASIK 100 is accessed via the ASIK Tenant Access Service 120, which handles multiple clients or tenants and allows them to all use the ASIK 100 efficiently. The ASIK Tenant Access Service 120 interacts with the ASIK Web Service 130 via the ASIK Web Service Interface 125. The ASIK Web Service 130 is a component that receives commands from HTTP requests and communicates with the internal components of the ASIK 100 to produce the desired results. The ASIK Web Service 130 provides direct communication with the client applications 1101 to 110 N The ASIK network service 130 can be considered as a main service, which performs the initial processing of the data, identifies the type of request, and based on the type, further forwards the request to complete the processing, and then returns the (intermediate or final) results to the client applications 1101 to 110 N The ASIK API layer 140 handles REST calls and is also implemented in the ASIK web services 130 to manipulate / format and send data to various other components.
[0074] The ASIK network service 130 interacts with the blockchain platform specific ASIK service layer 150 via the ASIK service layer interface 145. The blockchain platform ASIK service layer 150 is designed to work with the blockchain system (Hyperledger Fabric in this example) and accepts input from the ASIK API layer 140 via the ASIK network service layer 130 to execute business logic. The ASIK service layer 150 may contain one or more interconnected services, such as those available via the DLT library 155 or external services 160. The DLT library 155 and the external services 160 communicate with each other, for example, by using Apache Kafka queues. The blockchain platform ASIK service layer 150 describes the interface and the functions to be supported in each implementation (use case) of the ASIK 100. In addition to covering the entire interface, the specification of the blockchain platform ASIK service layer 150 also covers a subset of features and functions that can be implemented in the blockchain platform ASIK service layer 150 or on the blockchain platform 180 itself.
[0075] The blockchain platform ASIK service layer 150 receives input from the ASIK network service API layer 140 and performs the following steps:
[0076] 1. Validate and sanitize incoming requests.
[0077] 2. Verify the user and tenant details received in the request.
[0078] 3. Check the user's permission to perform the requested operation.
[0079] 4. Prepare the transaction / request object to submit it to the blockchain platform 180.
[0080] 5. Submit the transaction on the blockchain platform 180.
[0081] 6. Prepare success / error response objects based on the response returned from step 5.
[0082] 7. Return the response to the client.
[0083] The blockchain platform ASIK service layer 150 is configured as The implementation is independent of the programming language and can therefore be implemented in any language for any target blockchain platform 180. Once the data is converted into the desired form, the blockchain platform ASIK service layer 150 calls the blockchain platform specific ASIK chain code 170 via the interface 165. The blockchain platform specific ASIK chain code 170 in turn calls the blockchain platform 180. Additional features can be targeted to the blockchain platform 180 itself.
[0084] In the example configuration, data operations in ASIK 100 are managed by ASIK chaincode 170 and blockchain platform 180 together. The exact division of work depends on the capabilities of blockchain platform 180. The required functionality is given by two sub-specifications. Transaction data on blockchain 185 defines the standardized data representation (JSON schema) and data operations to be supported. Transaction data contains documents of type workflow, movable product, product, supply chain management, auditor, internal auditor, tracker, user, user group, dispute, etc. Whenever a transaction is executed on the blockchain, ledger update 190 provides a transaction with a unique ID, which is updated on the ledger that tracks all transactions made by the enterprise.
[0085] During operation of the ASIK 100, the ASIK tenant access service 120 provides a multi-tenant framework that supports multiple instances of software running on a single physical server and supports multiple users using a single application, such as a database or certain microservices. Figure 1 As shown, several client applications (tenants) 1101 to 110 NYou can try to access ASIK 100. ASIK Tenant Access Service 120 handles these multiple tenants so that they can all use a single ASIK 100. By incorporating multi-tenant features, ASIK 100 is cost-effective because resource sharing reduces system costs. In addition, because all users access their services from the same technology platform, it is much easier to access automatic and frequent updates. Users do not need to pay for separate resource allocations. The host is also simplified and hardware-independent. Multi-tenancy provides the ability to reside in the same infrastructure and data center, where more servers or computing capacity can be easily added. Multi-tenancy also provides reduced exposure to malware and hassle-free upgrades. In addition, due to the multi-tenant feature, virtualization and remote access features can be used entirely within the enterprise.
[0086] Multi-tenant creation is determined by resource allocation of the blockchain platform 180 (e.g., Fabric), and this allocation can be dedicated or shared (depending on the client / user request). In the example configuration, multi-tenant creation can also be determined by channel creation and smart contract deployment, This is determined by view creation, Kafka topic partition creation, and Elasticsearch index creation.
[0087] As mentioned above about Figure 1 As described above, one of the core components of ASIK 100 is ASIK web service 130 used in all implementations of ASIK 100. ASIK web service 130 can act as a client application 1101 to 110 N The ASIK 100 interfaces with the ASIK 100. Users can make requests through the software development kit (SDK) or application interface or through HTTPS requests (or requests issued from a RESTful API). All of these requests can be received, processed, and transmitted (to other components) through the subcomponents of the ASIK web service 130. One such subcomponent is the ASIK API layer 140, which accepts input in an acceptable grammatical form. Middleware ( Figures 4 to 5 ) performs the heavy work of parsing, validating, and formatting these grammars to ensure that all parameters meet business requirements and then routes the grammars to the ASIK service layer 150 and other subsequent components.
[0088] Based on the business requirements, the appropriate functions that meet the requirements are selected by ASIK 100, and the service layer provides these functions. The blockchain platform-specific ASIK service layer 150 is independent of the programming language and can therefore be implemented in any language. These services are implemented using and NestJS. The blockchain platform specific ASIK service layer 150 can be reused and independent of the blockchain framework. The blockchain platform specific ASIK service layer 150 specification describes the interfaces and the functions that need to be supported in each implementation of ASIK 100. The blockchain platform specific ASIK service layer 150 may contain multiple sub-services interconnected through http requests, kafka, or any other protocol. In addition, several DLT libraries 155 (e.g., dlt-kafka) can also be implemented in the blockchain platform specific ASIK service layer 150 of ASIK 100 to obtain high reusability of existing functions. For example, dlt-kafka provides a mechanism to connect to kafka, thereby exposing functions such as production / consumption that can be used by any service instead of implementing it. To external services 160 such as redis, elastic search, All connections etc. can be established in the blockchain platform specific ASIK service layer 150 itself.
[0089] The request function in the blockchain platform specific ASIK service layer 150 then triggers a similar function on the ASIK chaincode 170. This function acts as a modulator that converts the input request into a transaction that can be executed on the blockchain platform 180 via the ASIK chaincode 170. This business problem is solved in the ASIK chaincode 170 which is responsible for all interactions with the blockchain platform 180.
[0090] As with the platform itself, the implementation of functionality to be implemented directly on the blockchain platform 180 will vary widely in approach. The corresponding specifications set forth remain generic regardless of the blockchain platform 180 being used. Whenever a transaction is executed on the blockchain platform 180, regardless of the status of the transaction, i.e., success or failure, a transaction with a unique ID is updated 190 on the ledger that tracks all transactions conducted by the enterprise. Smart contracts and / or chaincodes 170 may be customized by the ASIK 100 to further enhance transaction reporting. When the business operation is completed (success scenario), the status of the transaction is then updated into a pre-configured state database that holds the current state of the data. The ASIK 100 may use As a state database, it allows storing data in JSON format, issuing JSON queries against the data, and using indexes to support the queries. On the other hand, whenever a transaction fails, the error handling system can appropriately assign the transaction to the ASIK 100.
[0091] exist Figure 2 In the example configuration shown, use based on SDK Fabric blockchain platform, and Apache To implement the configuration of ASIK 100. It is the most popular web server-side development framework in the world. Fabric's architecture partially meets many of the requirements of ASIK 100. Merged into In Fabric, as an option for the world state database. When chaincode data values are modeled as ASIK data in JSON, Supports rich queries.
[0092] As described above, ASIK 100 is a "plug and play" solution that is equipped with pre-configured scenarios. Requests are sent from client applications 1101 to 110 using conventional user interface (UI) methods or HTTP requests. N Feed to ASIK web service 130. To make transactional data capabilities available, smart contracts are also implemented on blockchain platform 180. Fabric is an implementation of blockchain technology and is co-developed on top of Linux. The Fabric blockchain platform is suitable because it meets all the requirements of the above specifications and further provides excellent performance, logical data separation between tenants and applications, and tight integration with blockchain platform 180.
[0093] Figure 2 is a detailed component diagram of a Fabric / Node JS implementation 200 of the ASIK 100 in an example configuration. Figure 2 An implementation of the ASIK Track configuration 200 is described, wherein is a programming language, and Fabric is the blockchain platform used. Figure 2 Shows How to implement Figure 1 The specifications outlined in , along with some additional features. Figure 2 It can be appreciated that the ASIK data implementation on Fabric involves providing a total of three roles to the ASIK implementation 200: platform administrator, tenant, and core ASIK participant. The platform administrator is registered at product deployment. This role is responsible for registering tenants into the system. A tenant has an ID and resources assigned to it, which the tenant can use to perform the required CRUD operations on any asset in the ASIK implementation 200. The core ASIK participants have their own ID, which the ASIK 100 uses to initiate requests to the API layer 140 of the ASIK. For example, in an ASIK Track configuration, there can be at least four different participants: supply chain administrator, auditor, internal auditor, user / participant, etc.
[0094] The ASIK Track application 110 takes into account a multi-tenant system with the help of the ASIK Track Tenant Access Service 120, which includes the ASIK Track Tenant Access Service code and data 120' accessed via the ASIK Access Service API interface 210. The ASIK Track Tenant Access Service 120 allows multiple clients (tenants) to use a single application without the tenants being aware of the service operations. Internally, the ASIK Track Tenant Access Service 120 creates a different database for each tenant so that their details can be distinguished. Each tenant performs its own operations in its own database without knowing that it is doing so. By using multi-tenancy, an application can be created and then deployed to as many customers as needed, eliminating the need to recreate a separate solution for each end user. Therefore, to the tenant, the application is a single unit and all internal partitions are black boxes.
[0095] The ASIK Web Services API layer 130 is an important part of the product because it is the service that the client interacts with directly. With the help of the REST API, the ASIK Web Services API layer 130 receives requests using a JavaScript runtime environment. Node Package Manager (NPM) modules such as express-validator perform validation / sanitization on it. NPM modules can be used by The application is imported to establish a docking connection with the ASIK web service API layer 130 to initiate rule execution requests from the docked client application(s) 110 .
[0096] Once the data is formatted, it is forwarded to the next layer, which is the ASIK Web Services API layer 140. The ASIK Web Services API layer 140 is referred to herein as services within the web services of ASIK Track as well as external ASIK Track services (services outside the web services). The job of identifying the request type and forwarding it to the appropriate service is done by the ASIK Web Services API layer 140. Some of the requests are completely handled by the ASIK Web Services API layer 140, while for other operations, it takes help from other services of ASIK Track like Batch Writer Service, Aggregation Engine Service, etc. They all belong to the ASIKTrack Web Services API layer 140. These services are not web services but are called through web services based on the request.
[0097] For example, for creating a workflow (an entity in ASIK Track), only the web service is required, so the call will be simple. However, to perform an aggregation (an operation in ASIK Track), the ASIK Track web service will perform the required request validation and upon successful validation, forward the request to Track's aggregation engine service to perform the aggregation function (count, max, min, average, sum). The services in the ASIK Web Service API layer 130 are connected to each other by using REST APIs or Apache Kafka. Each service is assigned a part of the job, the service completes that part of the job, and further requests are sent to complete the rest of the job.
[0098] ASIK tenant access service 120, ASIK network service API layer 130, ASIK network service API layer 140, blockchain platform specific service layer 150, ASIK chain code 170 and blockchain platform 180 and interfaces 125, 145 and 165 are for Figure 1 The same is common to all implementations. Underneath them, blockchain-specific The Fabric service layer 150' implements the facade for all platform operations. The Fabric CouchDB implementation 220 directly supports blockchain-specific Fabric service layer 150', Fabric CouchDB implementation 220 is directly accessed to obtain certain indexing functions. In the Fabric implementation, schema index modification and user permissions are handled in blockchain-specific Partially implemented in Fabric service layer 150', blockchain-specific The Fabric service layer 150 ′ directly calls the Fabric CouchDB implementation 220 .
[0099] Fabric Feature 220 directly supports the blockchain platform specific service layer 150 through its dependency on the blockchain platform 180. Fabric Feature 220 is used to directly access certain index functions. The blockchain platform specific service layer 150' can (through the internal cache service) 220, but POST calls or data operations on the blockchain can only be performed by ASIK Track chaincode 170. Different types of users can access different types of data operations. These users can use Fabric Certificate Authority is registered on the ASIKTrack blockchain platform 180. In addition, ASIK 100 is registered on The implementation on Fabric can allow smart contracts to be installed on the blockchain platform 180. In this way, business logic is implemented on the blockchain specific A division is made between the Fabric service layer 150' and the blockchain platform 180 itself.
[0100] The ASIK Track service calls the ASIK Track chaincode 170 through the FabricPeer connection 230 that hosts the ledger and smart contracts required by the chaincode 170 to update the ledger 190. Fabric Peer 230 hosts the ledger and smart contract instances of the blockchain network. The ledger records all transactions generated by the smart contract unchanged (in In Fabric, these transactions are contained in chaincode 170 or smart contracts, which are a piece of code that accesses a ledger written in a supported programming language. Smart contracts and ledgers are used to encapsulate shared processes and shared information in the network, respectively. Through Fabric Peer 230, applications can execute chaincode to query or update the ledger.
[0101] The actual call to the blockchain platform 180 is made through the ASIK Track chaincode 170. Once the ASIK Track chaincode 170 makes a call to update the ledger 190, the response (success / failure) is sent back to the blockchain platform specific service layer 150 or the ASIK web service API layer 130. After calling the ASIK Track chaincode 170, the blockchain platform specific service layer 150 sends the response back to the ASIK web service API layer 130, which in turn sends the response back to the client application 110.
[0102] Since the ASIK Track configuration 200 is a multi-tenant system, it incorporates multi-level access control. To perform any operation (read or write) on transaction data, the caller provides the ID of the tenant as well as the ID of the core ASIK participant. The hierarchy of principals in ASIK 100 can be represented as follows for platform administrators, tenant administrators, and core ASIK participants:
[0103] Platform Admin > Tenant Admin > Core ASIK Participants > ASIK Specific Data.
[0104] Figure 3 is a diagrammatic diagram 300 of ASIK Track system objects for implementing an ASIK Track application in an example configuration. In particular, Figure 3The relationships between the various database entities of the ASIK Track configuration 200 are illustrated. The data implementation of ASIK 100 on Fabric involves four roles: platform administrator 302, tenant administrator 304, supply chain administrator 306, and auditor / internal auditor 308. Platform administrator 302 registers when the product is deployed. This role is responsible for registering tenants into the system 300. Tenants have IDs and secrets, which tenants can use to create / read / update / delete rules and functions. Tenants are also responsible for creating applications 110. Applications 110 have their own IDs and secrets, which are used to initiate rule execution requests to the product's API layer. Multiple rules that are intended to be executed together for a transaction can be grouped.
[0105] exist Figure 3 In , the numbers at either end of the link represent the relationship between the entities in terms of their number. Figure 3 , the participant 310 is marked as “1” and the movable product 320 is marked as “1*”, which means that one movable product 320 can be related to only one participant 320 , but one participant 310 can be related to any number of movable products 320 . Figure 3 For example, the ASIK Track shows:
[0106] Platform Administrator > Tenant Administrator > Supply Chain Administrator > ASIK Transaction Data
[0107] Platform Administrator > Tenant Administrator > Supply Chain Administrator > Auditor / Internal Auditor > ASIK's Transaction Data
[0108] Platform Administrator > Tenant Administrator > Supply Chain Administrator > User > Transaction data related to ASIK users or user groups
[0109] ASIK The implementation on Fabric allows smart contracts / chaincodes to be installed on the blockchain platform 180. ASIK chaincode 170 includes the core functionality of ASIK. In the ASIK Track configuration, ASIK chaincode 170 has Functionality for creating all types of transactional data on Fabric, including creation of participants 310, movable products 320, products 330, workflows 340, user groups 350, supply chain administrators 306, trackers 360, etc.
[0110] The blockchain platform specific service layer 150' accepts input from the ASIK web service API layer 130 and calls ASIK chain code 170 and Fabric The world state database 220 converts inputs into actions. The blockchain platform specific service layer 150' and Fabric certificate authority interacts to generate certificates for all roles involved in ASIK 100. In the case of ASIK Track 200, The Fabric Certificate Authority will register users (participants, supply chain managers, auditors, internal auditors) and generate certificates. These certificates will be used when the user makes any request on the ASIK 100 using the ASIK Web Services API layer 130 to authenticate the user on the ASIK 100. Verify the user on the Fabric network.
[0111] The ASIK Tenant Access Service 120 implements various phases during tenant creation. For example, the Fabric resource allocation phase can allocate dedicated or shared resources (depending on the client / user request), and resources can be created on the fly based on the request of the BNO service used by the ASIK 100 for the blockchain network. During the channel creation and smart contract deployment phase, a dedicated channel for the tenant can be created, and the chaincode 170 can be installed and initialized in the channel. In the example configuration, a channel is a communication channel between two or more nodes of the network used to conduct confidential transactions. View creation phase, which can be created after deploying smart contracts or chaincode 170 A dedicated database in a node. For data retrieval, it is also possible to The view document is created in 220. During the Kafka topic partition creation phase, a dedicated configurable number of partitions can be added for the tenant to ensure faster processing. Finally, during the elastic search index creation phase, the blockchain platform specific service layer 150 can use elastic search to create tenant specific indexes for faster data retrieval.
[0112] The ASIK web service API layer 130 exposes APIs that will be used by client applications 110. In the ASIK Track configuration, there is a set of APIs exposed to client applications 110 that cover the functionality of ASIK Track. Example APIs for ASIK Track are listed in Table 1 below:
[0113] Table 1
[0114]
[0115] Table 1 shows different types of tags and their associated APIs or functions. These REST APIs are exposed to client applications and are responsible for performing unique functions to meet the requirements of client applications 110. For example, the tag "User" has a "Create User" API that provides the client application 110 with a way to create a user, who in turn can create / transfer / receive a movable product.
[0116] The blockchain platform specific service layer 150 can cover the request-response cycle. Table 1 shows the ASIK Track functionality in an example configuration. A separate service can be created for each tag in Table 1. The structure of this layer is Figure 4 It is shown by way of example.
[0117] Figure 4 is a flow chart 400 illustrating the control flow of an example configuration of ASIK Track. Figure 4 The interaction of different components of ASIK Track is shown to complete the control flow from and back to the client application 110. The client application 110 connects with ASIKTrack 200, which in turn connects with external services 410 such as Redis, PostgreSQL, Elastic Search, etc. via client connectors 415 to obtain the desired functionality.
[0118] The ASIK Track web service API layer 130 receives commands directly from the client application 110. The ASIK Track web service API layer 130 is also the layer responsible for returning a response (success or failure) to the client application 110 (425) after processing the request. The ASIK Track web service API layer 130 transfers the request to the ASIK Track middleware 420 for cleansing the input. The ASIK Track middleware 420 validates the input from the ASIK Track web service API layer 130 and ensures that the request complies with the predefined pattern. The ASIK Track middleware 420 is also responsible for cleansing the input and converting it into the format required by the ASIK Track service layer 150 for further processing of the input (430). At any point, if the request does not match the predefined pattern, the request is rejected and moved back to the ASIK Track web service API layer 130 (435). After validation, the request is transferred to the ASIK Track service layer 150.
[0119] In the example configuration, the ASIK Track service layer 150 is a group of one or more ASIK Track services. Each service is responsible for performing the function assigned to it and returning a response to the next / previous service. To external services 410 such as Redis, Kafka, PostgreSQL, Elasticsearch, Client connections or connectors 415 are also established in the ASIKTrack service layer 150. The client connections or connectors 415 provide a layer for the ASIK Track network service layer 150 to interact with the external services 410 (440). The ASIK Track service layer 150 is responsible for handling each functional part of ASIK Track. Separate service files are created to take care of the processing of each functional part of ASIK Track (445). The ASIK Track service layer 150 decides the next service to call based on the request received. The data received from the external service 440 can be returned to the corresponding service (450). In the blockchain-specific ASIK Track service layer 150', the ASIK Track service can communicate with Fabric network communication (455).
[0120] In the example configuration of ASIK Track, preconfigured scenarios and business rules are used to aggregate transactions of an attribute to provide cumulative results after the transaction is submitted through the blockchain to protect the results. In the ASIK Track configuration, some nodes are added for business features. Each node includes a set of instructions given by the client application 110 in the form of a JavaScript function (script node, conversion node, workflow trigger node) or a third-party API execution (service node) to perform some operations related to ASIK Track. In the example, the nodes may include script nodes, service nodes, conversion nodes, and workflow trigger nodes.
[0121] A script node cannot be the first node in a workflow. An example declaration could be: {{{foo}}={{bar}}+10;}. Two or more script nodes can be consecutive. A script node will not belong to a user group node mapping, but can belong to a node ID transfer sequence. As an instance moves, if the instance follows a path through a script node, then the script mentioned on the script node will be executed. The attribute values set in a script node can be set with properties and will be visible on the next group of nodes after the script node. In the event of any failure on a script / service node, the instance will remain at the previous group node. For example, for the workflow: User Group Node 1>Script Node 1>User Group Node 2, if the attribute value of ABC is set to 123 in the script node, then User Group Node 2 will see the attribute value of ABC as 123.
[0122] A service node also cannot be the first node in a workflow. Two or more service nodes can be consecutive. A service node may not belong to a user group node mapping, but may belong to a node ID transmission sequence. As an instance moves, if the instance follows a path through a service node, then the service node can be executed by calling a third-party API. The service node waits for a response from the third-party API until the configured timeout. The service node can retry attempts based on the configured retry value time.
[0123] The transition node cannot be the first node either. A transition node may not belong to a user group node mapping, but may belong to a node ID transfer sequence. While an instance is moving, if the instance follows a path through a script node, then the script mentioned on the transition node will be executed and the transition node will return 'to_node_id'.
[0124] The workflow trigger node also cannot be the first node in the workflow. The workflow trigger node also may not belong to the user group node mapping, but may belong to the node ID transmission sequence. When the instance moves, if the instance follows the path through the workflow trigger node, then the batch editor service (BCS) can be called to generate a batch, and the generated batch ID will be returned to the client application 110. For example, the following is an example declaration of a workflow trigger node:
[0125]
[0126]
[0127] In an example configuration, the following services may be included in the ASIK Track application.
[0128] A Batch Compiler Service (BCS) may be provided, which is responsible for generating transactions related to a batch of movable products such as transfer, receive, update, last node execution, etc. BCS returns the generated batch ID to the ASIK Track service and sends the generated batch ID in the Kafka queue to perform aggregation. Until the condition in the aggregation settings given by the client application 110 is false, the transactions can be part of the same batch. Once the condition is true, the batch can be completed.
[0129] An aggregation engine service may be provided, which is responsible for performing the aggregation process and the post-aggregation process. Aggregation may be performed on movable product attribute values. For example, SUM, MIN, MAX, COUNT, and AVG aggregation functions may be supported. Two types of aggregation may be implemented, including: aggressive aggregation, which is a runtime aggregation performed when a transaction / request is received; and passive aggregation, which is performed after a batch is completed. Post-aggregation may be performed after the aggregation is completed. Post-aggregation is typically used to modify the value of an attribute based on a script defined in a workflow trigger node.
[0130] A movable product worker service may be provided, which is responsible for completing the next flow of the defined workflow after the workflow trigger node. For example, in the case of the example workflow 1: user group node 1> workflow trigger node 1> user group node 2, once the aggregation and post-aggregation are completed, the request will reach the movable product worker service via the Kafka queue. The movable product worker service will check that the next node is a group node, so it will perform a transfer function on user group node 2. On the other hand, in the case of the example workflow 2: user group node 1> workflow trigger node 1> workflow trigger node 2> user group node 2 group 1> wtn1> wtn2> group 2, once the aggregation and post-aggregation are completed for workflow trigger node 1, the request will reach the movable product worker service via the Kafka queue. The movable product worker service will check that the next node is a workflow trigger node. If so, the movable product worker service calls the batch editor service to process workflow trigger node 2. Upon completing the processing of workflow trigger node 2, the movable product worker service may perform a transfer function on user group node 2.
[0131] A movable product tracking data processor service may be provided for managing the tracking details of movable products. The movable product tracking data processor service has a background job to load the tracking information on a persistence environment (Postgres) based on the defined business rules. The movable product tracking data processor service also has an API to view the tracking details of the provided movable products. By using the movable product tracking data processor service, the user / client can track a list of aggregated instances with all the key attributes (or) with the movable product ID.
[0132] A schedule editor service may be provided that is responsible for creating a schedule job for a workflow trigger node. The schedule job configuration may be input by the client application 110 when creating the following workflow:
[0133]
[0134] The scheduling job may trigger a request to perform aggregation on the saved workflow details and batch ID.When the client application 110 creates a workflow with a scheduler configuration, the schedule editor service may receive the request.
[0135] As described above, the ASIK Track blockchain-specific service layer 150' performs Fabric (blockchain) network communication jobs. ASIK Track blockchain-specific service layer 150' stores the main business logic, manages data operations, and calls blockchain platform 180. ASIK Track blockchain-specific service layer 150' accepts input from ASIKTrack service layer 150 and creates a request in the format of calling ASIK chain code 170. ASIK chain code 170 is ASIK100 submitting requests on blockchain platform 180 and putting data into the ledger and state database (e.g., ) layer. The ASIK Track blockchain-specific service layer 150' is also connected to The Fabric Certificate Authority interacts with the Fabric Certificate Authority to generate certificates for all roles involved in ASIK 100. In the case of the ASIK Track configuration, The Fabric Certificate Authority can register users (participants, supply chain managers, auditors, internal auditors) and generate certificates. These certificates can be used to verify the user on the blockchain platform 180 when the user makes any request on the ASIK 100 using the ASIK Track web service API layer 130.
[0136] Table 2 below describes a sample list of different microservices created in the ASIK Track to meet various functional and business requirements.
[0137] Table 2
[0138]
[0139]
[0140] Each service listed in Table 2 may contain multiple APIs that are exposed to the client application 110 that interfaces with the ASIK platform. For example, the service 'Mobile Product Data Processor and Tracking Service' is responsible for keeping snapshots of mobile products and tracking of their attributes.
[0141] Figure 5 is a flow chart 500 illustrating the operation of the ASIK 100 in a general configuration.
[0142] like Figure 5As shown, the starting point of ASIK 100 is an enterprise-level user who handles the front end of a distributed ledger product. The process originates from a user request or input at 510. The data provided by the user is a request to perform a certain transaction 185 on the blockchain network. The request can be made by the user from a user interface 520, through an HTTPS request, or through a request made from a RESTful API 140.
[0143] Typically, requests are transmitted via a responsive user interface 520 of the front end of the distributed ledger product, an HTTPS request, or from a RESTful API 140. These requests are routed from the endpoint (API) to the ASIK web service layer 150 in the form of functions [f(x) web services]. The nature of the request determines the necessary functions to be called on the ASIK web service layer 150, which leads to the identification of business logic in this step.
[0144] Before the packet is routed to the ASIK web service layer 150, the request may be validated by the middleware 420. The middleware 420 checks whether the provided request has all the parameters that meet the business requirements. The middleware 420 also handles certain special functions, such as case sensitivity of parameter or input variable names and similar features.
[0145] Based on the business requirements, appropriate functions that meet these requirements are selected through the network service functions [f(x) network service] of the ASIK 100. The request function then triggers similar functions on the chaincode 170 [f(x) chaincode]. These functions act as modulators that convert input requests into transactions that can be executed on the blockchain platform 180 via the chaincode 170. Therefore, for each request function, there is a similar response function that translates the information in a format interpreted by the blockchain platform 180. Business problems are solved in the chaincode layer 170, which is responsible for all interactions with the blockchain platform 180.
[0146] Once a transaction 185 is executed on the blockchain platform 180, the business operation is completed. The state of the transaction 185 is then updated to a preconfigured state database (e.g., ) 220. All transactions within the ASIK 100 may be performed according to a secure protocol (eg, Transport Layer Security (TLS) 1.0) such that internal and external transactions 185 are sent over a secure channel.
[0147] The process of updating the ledger 190 occurs sequentially whenever a transaction 185 is executed on the blockchain platform 180. Regardless of the status of the transaction, i.e., success (530) or failure (540), the transaction 185 with a unique ID is updated on the ledger 190. The smart contract / chaincode 170 can be customized by the ASIK 100 to further enhance transaction reporting.
[0148] Whenever a transaction 185 fails (540), an error handling system such as technical error reprocessing 550 assigns the transaction 185 to the ASIK 100. The ASIK 100 identifies the nature of the error and reruns the transaction 185 from an appropriate starting point.
[0149] After the business operation, the request is completed and the response is propagated to the ASIK web service layer 150 through the chaincode 170. The response can then be displayed as the desired output via the user interface dashboard on the user interface 520. Therefore, the lifecycle of the request function initiated at the ASIK web service layer 150 ends at the same place in the form of a response.
[0150] Those skilled in the art will understand that The ASIK 100 implemented in has the advantages of decentralization, secure data encryption, easy implementation and high fraud protection. ASIK 100 retains the core functions of the blockchain and delivers them to users without destroying the capabilities and content of the blockchain. ASIK 100 also provides a "plug and play" solution equipped with pre-configured scenarios. Users feed requests to the ASIK network service layer 150 using conventional user interface methods or HTTPS requests, and ASIK 100 handles the rest of the requests. Users only need to configure minimal factors to use ASIK 100. Business logic is precisely built and then deployed to peers within the channel, and the business logic is enforced on the blockchain. The modular nature simplifies the operation of executing transactions on the blockchain, which are suitable for specific use cases that abstract any need for technical understanding of the blockchain, making blockchain applications quite simple to use. In addition, the most popular business utilities and functions are pre-configured as reusable rules via programming interfaces, which ensures that enterprises can use the same solution for various complexities. It will also be understood that the ASIK 100 can also use the blockchain rule engine described in U.S. Patent Application No. 17 / 653,085 to implement business rules and enable the creation of new rules without having to enter the user application to do so. The contents of U.S. Patent Application No. 17 / 653,085 are incorporated herein by reference in their entirety.
[0151] ASIK 100 also provides a reliable backward compatible interface between users and blockchains. Users do not need to understand blockchains to get the benefits of ASIK 100 because ASIK 100 manages all operations on the blockchain. In addition, since ASIK 100 provides a collection of APIs that are exposed to meet specific business needs, ASIK 100 can be used in collaboration with any technology stack that is very similar to the API compatibility. ASIK 100 is also blockchain agnostic because it works with both chaincodes and smart contracts and is compatible with several blockchain networks such as Ethereum, ASIK 100 also works across all major technology stacks and programming languages, and interacts with a variety of compatible blockchains and cloud networks via a load-balanced REST API.
[0152] Since ASIK 100 outlines the semantics, syntax, interfaces, and requirements that enable ASIK 100 to work across all major technology stacks and programming languages, business service layers can be developed in different technologies, and new development can be done in the latest technology frameworks to take advantage of technology. ASIK 100 provides semantics and syntax that are already familiar to non-blockchain programmers and are the same across all blockchain platforms to enable rapid application development. ASIK 100 also provides a pluggable platform that can interface with multiple client applications with just a configuration change. A powerful load-balanced REST API can be used to interact with various blockchain frameworks with relative ease. The resulting framework facilitates blockchain upgrades and releases. In addition, by implementing multi-tenancy on the blockchain, it is possible to enable multiple tenants to create and manage data on the blockchain and physically separate the data of the corresponding tenants. All operations related to tenants and core ASIK participants are securely recorded on the blockchain within the multi-tenant framework. Finally, the modular framework of pre-configured features and functions enables ASIK 100 to provide a platform to easily deliver multiple business use cases.
[0153] These and other advantages will become apparent to those skilled in the art from the above description.
[0154] Computer Implementation
[0155] Figure 6 6 is a block diagram of a typical general purpose computer 600 that may be programmed into a special purpose computer suitable for implementing one or more embodiments of the ASIK 100 disclosed herein. The ASIK 100 described above may be implemented on any general purpose processing component, such as a computer having sufficient processing power, memory resources, and communication throughput capabilities to handle the necessary workload placed upon it. The computer 600 includes a processor 602 (which may be referred to as a central processor unit or CPU) that communicates with memory devices including secondary storage devices 604, read only memory (ROM) 606, random access memory (RAM) 608, input / output (I / O) devices 610, and network connection devices 612. The processor 602 may be implemented as one or more CPU chips or may be part of one or more application specific integrated circuits (ASICs).
[0156] Secondary storage 604 typically includes one or more disk drives or tape drives and is used for non-volatile storage of data and as an overflow data storage device in the event that RAM 608 is not large enough to hold all working data. Secondary storage 604 may be used to store programs that are loaded into RAM 608 when such programs are selected for execution. ROM 606 is used to store instructions and possibly data that are read during program execution. ROM 606 is a non-volatile memory device that typically has a small memory capacity relative to the larger memory capacity of secondary storage 604. RAM 608 is used to store volatile data and possibly instructions. Access to both ROM 606 and RAM 608 is typically faster than access to secondary storage 604.
[0157] The apparatus described herein may be configured to include a computer-readable non-transitory medium storing computer-readable instructions and one or more processors coupled to the memory, and when executing the computer-readable instructions, configure the computer 600 to perform the above-referenced Figures 1 to 5 The described method steps and operations. Computer-readable non-transitory media include all types of computer-readable media, including magnetic storage media, optical storage media, flash memory media, and solid-state storage media.
[0158] It should also be understood that the software comprising one or more computer executable instructions can be installed in and sold together with one or more servers and / or one or more routers and / or one or more devices in the consumer and / or producer domain that meet the present disclosure, and the one or more computer executable instructions contribute to the processing and operation described as above with reference to any step or all steps of the present disclosure. Alternatively, the software can be obtained and loaded into one or more servers and / or one or more routers and / or one or more devices in the consumer and / or producer domain that meet the present disclosure, including through physical media or distribution systems, including, for example, obtaining the software from a server owned by the software creator or from a server that is not owned by the software creator but used by the software creator. For example, the software can be stored on a server to be distributed over the Internet.
[0159] In addition, it will be understood by those skilled in the art that the present disclosure is not limited in its application to the details of the construction and arrangement of the components set forth in the specification or shown in the drawings. The embodiments herein can be other embodiments and can be practiced or executed in various ways. In addition, it will be understood that the words and terms used herein are for descriptive purposes and should not be considered restrictive. The use of "including", "comprising" or "having" and its variations herein is intended to cover the items listed thereafter and their equivalents and additional items. Unless otherwise limited, the terms "connect", "couple" and "install" and their variations herein are widely used and cover direct and indirect connections, couplings and installations. In addition, the terms "connect" and "couple" and their variations are not limited to physical or mechanical connections or couplings. Further, terms such as upward, downward, bottom and top are relative and are used to assist in explanation, but are not limited thereto.
[0160] Components of the illustrative apparatus, systems, and methods employed in accordance with the illustrated embodiments may be implemented at least in part in digital electronic circuitry, analog electronic circuitry, or in computer hardware, firmware, software, or a combination thereof. For example, these components may be implemented as a computer program product, such as a computer program, program code, or computer instructions tangibly embodied in an information carrier or machine-readable storage device, for execution by a data processing device such as a programmable processor, a computer, or multiple computers or to control their operation.
[0161] The computer program can be written in any form of programming language including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine or other unit suitable for use in a computing environment. The computer program can be deployed to execute on a computer, or on multiple computers at a site or distributed across multiple sites and interconnected by a communication network. In addition, the functional programs, codes and code segments for implementing the technology described herein can be easily interpreted by programmers skilled in the art as being within the scope of the present disclosure. The method steps associated with the illustrative embodiments can be executed by one or more programmable processors to execute computer programs, codes or instructions to perform functions (e.g., by operating on input data and / or generating output). For example, the method steps can also be performed by a dedicated logic circuit system such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit), and the device can be implemented as a dedicated logic circuit system.
[0162] The various illustrative logical blocks, modules, and circuits described in conjunction with the embodiments disclosed herein may be implemented or executed using a general purpose processor, a digital signal processor (DSP), an ASIC, an FPGA, or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, a combination of one or more microprocessors with a DSP core, or any other such configuration.
[0163] By way of example, processors suitable for executing computer programs include both general-purpose microprocessors and special-purpose microprocessors and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include or be operably coupled to one or more large-capacity storage devices such as magnetic disks, magneto-optical disks, or optical disks for storing data to receive data from or transmit data to or both. Information carriers suitable for implementing computer program instructions and data include all forms of non-volatile memory, including semiconductor memory devices as examples, such as electrically programmable read-only memory or ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory devices, and data storage disks (e.g., magnetic disks, internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks). The processor and memory can be supplemented by a dedicated logic circuit system or the processor and memory can be incorporated into the dedicated logic circuit system.
[0164] Those skilled in the art will appreciate that information and signals may be represented using any of a variety of different techniques and technologies. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltage, current, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
[0165] Those skilled in the art will appreciate that the various illustrative logic blocks, modules, circuits and algorithm steps described in conjunction with the embodiments disclosed herein can be implemented as electronic hardware, computer software or a combination of the two. In order to clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits and steps have been generally described above in terms of their functions. Whether such functions are implemented as hardware or software depends on the specific application and design constraints imposed on the entire system. The technician can implement the described functions in different ways for each specific application, but such implementation decisions should not be interpreted as causing departure from the scope of the present disclosure. The software module can reside in a random access memory (RAM), flash memory, ROM, EPROM, EEPROM, register, hard disk, removable disk, CD-ROM or any other form of storage medium known in the art. An exemplary storage medium is coupled to a processor so that the processor can read information from the storage medium and write information to the storage medium. In an alternative, the storage medium can be a component of the processor. In other words, the processor and the storage medium can reside in an integrated circuit or be implemented as discrete components.
[0166] As used herein, "machine-readable medium" means a device capable of temporarily or permanently storing instructions and data, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage devices (e.g., erasable programmable read-only memory (EEPROM)), and / or any suitable combination thereof. The term "machine-readable medium" should be deemed to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) that can store processor instructions. The term "machine-readable medium" should also be deemed to include any medium or combination of multiple media that can store instructions for execution by one or more processors, so that the instructions, when executed by one or more processors, cause the one or more processors to perform any one or more of the methods described herein. Therefore, "machine-readable medium" refers to a single storage device or device as well as a "cloud-based" storage system or storage network comprising multiple storage devices or devices. The term "machine-readable medium" as used herein does not include the signal itself.
[0167] Except as set forth in the appended claims, the description and drawings presented above are intended to be examples only and are not intended to limit the illustrative embodiments in any way. Note that the various technical aspects of the various elements of the various exemplary embodiments that have been described above can be combined in a variety of other ways, all of which are considered to be within the scope of the present disclosure.
[0168] Therefore, although exemplary embodiments have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible. Therefore, the present disclosure is not limited to the embodiments described above, but may be modified within the scope of the attached claims and the full scope of their equivalents.
Claims
1. A dedicated integrated kernel for connecting client applications to a blockchain platform that manages the blockchain, comprising: an application programming interface (API) layer that receives a request from the client application to perform a transaction on the blockchain, the API layer formats data associated with the request; a service layer that receives at least one command and formatted data associated with the request, identifies a type of the request, and based on the type of the request, forwards the at least one command and formatted data to be executed on the blockchain, and returns a result of processing the at least one command and formatted data on the blockchain to the client application, the service layer also describing pre-configured features and functions to be interacted with the blockchain platform according to a predetermined use case of the application-specific integration kernel; as well as A chaincode manages data operations of the preconfigured features and functions to be interacted with the blockchain platform for the predetermined use case by converting the at least one command into at least one transaction executable on the blockchain platform according to the preconfigured features and functions for the predetermined use case, and by returning the execution result of the at least one transaction on the blockchain platform and formatted data to the service layer.
2. The application specific integrated core according to claim 1, wherein: The API layer exposes an API that is used by the client application to access the preconfigured features and functions to interact with the blockchain platform according to the predetermined use case of the dedicated integration kernel.
3. The application specific integrated core according to claim 1, wherein: The API layer provides a load-balanced Representational State Transfer (REST) API to the client application, wherein the REST API is suitable for interacting with the blockchain platform.
4. The application specific integrated core according to claim 1, wherein: The API layer, service layer and chaincode are adapted to support a multi-tenant framework, whereby multiple client applications can create and manage data on the blockchain platform.
5. The application specific integrated core according to claim 1, wherein: The API layer authenticates the request from the client application, validates user details received in the request from the client application, checks the user's permission to perform the request from the client application, prepares the request for submission to the blockchain platform, and returns a response from the blockchain platform to the client application.
6. The application specific integrated core according to claim 1, wherein: The API layer, service layer and chaincode are adapted to support three roles including platform administrators, tenants and core ASIK participants, wherein the platform administrator is responsible for registering client applications, the tenants have IDs and resources allocated to the tenants, and can use the IDs and resources allocated to the tenants to perform create, read, update and delete operations on the formatted data, and the core ASIK participants have their own IDs, which are used to initiate requests to the API layer.
7. The application specific integrated kernel of claim 6, further comprising a database for each tenant, whereby each tenant performs operations in its own database.
8. The application specific integrated core according to claim 1, wherein: The service layer describes the preconfigured features and functions by outlining semantics and syntax and at least one interface, and the at least one command and formatted data interact with the blockchain platform for the predetermined use case of the application-specific integration kernel through the at least one interface.
9. The application specific integrated core according to claim 1, wherein: The predetermined use case of the application specific integration kernel corresponds to a business service to be executed on the blockchain.
10. The application specific integrated core according to claim 1, wherein: The chain code accesses the blockchain ledger and smart contracts of the blockchain platform to query or update the blockchain ledger.
11. The application specific integrated core according to claim 10, wherein: All operations of the client application are securely recorded in the blockchain ledger.
12. The application specific integrated kernel according to claim 1, further comprising a state database, wherein: The service layer accepts input from the API layer and converts the input into actions by calling the chaincode and the state database.
13. A method for docking a client application with a blockchain platform for managing a blockchain, comprising: Receiving, by an application programming interface (API) layer, a request from the client application to execute a transaction on the blockchain; formatting, by the API layer, data associated with the request; receiving, by the service layer, at least one command and formatted data associated with the request; Identifying, by the service layer, the type of the request; Based on the type of the request, forwarding, by the service layer, the at least one command and formatted data for execution on the blockchain; managing data operations by the chaincode by converting the at least one command into at least one transaction executable on the blockchain platform according to preconfigured features and functions to interact with the blockchain platform according to a predetermined use case; as well as Returning the execution result of the at least one transaction and the formatted data on the blockchain platform to the client application.
14. The method of claim 13, further comprising exposing an API to the client application, the client application being able to use the API to access the preconfigured features and functions to interact with the blockchain platform according to the predetermined use case.
15. The method of claim 13, further comprising providing a load-balanced Representational State Transfer (REST) API to the client application, wherein: The REST API is suitable for interacting with the blockchain platform.
16. The method of claim 13, further comprising enabling a plurality of client applications to create and manage data on the blockchain platform using the API layer, service layer, and chaincode.
17. The method according to claim 13, wherein: The formatting of data associated with the request includes: the API layer validating the request from the client application, validating user details received in the request from the client application, checking the user's permission to perform the request from the client application, and preparing the request for submission to the blockchain platform.
18. The method according to claim 13, wherein: The API layer, service layer and chaincode are suitable for supporting three roles including platform administrators, tenants and core ASIK participants, and also include: the platform administrator registers client applications, the tenant uses the ID and the resources allocated to the tenant to perform create, read, update and delete operations on the formatted data, and the core ASIK participant uses its own ID to initiate a request to the API layer.
19. The method of claim 18, wherein each tenant has a database, further comprising each tenant performing operations in its own database.
20. The method of claim 13, further comprising describing, by the service layer, the preconfigured features and functions by outlining semantics and syntax and at least one interface, through which the at least one command and formatted data interact with the blockchain platform for the predetermined use case.
21. The method according to claim 13, wherein: The predetermined use case corresponds to a business service to be executed on the blockchain.
22. The method according to claim 13 further includes accessing the blockchain ledger and smart contracts of the blockchain platform by the chain code to query or update the blockchain ledger.
23. The method of claim 22, further comprising securely recording all operations of the client application to the blockchain ledger.
24. The method of claim 13, further comprising the service layer accepting input from the API layer and converting the input into actions by calling the chaincode and a state database.
25. A non-transitory computer-readable medium having instructions stored thereon, the instructions, when executed by one or more processors, causing the one or more processors to implement a method for interfacing a client application with a blockchain platform that manages a blockchain, the instructions comprising: an application programming interface (API) layer that receives a request from the client application to perform a transaction on the blockchain and formats data associated with the request; a service layer that receives at least one command and formatted data associated with the request, identifies a type of the request, and based on the type of the request, forwards the at least one command and formatted data to be executed on the blockchain, and returns a result of executing the at least one command and formatted data on the blockchain platform to the client application; as well as A chaincode manages data operations by converting the at least one command into at least one transaction executable on the blockchain platform according to preconfigured features and functions to interact with the blockchain platform according to a predetermined use case.
Citation Information
Patent Citations
Blockchain rules engine
US20230283488A1