Method and system for providing data storage service based on blockchain as a service (baas) platform

By managing data storage across nodes in different regions through a Blockchain-as-a-Service (BaaS) platform, the problem of off-chain storage and cross-regional synchronization of large amounts of data in private blockchain networks is solved, enabling secure and reliable data management and enterprise-level data synchronization and smart contract interaction.

CN116126968BActive Publication Date: 2026-08-04ANT BLOCKCHAIN TECHNOLOGY (SHANGHAI) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ANT BLOCKCHAIN TECHNOLOGY (SHANGHAI) CO LTD
Filing Date
2022-12-15
Publication Date
2026-08-04

AI Technical Summary

Technical Problem

In a private, multi-participant blockchain network, how can we securely and reliably achieve off-chain storage and synchronization of large volumes of unstructured data while meeting enterprise-level requirements for network adaptability, security, and data reliability?

Method used

Through the Blockchain as a Service (BaaS) platform, BaaS platform nodes deployed in different regions manage local data storage modules, receive data through the user interface module, calculate hash values ​​and store them in the local data storage module, generate storage object identifiers, and store the hash values ​​and identifiers in the blockchain, thereby realizing off-chain storage and cross-regional data synchronization.

Benefits of technology

It achieves secure and reliable off-chain storage and cross-regional synchronization of large volumes of data, adapts to private and multi-participant consortium blockchain application scenarios, meets enterprise-level security and data management requirements, and supports interaction with smart contracts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116126968B_ABST
    Figure CN116126968B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method for providing data storage service based on a blockchain as a service (BaaS) platform, comprising: receiving data to be stored from a user through a first user interface module among user interface modules and calculating a hash value of the data to be stored; storing the data to be stored received by the first user interface module to a first data storage module managed by a first BaaS platform node corresponding to the first user interface module and generating a storage object identification through the first BaaS platform node; and after the data is stored, sending a transaction request to store the hash value of the data and the storage object identification into a blockchain through the first user interface module to a consortium chain network and returning a storage credential indicating that the data has been stored to the user. The present disclosure also relates to a system for providing data storage service.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to one or more embodiments of a method for providing data storage services based on a Blockchain as a Service (BaaS) platform, a method for providing data storage services associated with a consortium blockchain network, a system for providing data storage services based on a Blockchain as a Service (BaaS) platform, a system for providing data storage services associated with a consortium blockchain network, and a node device for providing data storage services based on a Blockchain as a Service (BaaS) platform. Background Technology

[0002] Blockchain networks can be provided as public, private, or consortium blockchain networks. In a consortium blockchain network (also referred to herein as a "consortium blockchain network"), each node is operated by participating parties within the consortium (e.g., financial institutions, insurance companies). For example, a consortium of multiple participating parties can operate a consortium blockchain network, with each party operating at least one node within the network. Therefore, a consortium blockchain network can be considered a private network concerning the participating parties. Figure 1 This is a schematic diagram of an example consortium blockchain network. This example consortium blockchain network has multiple participants, each of whom can have one or more consortium blockchain nodes. Each consortium blockchain node can receive transactions from the clients served by that participant, and these transactions are executed and stored in a distributed manner by the nodes across the consortium blockchain network. Summary of the Invention

[0003] One of the objectives of this disclosure is to provide a method for providing data storage services based on a Blockchain as a Service (BaaS) platform, a method for providing data storage services associated with a consortium blockchain network, a system for providing data storage services based on a Blockchain as a Service (BaaS) platform, a system for providing data storage services associated with a consortium blockchain network, and a node device for providing data storage services based on a Blockchain as a Service (BaaS) platform.

[0004] According to one or more embodiments of this disclosure, a method for providing data storage services based on a Blockchain-as-a-Service (BaaS) platform is provided. The BaaS platform includes multiple BaaS platform nodes deployed in multiple regions associated with multiple participants in a consortium blockchain network for which services are provided by the BaaS platform. Each BaaS platform node manages its locally deployed data storage module and provides a user interface module. The method includes: receiving data to be stored from a user through a first user interface module in each user interface module and calculating the hash value of the data to be stored; storing the data to be stored received by the first user interface module into a first data storage module managed by the first BaaS platform node through a first BaaS platform node corresponding to the first user interface module, and generating a storage object identifier; and after the data is stored, sending a transaction request to the consortium blockchain network through the first user interface module to store the hash value and storage object identifier of the data in the blockchain, and returning a storage certificate indicating that the data has been stored to the user.

[0005] According to another aspect of one or more embodiments of this disclosure, a method for providing data storage services associated with a consortium blockchain network is provided, comprising: deploying multiple service nodes in multiple different regions, multiple data storage modules corresponding to the multiple service nodes, and multiple user interface modules corresponding to the multiple service nodes and managed by the consortium blockchain network for identity management, wherein each of the multiple different regions is associated with a participant in the consortium blockchain network; receiving data to be stored from a user through each user interface module and calculating the hash value of the data to be stored; storing the data to be stored received by the corresponding user interface module into the corresponding data storage module through each service node and generating a storage object identifier; after the data is stored, sending a transaction request to the consortium blockchain network through each user interface module to store the hash value and storage object identifier of the data in the blockchain, and returning a storage certificate indicating that the data has been stored to the user.

[0006] According to another aspect of one or more embodiments of this disclosure, a system for providing data storage services based on a Blockchain-as-a-Service (BaaS) platform is provided, comprising: multiple BaaS platform nodes respectively deployed in multiple regions associated with multiple participants in a consortium blockchain network provided by the BaaS platform; multiple data storage modules respectively managed by the multiple BaaS platform nodes, each data storage module being deployed locally with its corresponding BaaS platform node; and multiple user interface modules respectively provided by the multiple BaaS platform nodes, wherein each user interface module is configured to receive data to be stored from a user and calculate the hash value of the data to be stored; each BaaS platform node is configured to store the data to be stored received by the corresponding user interface module into the corresponding data storage module and generate a storage object identifier; each user interface module is further configured to, after the data is stored, send a transaction request to the consortium blockchain network to store the hash value and storage object identifier of the data in the blockchain, and return a storage certificate indicating that the data has been stored to the user.

[0007] According to another aspect of one or more embodiments of this disclosure, a system for providing data storage services associated with a consortium blockchain network is provided, comprising: multiple service nodes distributed in different regions, each service node being associated with a participant in the consortium blockchain network; multiple data storage modules corresponding to the multiple service nodes respectively; and multiple user interface modules corresponding to the multiple service nodes respectively, with identity management performed by the consortium blockchain network, wherein each user interface module is configured to receive data to be stored from a user and calculate the hash value of the data to be stored; each service node is configured to store the data to be stored received by the corresponding user interface module into the corresponding data storage module and generate a storage object identifier; each user interface module is further configured to send a transaction request to the consortium blockchain network after the data is stored to store the hash value and storage object identifier of the data in the blockchain, and return a storage certificate indicating that the data has been stored to the user.

[0008] According to another aspect of one or more embodiments of this disclosure, a node device for providing data storage services based on a Blockchain-as-a-Service (BaaS) platform is provided. The node device is deployed in association with a participant in a consortium blockchain network provided by the BaaS platform. The node device includes a data storage service interface and a data storage management module. The data storage service interface is configured to receive data to be stored from an identity-verifiable user interface module. The data storage management module is configured to store the data in a data storage module corresponding to the node device and deployed in association with the participant, and generate a storage object identifier. The data storage service interface is further configured to return the storage object identifier to the user interface module.

[0009] Other features and advantages of this disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description

[0010] The accompanying drawings, which form part of this specification, illustrate one or more embodiments of this disclosure and, together with the specification, serve to explain the principles of one or more embodiments of this disclosure.

[0011] One or more embodiments of this disclosure can be more clearly understood with reference to the accompanying drawings and the following detailed description, wherein:

[0012] Figure 1 This is a schematic diagram of an example consortium blockchain network;

[0013] Figure 2 An example environment is depicted that can be used to perform one or more exemplary embodiments of this disclosure;

[0014] Figure 3 This is a flowchart of at least a portion of a method for providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, according to one or more exemplary embodiments of this disclosure;

[0015] Figure 4 This is a flowchart of at least a portion of a method for providing data storage services associated with a consortium blockchain network according to one or more exemplary embodiments of this disclosure;

[0016] Figure 5 This is a schematic diagram of the structure of a system for providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, according to one or more exemplary embodiments of this disclosure;

[0017] Figure 6 This is a schematic diagram of the structure of a node device providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, according to one or more exemplary embodiments of this disclosure. Detailed Implementation

[0018] To enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments in this specification, and not all of them. However, it should be understood that one or more embodiments of this disclosure can be presented in many different ways and are not limited to the embodiments described below. It should also be understood that one or more embodiments of this disclosure can be combined in various ways to provide more additional embodiments. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this specification.

[0019] It should be understood that the same reference numerals denote the same elements in all the accompanying drawings. For clarity, the dimensions of certain features may be modified in the drawings.

[0020] It should be understood that the terminology used herein is for describing specific embodiments only and is not intended to be limiting. All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art unless otherwise defined. For the sake of brevity and / or clarity, well-known functions or structures may not be described in detail.

[0021] In this document, the term "connection" is intended to encompass a physical, electrical, and / or communicative connection between one feature and another feature, and there may or may not be an intermediate feature between the two features. When the connection is a communicative connection, even if A and B are mentioned as "directly connected," it is only intended to emphasize that the connection between A and B does not involve one or more features emphasized in one or more embodiments of this disclosure, but does not imply a limitation that A and B can be connected without any components. Those skilled in the art will understand that A and B can be connected via cables, routers, gateways, channels, links, networks, etc. It should be noted that in the accompanying drawings of one or more embodiments of this disclosure, whether the connection between A and B is direct or indirect, it is represented by a straight line or other graphic element connecting A and B.

[0022] In this document, the term “A or B” includes both “A and B” and “A or B”, rather than exclusively including only “A” or only “B”, unless otherwise specified.

[0023] In this document, the term "exemplary" means "used as an example, instance, or illustration," and not as a "model" to be precisely copied. Any implementation described herein is not necessarily to be construed as preferred or advantageous over other implementations. Moreover, one or more embodiments of this disclosure are not limited to any expressed or implied theory given in the foregoing technical field, background, summary of invention, or detailed description.

[0024] In this document, the term "substantially" means any minor variation caused by design or manufacturing defects, device or component tolerances, environmental influences, and / or other factors. The term "substantially" also allows for differences from the perfect or ideal situation due to parasitic effects, noise, and other practical considerations that may exist in actual implementations.

[0025] Additionally, terms such as “first,” “second,” etc., may be used in this document for reference purposes only and are not intended to be limiting. For example, unless the context clearly indicates otherwise, the words “first,” “second,” and other such numerical terms relating to structures or elements do not imply order or sequence.

[0026] It should also be understood that when the term “including / contains” is used herein, it indicates the presence of the indicated feature, whole, step, operation, unit and / or component, but does not preclude the presence or addition of one or more other features, wholes, steps, operations, units and / or components and / or combinations thereof.

[0027] It should be noted that the transaction described in this specification refers to a piece of data created by a user through a blockchain client and ultimately published to the blockchain's distributed database. A transaction is a data structure defined in the blockchain protocol; for a piece of data to be stored on the blockchain, it needs to be encapsulated as a transaction.

[0028] Transactions in blockchain can be categorized into narrow and broad definitions. A narrow transaction refers to a value transfer initiated by a user on the blockchain; for example, in a traditional blockchain network, a transaction might be a transfer initiated by a user. A broad transaction, on the other hand, refers to business data with a specific intent that a user submits to the blockchain. For instance, an operator might build a consortium blockchain based on actual business needs, deploying other types of online services unrelated to value transfer (such as rental services, vehicle dispatching, insurance claims, credit services, and medical services). In such a consortium blockchain, a transaction could be a business message or request with a specific business intent submitted by a user.

[0029] In consortium blockchain applications, different processing strategies are typically employed depending on the volume of business data when uploading it to the blockchain. For example, small amounts of data or files can be directly stored on the blockchain. However, for large amounts of unstructured data or files, direct uploading is generally not recommended (as it leads to a rapid increase in ledger storage and a decrease in blockchain performance). Instead, a method of anchoring to the blockchain is used, where the original data or files are stored off-chain, while the hash value (and storage address, etc.) of the data or files are recorded on the blockchain. This off-chain storage is typically a centralized or public cloud storage service. For example, in privatized, multi-party scenarios involving governments and large enterprises, common off-chain storage solutions include public cloud storage services (OSS, etc.), private central storage, and private IPFS networks.

[0030] However, in private blockchain applications and multi-party consortiums (such as governments and large enterprises), the aforementioned methods of uploading large volumes of unstructured data onto the blockchain face certain challenges. First, due to the limitations of private network environments, it is typically impossible for participating applications or blockchain systems to connect to public cloud storage services. Second, due to objective limitations (network latency or security requirements) or the need for equal status among parties, it is impossible for all parties to access a centralized storage service provided by a single party. Therefore, a system solution for off-chain data storage and synchronization with equal access for all parties is needed for these application scenarios, meeting enterprise-level requirements in terms of network adaptability, security, data reliability, and fine-grained control capabilities.

[0031] Blockchain as a Service (BaaS) is a service platform that helps users create, manage, and maintain enterprise-grade blockchain networks and applications. It features rapid deployment, ease of use, and high security and reliability, reducing the cost of blockchain usage and development. It provides blockchain users and application developers with blockchain service capabilities and middleware capabilities. BaaS typically includes a web-based management console, a REST API (or other commonly used API protocols) service gateway, a blockchain browser on PCs (and mobile devices), an integrated development environment (IDE) for blockchain applications / contracts, application SDKs, and backend management services.

[0032] As a non-limiting example, a BaaS service provider can offer a BaaS platform, and a first consortium participant can join a first consortium blockchain network within the BaaS platform, while a second consortium participant can join a second consortium blockchain network within the BaaS platform. Typically, the BaaS service provider operating the BaaS platform provides infrastructure and management services, as well as many other services. Each participant in the consortium blockchain network hosted on the BaaS platform provides identity verification to the BaaS platform so that the platform can manage their identity.

[0033] One or more embodiments of this disclosure propose a method and system for providing data storage services on a Blockchain-as-a-Service (BaaS) platform. This system is adaptable to complex network environments with privatization and multiple participants, enabling secure and reliable data synchronization of large files across institutions and anchoring them to the blockchain. It can also collaborate with on-chain smart contracts and achieve fine-grained data synchronization and access control.

[0034] Figure 2An example environment 100 is depicted that can be used to implement embodiments of this specification. In some examples, example environment 100 enables users to participate in a consortium blockchain network 102. Example environment 100 includes computing systems 106, 108 and network 110. In some examples, network 110 includes a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof, and connects websites, user equipment (e.g., computing devices), and back-end systems. In some examples, network 110 can be accessed via wired and / or wireless communication links.

[0035] In the depicted examples, computing systems 106 and 108 may each include any suitable computing system capable of participating as a node in the consortium blockchain network 102. Example computing devices include, but are not limited to, servers, desktop computers, laptop computers, tablet computing devices, and smartphones. In some examples, computing systems 106 and 108 host one or more computer-implemented services for interacting with the consortium blockchain network 102. For example, computing system 106 may host a computer-implemented service for a first user (e.g., participant A), such as a transaction management system used by the first user to manage their transactions with one or more other users (e.g., other participants). Computing system 108 may host a computer-implemented service for a second user (e.g., participant B), such as a transaction management system used by the second user to manage their transactions with one or more other users (e.g., other participants). Figure 1 In the example, consortium blockchain network 102 is represented as a peer-to-peer network of nodes, and computing systems 106 and 108 provide nodes for the first user and the second user participating in consortium blockchain network 102, respectively.

[0036] Figure 3 This is a flowchart of at least a portion of a method 200 for providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, according to one or more exemplary embodiments of this disclosure. Figure 5 This is a schematic diagram of the structure of a system providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, according to one or more exemplary embodiments of this disclosure, such as a system capable of performing method 200. Figure 5As shown, a system providing data storage services based on a Blockchain-as-a-Service (BaaS) platform includes: multiple BaaS platform nodes, multiple data storage modules corresponding to the multiple BaaS platform nodes, and multiple user interface modules. In one or more embodiments of this disclosure, the BaaS platform is a distributed BaaS platform deployed in different regions of participating parties, and the devices deployed in each region as BaaS platform services are referred to herein as "BaaS platform nodes". Multiple BaaS platform nodes are deployed in multiple regions associated with multiple participants in the consortium blockchain network for which services are provided by the BaaS platform. Each BaaS platform node manages its locally deployed data storage modules, and each BaaS platform node provides a user interface module.

[0037] In some embodiments, method 200 includes operations 210 to 230. In operation 210, data (including files) to be stored is received from a user through a first user interface module in each user interface module, the hash value of the data to be stored is calculated, and the data is sent to a first BaaS platform node. The user can be a user of a consortium blockchain network, such as a participant corresponding to the first user interface module. The user can access the first user interface module through a corresponding application, such as an application for enabling data storage on the blockchain.

[0038] In some embodiments, the first user interface module can first determine the size of the received data to be stored. If the received data size is greater than a threshold, the first user interface module performs operation 230, which calculates the hash value of the data to be stored and sends the data to the first BaaS platform node. If the received data size is less than the threshold, the first user interface module sends a transaction request to the consortium blockchain network to store the data in the blockchain. Thus, for small amounts of data or files, the entire content of the data or file can be directly stored on the blockchain. For large amounts of unstructured data or files, an on-chain anchoring method is adopted, that is, the original data or file is stored off-chain, while the hash value (and storage address, etc.) of the data or file is recorded on-chain.

[0039] In operation 220, the first BaaS platform node corresponding to the first user interface module stores the data to be stored received by the first user interface module into the first data storage module managed by the first BaaS platform node, and generates a storage object identifier.

[0040] The data storage module can be implemented using known storage technologies, such as enterprise file storage, object storage, relational databases, and non-relational databases. Each data storage module is uniquely managed by its corresponding BaaS platform node; that is, the data storage module only provides data access services to the BaaS platform node that manages it, thus preventing users from accessing the data storage module without going through its corresponding BaaS platform node. This strengthens the protection and consistency management of data file content.

[0041] The storage object identifier is used to uniquely identify the stored data in the data storage service system based on the Blockchain-as-a-Service (BaaS) platform, enabling any BaaS platform node in the system to access the corresponding stored data through the storage object identifier. Therefore, the storage object identifier needs to include information indicating the storage location of the stored data, such as "storage directory + filename". Furthermore, as described later, the storage object identifier can also be used to determine the target synchronization BaaS platform node for data synchronization. Therefore, the storage object identifier also includes information indicating the participants in the consortium blockchain network to which the data is targeted. In a specific example, the storage object identifier may include "consortium blockchain ID + business domain + object unique ID". Here, the consortium blockchain ID is the identifier of the consortium blockchain network associated with the current data storage; the business domain can be flexibly designed according to actual product or business needs, and may include, for example, a business sub-chain ID, a set of chain nodes, attribute tags, etc. The object unique ID is used to uniquely identify the stored data; when the data storage module is implemented with different storage products, the composition of the object unique ID may differ. For example, when the data storage module is implemented based on Alibaba Cloud OSS object storage service, the unique object ID can be the URL of the stored object; when the data storage module uses IPFS storage, the unique object ID can be the hash value of the stored data content; when the data storage module uses NAS shared file system, the unique object ID can be NAS instance ID + storage directory + file name.

[0042] In operation 230, after the data is stored, a transaction request is sent to the consortium blockchain network through the first user interface module to store the hash value and storage object identifier of the data into the blockchain, and a storage credential indicating that the data has been stored is returned to the user. The storage credential can be the transaction identifier (transaction ID) of the transaction request.

[0043] In some embodiments, the method of providing data storage services based on a Blockchain as a Service (BaaS) platform may further include synchronizing data stored on one BaaS platform node to other BaaS platform nodes, such as targeting synchronized BaaS platform nodes.

[0044] The first BaaS platform node determines the target synchronization BaaS platform node based on the storage object identifier of the data to be synchronized. The first BaaS platform node can periodically read newly added stored data from the first data storage module, and then determine the target synchronization BaaS platform node for its respective data based on the storage object identifier of each stored data, completing the following data synchronization operation. By appropriately setting the synchronization interval (period), fine-grained data synchronization can be achieved between nodes of the distributed BaaS platform. Alternatively, after each operation 220, the first BaaS platform node can determine the target synchronization BaaS platform node for the current data based on the storage object identifier of the stored data, and complete the following data synchronization operation. The first BaaS platform node sends the data to be synchronized from the first data storage module to the target synchronization BaaS platform node among multiple BaaS platform nodes. After receiving the data to be synchronized from the first BaaS platform node, the target synchronization BaaS platform node stores the data in the data storage module managed by the target synchronization BaaS platform node.

[0045] Similarly, the first BaaS platform node may also receive data to be synchronized from other BaaS platform nodes. In response to receiving data to be synchronized from other BaaS platform nodes, the first BaaS platform node stores the data in the first data storage module.

[0046] To achieve data synchronization between BaaS platform nodes, a communication connection is required between the source and target BaaS platform nodes. Preferably, every two BaaS platform nodes in a distributed BaaS platform have a communication connection. In this paper, the communication between BaaS platform nodes is also referred to as interconnection. Known communication methods can be used to implement the underlying network communication between BaaS platform nodes, including TCP connections based on the client / server model, communication connections based on the blockchain's built-in P2P network, or communication connections based on the blockchain communication network BTN. Utilizing the interconnection link between BaaS platform nodes, various underlying network communication services (TCP direct connection / blockchain P2P communication / BTN network communication) can be flexibly applied, adapting to the networks of various private stakeholders (governments, enterprises, etc.), and enabling secure and reliable synchronization of user-stored data across distributed platforms.

[0047] As mentioned above, the storage object identifier also includes information indicating the participants in the consortium blockchain network to which the data is targeted. BaaS platform nodes can determine the target synchronization BaaS platform node based on the storage object identifier of the data to be synchronized. In a specific example, the storage object identifier includes "Consortium Blockchain ID + Business Domain + Unique Object ID". BaaS platform nodes can determine the scope of participants in the consortium blockchain and the BaaS platform nodes with interoperability enabled based on the consortium blockchain ID. Furthermore, they can determine the visibility scope of the on-chain business settings of the consortium blockchain based on the consortium blockchain ID and the business domain, such as which participants the stored data can be shared with. Therefore, BaaS platform nodes can determine the target synchronization BaaS platform node based on the scope of participants in the consortium blockchain, the BaaS platform nodes with interoperability enabled, and the visibility scope of the on-chain business settings of the consortium blockchain.

[0048] In some embodiments, the method of providing data storage services based on a Blockchain-as-a-Service (BaaS) platform may further include providing the requested data to the user in response to the user's data query request.

[0049] Users who need to query or consume data can send a data query request to their locally deployed user interface module through the application, providing a storage credential indicating that the data has been stored. The first user interface module receives the data query request from the user, which includes a storage credential corresponding to the stored data; it then sends a transaction request to the consortium blockchain network based on the storage credential to obtain the hash value and storage object identifier of the stored data corresponding to the storage credential; and finally, it sends the storage object identifier of the stored data to the first BaaS platform node to request the reading of the corresponding stored data. In response to receiving the storage object identifier of the stored data, the first BaaS platform node reads the data corresponding to the storage object identifier from the first data storage module and sends the data to the first user interface module. The first user interface module calculates the hash value of the data and compares the calculated hash value with the hash value of the stored data obtained from the consortium blockchain network; and in response to a match, it sends the data to the user.

[0050] In some embodiments, the user interface module can be a REST API gateway provided by the corresponding BaaS platform node. The REST API gateway provided by the BaaS platform node is a gateway service that provides applications with the ability to interact with blockchain smart contracts and ledgers, and to call other blockchain service functions, in the form of a RESTful API interface. The BaaS REST gateway features highly reliable on-chain capabilities, support for asynchronous calls, content security auditing / filtering, dynamic scaling, standardized support for multiple programming languages, and traffic control, providing enterprise-level service quality assurance for the interaction between blockchain applications and the chain. In the above embodiments, when the user interface module is implemented as a REST API gateway, the functions of the user interface module in the above embodiments are encapsulated into a simple and easy-to-use API for applications to call. In some embodiments, the user interface module can also be an application SDK provided by the corresponding BaaS platform node.

[0051] Figure 6 This is a schematic diagram of the structure of a node device providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, according to one or more exemplary embodiments of this disclosure. The BaaS platform node in the above embodiments can be implemented as this node device. Each node device is deployed in association with a participant in a consortium blockchain network provided by the BaaS platform. The node device includes a data storage service interface, a data storage management module, a data synchronization management module, and a network connection management module. The node device manages the locally deployed data storage module corresponding to the node device through the data storage management module. The data storage service interface provides data writing and reading functionalities only to trusted modules in the system, such as an identity-verifiable user interface module.

[0052] During the data storage process, the data storage service interface is configured to receive the data to be stored from the user interface module; the data storage management module is configured to store the data in the data storage module deployed in association with the participating parties and corresponding to the node device, and generate a storage object identifier; the data storage service interface is also configured to return the storage object identifier to the user interface module.

[0053] During the data query process, the data storage service interface is also configured to receive the storage object identifier of the stored data from the user interface module; the data storage management module is also configured to, in response to the data storage service interface receiving the storage object identifier of the stored data, read the data corresponding to the storage object identifier of the stored data from the corresponding data storage module and send the data to the data storage service interface; the data storage service interface is also configured to return the data to the user interface module.

[0054] During data synchronization, the data synchronization management module is configured to determine the target synchronization node device based on the storage object identifier of the data to be synchronized read from the data storage module by the data storage management module; the network connection management module is configured to send the data to be synchronized to the target synchronization node device. The network connection management module is also configured to receive data to be synchronized from other node devices; furthermore, the data synchronization management module is configured to store the data to be synchronized received by the network connection management module into the corresponding data storage module via the data storage management module.

[0055] Figure 4 This is a flowchart of at least a portion of a method 300 for providing data storage services associated with a consortium blockchain network according to one or more exemplary embodiments of this disclosure. Method 300 includes: deploying multiple service nodes (e.g., implemented as the node devices described above) in multiple different geographical locations; multiple data storage modules corresponding to the multiple service nodes; and multiple user interface modules, each corresponding to the multiple service nodes and managed by the consortium blockchain network, wherein each of the multiple different geographical locations is associated with a participant in the consortium blockchain network (operation 310); receiving data to be stored from a user through each user interface module and calculating the hash value of the data to be stored (operation 320); storing the data to be stored received by the corresponding user interface module into the corresponding data storage module through each service node and generating a storage object identifier (operation 330); after the data is stored, sending a transaction request to the consortium blockchain network through each user interface module to store the hash value and storage object identifier of the data in the blockchain, and returning a storage credential indicating that the data has been stored to the user (operation 340).

[0056] The method and system for providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, according to one or more embodiments of this disclosure, can securely and reliably store large volumes of data off-chain and anchor them to the blockchain. Data synchronization can be achieved among participants across geographical regions, adaptable to private, multi-participant consortium blockchain application scenarios. The solution utilizes distributed BaaS platform nodes deployed among the participants in the consortium blockchain. By supporting peer-to-peer or hierarchical relationships among these platform nodes, it can flexibly support business collaboration roles and relationships between different government agencies or enterprises. Data can be synchronized among the parties through BaaS interconnection links, enabling local writing and access for applications, meeting the security requirements of government agencies and enterprises. Furthermore, the main working processes can be recorded on the blockchain, facilitating auditing and supervision of the entire data lifecycle by regulatory agencies. In addition, this solution not only achieves data notarization but also natively interacts with smart contracts on the consortium blockchain network (e.g., a REST gateway can further use some data content to call smart contracts), enabling better integration with trusted on-chain business logic for data processing.

[0057] The foregoing has described one or more exemplary embodiments of this disclosure. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific or sequential order shown to achieve the desired result. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0058] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program and "integrate" a digital system onto a PLD themselves, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed ​​Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages ​​and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.

[0059] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.

[0060] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or physical entities, or by products with certain functions. A typical implementation device is a server system. Of course, this application does not exclude the possibility that, with the future development of computer technology, the computer implementing the functions of the above embodiments can be, for example, a personal computer, a laptop computer, an in-vehicle human-machine interaction device, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or any combination of these devices.

[0061] While one or more embodiments of this specification provide the operational steps of the methods described in the embodiments or flowcharts, more or fewer operational steps may be included based on conventional or non-inventive means. The order of steps listed in the embodiments is merely one possible order of execution among many steps and does not represent the only possible order. In actual device or end product execution, the methods shown in the embodiments or drawings may be executed sequentially or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even a distributed data processing environment). The terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, product, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, product, or apparatus. Without further limitations, the presence of other identical or equivalent elements in the process, method, product, or apparatus that includes the elements is not excluded. For example, the use of terms such as "first," "second," etc., is to denote names and does not indicate any particular order.

[0062] For ease of description, the above devices are described in terms of function, divided into various modules. Of course, when implementing one or more of these specifications, the functions of each module can be implemented in one or more software and / or hardware components, or a module that performs the same function can be implemented by a combination of multiple sub-modules or sub-units. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between devices or units, and may be electrical, mechanical, or other forms.

[0063] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0064] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0065] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0066] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0067] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.

[0068] Computer-readable media, including both permanent and non-permanent, removable and non-removable media, can store information using any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage, graphene storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.

[0069] Those skilled in the art will understand that one or more embodiments of this specification can be provided as a method, system, or computer program product. Therefore, one or more embodiments of this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, one or more embodiments of this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0070] One or more embodiments of this specification can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a particular task or implement a particular abstract data type. One or more embodiments of this specification can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In a distributed computing environment, program modules can reside in local and remote computer storage media, including storage devices.

[0071] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, system embodiments are basically similar to method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. In the description of this specification, the terms "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example, which are included in at least one embodiment or example of this specification. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described can be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification and the features of different embodiments or examples.

[0072] The above description is merely an embodiment of one or more embodiments of this specification and is not intended to limit the scope of this specification. Various modifications and variations can be made to the one or more embodiments of this specification by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of the claims.

Claims

1. A method for providing data storage services based on a Blockchain as a Service (BaaS) platform, the BaaS platform comprising multiple BaaS platform nodes deployed in multiple geographic regions associated with multiple participants in a consortium blockchain network for which services are provided by the BaaS platform, each BaaS platform node managing its locally deployed data storage module, and each BaaS platform node providing a user interface module, the method comprising: The system receives the data to be stored from the user through the first user interface module in each user interface module, and calculates the hash value of the data to be stored. The first BaaS platform node corresponding to the first user interface module stores the data to be stored received by the first user interface module into the first data storage module managed by the first BaaS platform node, and generates a storage object identifier. The storage object identifier includes information indicating the storage location of the stored data and information indicating the participants in the consortium blockchain network to which the data is targeted. as well as After the data is stored, a transaction request is sent to the consortium blockchain network through the first user interface module to store the hash value and storage object identifier of the data into the blockchain, and a storage certificate indicating that the data has been stored is returned to the user.

2. The method according to claim 1, wherein, The method further includes: (The method provides communication connections between multiple BaaS platform nodes.) Through the first BaaS platform node, the data to be synchronized in the first data storage module is sent to the target synchronization BaaS platform node among multiple BaaS platform nodes; and In response to receiving data to be synchronized from other BaaS platform nodes, the data is stored in the first data storage module through the first BaaS platform node.

3. The method according to claim 2, further comprising: The target synchronization BaaS platform node is determined by the storage object identifier of the data to be synchronized through the first BaaS platform node.

4. The method according to claim 1, further comprising: Through the first user interface module: The system receives a data query request from the user, which includes storage credentials corresponding to the stored data. Based on the storage certificate, a transaction request is sent to the consortium blockchain network to obtain the hash value of the stored data corresponding to the storage certificate and the storage object identifier of the stored data; as well as Send the storage object identifier of the stored data to the first BaaS platform node to request the reading of the corresponding stored data. Through the first BaaS platform node: In response to receiving the storage object identifier of the stored data, the system reads the data corresponding to the storage object identifier from the first data storage module and sends the data to the first user interface module. Through the first user interface module: Calculate the hash value of the data and compare the calculated hash value with the hash value of the stored data obtained from the consortium blockchain network; as well as If the comparison results are consistent, the data is sent to the user.

5. The method according to claim 1, 2 or 4, wherein, The first data storage module does not allow users to access it without going through the first BaaS platform node.

6. The method according to claim 1, further comprising: In response to the received data size exceeding the threshold, the data is sent to the first BaaS platform node through the first user interface module; as well as If the received data size is less than a threshold, a transaction request is sent to the consortium blockchain network through the first user interface module to store the data in the blockchain.

7. The method according to claim 1, wherein, The user is a user of the consortium blockchain network.

8. The method according to claim 1, wherein, The storage credential includes the transaction identifier of the transaction request.

9. The method according to claim 1, wherein, The user interface module includes a REST API gateway or application SDK provided by the BaaS platform node.

10. The method according to claim 2, wherein, Communication connections between BaaS platform nodes include TCP connections based on the client / server model, communication connections based on a blockchain P2P network, or communication connections based on a blockchain communication network (BTN).

11. A method for providing data storage services associated with a consortium blockchain network, comprising: Multiple service nodes, multiple data storage modules corresponding to the multiple service nodes, and multiple user interface modules corresponding to the multiple service nodes, which are managed by the consortium blockchain network, are deployed in multiple different regions. Each region in the multiple different regions is associated with a participant of the consortium blockchain network. Each user interface module receives the data to be stored from the user and calculates the hash value of the data to be stored. Through each service node, the data to be stored received by the corresponding user interface module is stored in the corresponding data storage module, and a storage object identifier is generated. The storage object identifier includes information indicating the storage location of the stored data and information indicating the participants in the consortium blockchain network to which the data is targeted. After the data is stored, each user interface module sends a transaction request to the consortium blockchain network to store the hash value and storage object identifier of the data into the blockchain, and returns a storage certificate indicating that the data has been stored to the user.

12. The method according to claim 11, wherein, The method further includes: establishing communication connections between multiple service nodes, and using each service node... Send the data to be synchronized from the corresponding data storage module to the target synchronization service node among multiple service nodes; and In response to receiving data to be synchronized from other service nodes, the data is stored in the corresponding data storage module.

13. The method of claim 12, further comprising: The target synchronization service node is determined based on the storage object identifier of the data to be synchronized at each service node.

14. The method of claim 11, further comprising: Through each user interface module: The system receives a data query request from the user, which includes storage credentials corresponding to the stored data. Based on the storage certificate, a transaction request is sent to the consortium blockchain network to obtain the hash value of the stored data corresponding to the storage certificate and the storage object identifier of the stored data; as well as Send the storage object identifier of the stored data to the corresponding service node to request the retrieval of the corresponding stored data. Through each service node: In response to receiving the storage object identifier of the stored data, the system reads the data corresponding to the storage object identifier from the corresponding data storage module and sends the data to the corresponding user interface module. Through each user interface module: Calculate the hash value of the data and compare the calculated hash value with the hash value of the stored data obtained from the consortium blockchain network; as well as If the comparison results are consistent, the data is sent to the user.

15. The method according to claim 11, 12 or 14, wherein, The data storage module does not allow users to access it without going through the service node corresponding to the data storage module.

16. The method of claim 11, further comprising: If the received data size exceeds the threshold, the data is sent to the corresponding service node through each user interface module. as well as In response to the received data size being less than a threshold, a transaction request is sent to the consortium blockchain network through each user interface module to store the data in the blockchain.

17. The method according to claim 11, wherein, The user is a user of the consortium blockchain network.

18. The method according to claim 11, wherein, The storage credential includes the transaction identifier of the transaction request.

19. A system for providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, comprising: Multiple BaaS platform nodes are deployed in multiple regions, each associated with a consortium blockchain network of participants that are served by a BaaS platform. Multiple data storage modules are managed by multiple BaaS platform nodes, and each data storage module is deployed locally with its corresponding BaaS platform node; as well as Multiple user interface modules are provided by multiple BaaS platform nodes, among which, Each user interface module is configured to receive data to be stored from the user and calculate the hash value of the data to be stored; Each BaaS platform node is configured to store the data to be stored received by the corresponding user interface module into the corresponding data storage module and generate a storage object identifier, wherein the storage object identifier includes information indicating the storage location of the stored data and information indicating the participant of the consortium blockchain network to which the data is targeted; Each user interface module is also configured to send a transaction request to the consortium blockchain network after the data is stored to store the hash value of the data and the storage object identifier into the blockchain, and return a storage credential indicating that the data has been stored to the user.

20. The system according to claim 19, wherein, Multiple BaaS platform nodes have communication connections, and each BaaS platform node is also configured as follows: Send the data to be synchronized in the corresponding data storage module to the target synchronization BaaS platform node in multiple BaaS platform nodes. as well as In response to receiving data to be synchronized from other BaaS platform nodes, the data is stored in the corresponding data storage module.

21. The system according to claim 20, wherein, Each BaaS platform node is also configured to determine the target BaaS platform node to synchronize based on the storage object identifier of the data to be synchronized.

22. The system according to claim 19, wherein, Each user interface module is also configured as follows: The system receives a data query request from the user, which includes storage credentials corresponding to the stored data. Based on the storage certificate, a transaction request is sent to the consortium blockchain network to obtain the hash value of the stored data corresponding to the storage certificate and the storage object identifier of the stored data; as well as Send the storage object identifier of the stored data to the corresponding BaaS platform node to request the reading of the corresponding stored data. Each BaaS platform node is also configured as follows: In response to receiving the storage object identifier of the stored data, the system reads the data corresponding to the storage object identifier from the corresponding data storage module and sends the data to the corresponding user interface module. Each user interface module is also configured as follows: Calculate the hash value of the data and compare the calculated hash value with the hash value of the stored data obtained from the consortium blockchain network; and If the comparison results are consistent, the data is sent to the user.

23. The system according to claim 19, 20 or 22, wherein, The data storage module is configured to prevent users from accessing it without going through the BaaS platform node that manages the data storage module.

24. The system according to claim 19, wherein, Each user interface module is also configured as follows: If the received data size exceeds the threshold, the data is sent to the corresponding BaaS platform node. as well as In response to the received data size being less than a threshold, a transaction request is sent to the consortium blockchain network to store the data in the blockchain.

25. The system according to claim 19, wherein, The user is a user of the consortium blockchain network.

26. The system according to claim 19, wherein, The storage credential includes the transaction identifier of the transaction request.

27. The system according to claim 19, wherein, The user interface module includes a REST API gateway or application SDK provided by the BaaS platform node.

28. The system according to claim 20, wherein, Communication connections between BaaS platform nodes include TCP connections based on the client / server model, communication connections based on a blockchain P2P network, or communication connections based on a blockchain communication network (BTN).

29. A system for providing data storage services associated with a consortium blockchain network, comprising: Multiple service nodes are distributed across different regions, and each service node is associated with a participant in the consortium blockchain network; Multiple data storage modules, each corresponding to a different service node; as well as The identity management is handled by the consortium blockchain network, which includes multiple user interface modules corresponding to multiple service nodes, among which... Each user interface module is configured to receive data to be stored from the user and calculate the hash value of the data to be stored; Each service node is configured to store the data to be stored received by the corresponding user interface module into the corresponding data storage module and generate a storage object identifier, wherein the storage object identifier includes information indicating the storage location of the stored data and information indicating the participant of the consortium blockchain network to which the data is targeted; Each user interface module is also configured to send a transaction request to the consortium blockchain network after the data is stored to store the hash value of the data and the storage object identifier into the blockchain, and return a storage credential indicating that the data has been stored to the user.

30. The system according to claim 29, wherein, Multiple service nodes have communication connections, and each service node is also configured as follows: Send the data to be synchronized in the corresponding data storage module to the target synchronization service node among multiple service nodes; as well as In response to receiving data to be synchronized from other service nodes, the data is stored in the corresponding data storage module.

31. The system according to claim 30, wherein, Each service node is also configured to determine the target synchronization service node based on the storage object identifier of the data to be synchronized.

32. The system according to claim 29, wherein, Each user interface module is also configured as follows: The system receives a data query request from the user, which includes storage credentials corresponding to the stored data. Based on the storage certificate, a transaction request is sent to the consortium blockchain network to obtain the hash value of the stored data corresponding to the storage certificate and the storage object identifier of the stored data; as well as Send the storage object identifier of the stored data to the corresponding service node to request the retrieval of the corresponding stored data. Each service node is also configured as follows: In response to receiving the storage object identifier of the stored data, the system reads the data corresponding to the storage object identifier from the corresponding data storage module and sends the data to the corresponding user interface module. Each user interface module is also configured as follows: Calculate the hash value of the data and compare the calculated hash value with the hash value of the stored data obtained from the consortium blockchain network; and If the comparison results are consistent, the data is sent to the user.

33. The system according to claim 29, 30 or 32, wherein, The data storage module is configured to prevent users from accessing it without going through the service node corresponding to the data storage module.

34. The system according to claim 29, wherein, Each user interface module is also configured as follows: In response to the received data size exceeding a threshold, the data is sent to the corresponding service node; and In response to the received data size being less than a threshold, a transaction request is sent to the consortium blockchain network to store the data in the blockchain.

35. The system according to claim 29, wherein, The user is a user of the consortium blockchain network.

36. The system according to claim 29, wherein, The storage credential includes the transaction identifier of the transaction request.

37. A node device providing data storage services based on a Blockchain-as-a-Service (BaaS) platform, the node device being deployed in association with a participant in a consortium blockchain network provided by the BaaS platform, the node device including a data storage service interface and a data storage management module, wherein, The data storage service interface is configured to receive data to be stored from an identifiable user interface module; The data storage management module is configured to store data in a data storage module deployed in association with the participant and corresponding to the node device, and generate a storage object identifier, wherein the storage object identifier includes information indicating the storage location of the stored data and information indicating the participant of the consortium blockchain network to which the data is targeted; The data storage service interface is also configured to return the storage object identifier to the user interface module.

38. The node device according to claim 37, wherein, The data storage service interface is also configured to receive the storage object identifier of the stored data from the verifiable user interface module; The data storage management module is also configured to, in response to the data storage service interface receiving the storage object identifier of the stored data, read the data corresponding to the storage object identifier of the stored data from the corresponding data storage module and send the data to the data storage service interface; The data storage service interface is also configured to return data to the user interface module.

39. The node device according to claim 37 further includes a data synchronization management module and a network connection management module, wherein, The data synchronization management module is configured to determine the target synchronization node device based on the storage object identifier of the data to be synchronized read from the data storage module by the data storage management module. The network connection management module is configured to send the data to be synchronized to the target synchronization node device.

40. The node device according to claim 39, wherein, The network connection management module is also configured to receive data to be synchronized from other node devices; The data synchronization management module is also configured to store the data to be synchronized received by the network connection management module into the corresponding data storage module through the data storage management module.

41. The node device according to claim 37, wherein, The storage object identifier also includes the identifier of the consortium blockchain network.