CN108628942A - 区块链节点设备、分布式数据库的数据读取及写入方法 - Google Patents
区块链节点设备、分布式数据库的数据读取及写入方法 Download PDFInfo
- Publication number
- CN108628942A CN108628942A CN201810259899.7A CN201810259899A CN108628942A CN 108628942 A CN108628942 A CN 108628942A CN 201810259899 A CN201810259899 A CN 201810259899A CN 108628942 A CN108628942 A CN 108628942A
- Authority
- CN
- China
- Prior art keywords
- data
- block chain
- key
- key keys
- node device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种区块链节点设备、分布式数据库的数据读取及写入方法,本发明通过在区块链上发起针对key键和/或value值的二进制数据的交易,构建key键到交易目标信息的本地索引,实现基于区块链的去中心化的key‑value数据库,并支持基于该key‑value数据库的数据写入和读取。本发明通过区块链技术实现的去中心化的key‑value数据库,可以基于普通的网络节点运行,并且使得数据的任何修改记录都可以追溯查询。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种区块链节点设备、分布式数据库的数据读取及写入方法。
背景技术
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库;分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储区块链节点设备上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储。
然而,传统的分布式数据库是基于服务器集群构建的,需要依赖可靠的服务器和高速的网络带宽,有高额的成本;同时,数据由运营该系统的机构控制,可以随意篡改数据库记录,且容易受到黑客的攻击和非法修改,数据的安全性得不到保障。
发明内容
本发明的主要目的是提供一种基于区块链的分布式数据库的数据写入方法,旨在通过区块链技术实现一个去中心化的key-value数据库,可以基于普通的网络节点运行,并且使得数据的任何修改记录都可以追溯查询。
为实现上述目的,本发明提出的一种分布式数据库的数据写入方法,该方法适用于区块链,该方法包括以下步骤:
A1,若用户有键值数据需要通过区块链节点设备写入所述区块链,则提取出要写入的所述键值数据对应的key键和/或value值,根据预先确定的所述 key键、value值与数据类型的映射关系,确定提取出的所述key键和/或value 值对应的数据类型,按照确定的所述数据类型对提取出的key键和/或value 值进行序列化,以转换为对应的二进制数据;
A2,通过本地区块链节点设备发起一条针对所述二进制数据的交易,该交易带有交易目标信息和所述二进制数据;
A3,通过该本地区块链节点设备在区块链上插入与该交易对应的新的区块,并将该新的区块同步给所有区块链节点设备;
A4,若一个其他区块链节点设备收到该本地区块链节点设备同步来的该新的区块并进行验证后,由该其他区块链节点设备将收到的新的区块中的key 键和/或value值提取出来,构建所述key键到交易目标信息的本地索引。
优选地,该方法还包括以下步骤:
若所述key键在所述本地索引中已经存在,则将所述交易目标信息追加到已经存在的所述key键后面。
优选地,所述数据类型包括第一数据类型和第二数据类型,其中:
该第一数据类型同时指定key键和value值,该第一数据类型的格式为:以第一数量字节字符串KEYVALUE为前缀,后面紧跟作为key长度的第二数量字节字符串LEN、作为key数据的第三数量字节字符串KEY DATA、作为 value数据的可变长度字符串VALUE DATA;
该第二数据类型仅指定value值,该第二数据类型的格式为:以第一数量字节字符串ONLVALUE为前缀,后面紧跟作为value数据的可变长度字符串 VALUE DATA。
优选地,所述步骤A1之前,还包括如下步骤:
若所述区块链为比特币区块链,则在所述区块链中复用在区块链上写入数据的脚本指令,修改所述区块链的数据读写操作代码,以复用交易记录中的Data字段,并修改所述区块链的区块处理代码,以识别所述区块链中的键值数据,提取该键值数据的索引key键,并且构建该key键的本地索引存储;
若所述区块链为以太坊区块链,则在所述区块链中复用交易记录中的 Data字段,创建一个智能合约,用于将发给所述智能合约的交易中的Data字段数据存储到所述区块链中,并修改所述区块链的区块处理代码,以识别所述区块链中的键值数据,提取该键值数据的索引key键,并且构建该key键的本地索引存储。
此外,为实现上述目的,本发明还提供一种分布式数据库的数据读取方法,该方法适用于区块链,该方法包括如下步骤:
B1,若用户需要通过区块链节点设备读取区块链的键值数据,则获取要读取的所述键值数据对应的key键和对应的数据类型,向本地区块链节点设备发送带有获取的所述key键和所述数据类型的查询请求;
B2,如果所述本地区块链节点设备是全量区块链节点设备则在本地索引中查找该查询请求中的所述key键;
B3,若查找不到所述key键,则返回第一预设结果;
B4,若查找到所述key键,则返回查找到的所述key键对应的最后一条交易目标信息,从所述区块链中读取出该最后一条交易目标信息对应的二进制数据,根据该查询请求中的数据类型提取出该二进制数据中的key键和/或 value值,并返回提取出的所述value值。
优选地,所述步骤B1之后还包括:
如果所述本地区块链节点设备是轻量区块链节点设备,则向与其通信连接的其他全量区块链节点设备发送带有获取的所述key键和所述数据类型的所述查询请求;
从接收到该查询请求的其他所述全量区块链节点设备得到该查询请求中的所述key键对应的所述交易目标信息;
通过得到的所述交易目标信息从区块链中读取出对应的二进制数据,根据该查询请求中的所述数据类型提取出该二进制数据中的所述key键和/或 value值,并返回提取出的所述value值。
此外,为实现上述目的,本发明还提供一种区块链节点设备,应用于分布式数据库的数据写入系统,所述区块链节点设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的分布式数据库的数据写入系统,所述分布式数据库的数据写入系统被所述处理器执行时实现如下步骤:
A1,若用户有键值数据需要通过所述区块链节点设备写入区块链,则提取出要写入的所述键值数据对应的key键和/或value值,根据预先确定的所述key键、value值与数据类型的映射关系,确定提取出的所述key键和/或value 值对应的数据类型,按照确定的所述数据类型对提取出的key键和/或value 值进行序列化,以转换为对应的二进制数据;
A2,通过本地区块链节点设备发起一条针对所述二进制数据的交易,该交易带有交易目标信息和所述二进制数据;
A3,通过该本地区块链节点设备在区块链上插入与该交易对应的新的区块,并将该新的区块同步给所有区块链节点设备。
优选地,所述分布式数据库的数据写入系统被所述处理器执行时还实现如下步骤:
若收到一个其他区块链节点设备同步来的新的区块并进行验证后,将收到的新的区块中的key键和/或value值提取出来,构建所述key键到交易目标信息的本地索引。
优选地,所述数据类型包括第一数据类型和第二数据类型,其中:
该第一数据类型同时指定key键和value值,该第一数据类型的格式为:以第一数量字节字符串KEYVALUE为前缀,后面紧跟作为key长度的第二数量字节字符串LEN、作为key数据的第三数量字节字符串KEY DATA、作为 value数据的可变长度字符串VALUE DATA;
该第二数据类型仅指定value值,该第二数据类型的格式为:以第一数量字节字符串ONLVALUE为前缀,后面紧跟作为value数据的可变长度字符串 VALUE DATA;
优选地,所述处理器还用于执行所述分布式数据库的数据写入系统,以实现如下步骤:
若所述key键在所述本地索引中已经存在,则将所述交易目标信息追加到已经存在的所述key键后面。
此外,为实现上述目的,本发明还提供一种区块链节点设备,应用于分布式数据库的数据读取系统,所述区块链节点设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的分布式数据库的数据读取系统,所述分布式数据库的数据读取系统被所述处理器执行时实现如下步骤:
B1,若用户需要通过区块链节点设备读取区块链的键值数据,则获取要读取的所述键值数据对应的key键和对应的数据类型,向本地区块链节点设备发送带有获取的所述key键和所述数据类型的查询请求;
B2,如果所述本地区块链节点设备是全量区块链节点设备则在本地索引中查找该查询请求中的所述key键;
B3,若查找不到所述key键,则返回第一预设结果;
B4,若查找到所述key键,则返回查找到的所述key键对应的最后一条交易目标信息,从所述区块链中读取出该最后一条交易目标信息对应的二进制数据,根据该查询请求中的数据类型提取出该二进制数据中的key键和/或 value值,并返回提取出的所述value值。
优选地,所述步骤B1之后,处理器还用于执行所述分布式数据库的数据读取系统,以实现如下步骤:
如果所述本地区块链节点设备是轻量区块链节点设备,则向与其通信连接的其他全量区块链节点设备发送带有获取的所述key键和所述数据类型的所述查询请求;
从接收到该查询请求的其他所述全量区块链节点设备得到该查询请求中的所述key键对应的所述交易目标信息;
通过得到的所述交易目标信息从区块链中读取出对应的二进制数据,根据该查询请求中的所述数据类型提取出该二进制数据中的所述key键和/或 value值,并返回提取出的所述value值。
本发明通过在区块链上发起针对key键和/或value值的二进制数据的交易,构建key键到交易目标信息的本地索引,实现基于区块链的去中心化的 key-value数据库,并支持基于该key-value数据库的数据写入和读取。与现有技术相比,本发明通过区块链技术实现一个去中心化的key-value数据库,可以基于普通的网络节点运行,并且使得数据的任何修改记录都可以追溯查询。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明分布式数据库的数据写入方法第一实施例的流程示意图;
图2为本发明分布式数据库的数据写入方法第二实施例的流程示意图;
图3为本发明分布式数据库的数据读取方法第一实施例的流程示意图;
图4为本发明分布式数据库的数据写入系统第一实施例的运行环境示意图;
图5为本发明分布式数据库的数据写入系统第一实施例的程序模块图;
图6为本发明分布式数据库的数据读取系统第一实施例的运行环境示意图;
图7为本发明分布式数据库的数据读取系统第一实施例的程序模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,图1为本发明分布式数据库的数据写入方法第一实施例的流程示意图。
本实施例中,该方法包括如下步骤:
步骤A1,若用户有键值数据需要通过区块链节点设备写入所述区块链,则提取出要写入的所述键值数据对应的key键和/或value值,根据预先确定的所述key键、value值与数据类型的映射关系,确定提取出的所述key键和/ 或value值对应的数据类型,按照确定的所述数据类型对提取出的key键和/ 或value值进行序列化,以转换为对应的二进制数据;
上述键值数据又称为key-value数据。
优选地,本实施例中,上述数据类型包括第一数据类型和第二数据类型。例如,若提取出的key键和/或value值包括key键和value值,则提取出的key 键和/或value值对应的数据类型是该第一数据类型;若提取出的key键和/或value值仅包括value值,则提取出的key键和/或value值对应的数据类型是该第二数据类型。
上述第一数据类型同时指定key键和value值,该第一数据类型的格式为:以第一数量字节字符串KEYVALUE为前缀,后面紧跟作为key长度的第二数量字节字符串LEN、作为key数据的第三数量字节字符串KEY DATA、作为 value数据的可变长度字符串VALUE DATA。请参考如下格式示例:
KEYVALUE | LEN | KEY DATA | VALUE DATA |
8B | 1B | 0~256B | 可变长度 |
上述示例第一数据类型的格式为:前缀为8字节的字符串KEYVALUE,后面紧跟作为key长度的1字节的字符串LEN、作为key数据的0~256字节的字符串KEY DATA、作为value数据的可变长度字符串VALUE DATA。
上述第二数据类型仅指定value值,该第二数据类型的格式为:以第一数量字节字符串ONLVALUE为前缀,后面紧跟作为value数据的可变长度字符串VALUE DATA。请参考如下格式示例:
ONLVALUE | VALUE DATA |
8B | 可变长度 |
上述示例第二数据类型的格式为:前缀为8字节的字符串ONLVALUE,后面紧跟作为value数据的可变长度字符串VALUE DATA。
步骤A2,通过本地区块链节点设备发起一条针对所述二进制数据的交易,该交易带有交易目标信息和所述二进制数据;
上述交易目标是一个哈希值,指的是交易相对方的账户地址,针对比特币区块链,该账户地址指的是脚本地址,针对以太坊区块链,该账户地址指的是合约地址。
步骤A3,通过该本地区块链节点设备在区块链上插入与该交易对应的新的区块,并将该新的区块同步给所有区块链节点设备;
步骤A4,若一个其他区块链节点设备收到该本地区块链节点设备同步来的该新的区块并进行验证后,由该其他区块链节点设备将收到的新的区块中的key键和/或value值提取出来,构建所述key键到交易目标信息的本地索引。
上述构建key键到交易目标信息的本地索引就是将key键以及其对应的交易目标信息,存储在本地的数据库中,可以直接使用区块链节点已经在使用的数据库即可,存储时,key键要相应的增加“KEYVALUE”或者“ONLVALUE”的前缀,使其跟其它索引区分开来。区块链节点可以在本地提供键值数据的读取接口,读取时,用户先选择查询的数据类型,再提供key键,区块链节点首先通过key键查找到对应的交易目标信息,再将查找的交易目标信息对应的二进制数据从区块链中读取出来,提取出其中的value值,返回给用户。
优选的,本实施例中,上述区块链节点设备可至少被分为两类,包括全量区块链节点设备和轻量区块链节点设备,上述全量区块链节点设备指的是含有全部区块数据的区块链节点设备,所述全量区块链节点设备下载有区块链的所有数据,可以独立的对交易进行验证。轻量区块链节点设备指的是只保存区块头信息的区块链节点设备,轻量区块链节点设备启动只下载极少量的数据,无法对交易数据进行验证。
优选的,本实施例中,若所述key键在所述本地索引中已经存在,则将所述交易目标信息追加到已经存在的所述key键后面。。
与现有技术相比,本实施例通过区块链技术实现一个去中心化的 key-value数据库,可以基于普通的网络节点运行,并且使得数据的任何修改记录都可以追溯查询。
如图2所示,图2为本发明分布式数据库的数据写入方法第二实施例的流程示意图。
本实施例在第一实施例的基础上,于步骤A1之前,该数据写入方法还包括:
步骤A5,若所述区块链为比特币区块链,则在所述区块链中复用在区块链上写入数据的脚本指令,例如,OP_Return<data>,修改所述区块链的数据读写操作代码,以复用交易记录中的Data字段,并修改所述区块链的区块处理代码,以识别所述区块链中的键值数据,提取该键值数据的索引key键,并且构建该key键的本地索引存储;
上述Data字段没有大小限制,使用该字段存储key-value数据。
步骤A6,若所述区块链为以太坊区块链,则在所述区块链中复用交易记录中的Data字段,创建一个智能合约,用于将发给所述智能合约的交易中的 Data字段数据存储到区块链中,例如,使用SSTORE指令,并修改所述区块链的区块处理代码,以识别区块链中的键值数据,提取该键值数据的索引key 键,并且构建该key键的本地索引存储。
若区块链为以太坊区块链,则无需修改区块链的数据读写操作代码,智能合约即可支持变长数据,该字段没有大小限制,使用该字段存储key-value 数据。
此外,本发明还提出一种分布式数据库的数据读取方法,适用于区块链。
如图3所示,图3为本发明分布式数据库的数据读取方法第一实施例的流程示意图。
本实施例中,该方法包括:
步骤B1,若用户需要通过区块链节点设备读取区块链的键值数据,则获取要读取的所述键值数据对应的key键和对应的数据类型,向本地区块链节点设备发送带有获取的所述key键和所述数据类型的查询请求;
若需要读取区块链的键值数据,即key-value数据,则提取出要读取的键值数据对应的key键及对应的数据类型;发送查询请求至本地区块链节点设备,该本地区块链节点设备带有上述key键和数据类型信息。
优选地,本实施例中,上述数据类型包括第一数据类型和第二数据类型。例如,若提取出的key键和/或value值包括key键和value值,则提取出的key 键和/或value值对应的数据类型是该第一数据类型;若提取出的key键和/或 value值仅包括value值,则提取出的key键和/或value值对应的数据类型是该第二数据类型。
上述第一数据类型同时指定key键和value值,该第一数据类型的格式为:以第一数量字节字符串KEYVALUE为前缀,后面紧跟作为key长度的第二数量字节字符串LEN、作为key数据的第三数量字节字符串KEY DATA、作为 value数据的可变长度字符串VALUE DATA。请参考如下格式示例:
KEYVALUE | LEN | KEY DATA | VALUE DATA |
8B | 1B | 0~256B | 可变长度 |
上述示例第一数据类型的格式为:前缀为8字节的字符串KEYVALUE,后面紧跟作为key长度的1字节的字符串LEN、作为key数据的0~256字节的字符串KEY DATA、作为value数据的可变长度字符串VALUE DATA。
上述第二数据类型仅指定value值,该第二数据类型的格式为:以第一数量字节字符串ONLVALUE为前缀,后面紧跟作为value数据的可变长度字符串VALUE DATA。请参考如下格式示例:
ONLVALUE | VALUE DATA |
8B | 可变长度 |
上述示例第二数据类型的格式为:前缀为8字节的字符串ONLVALUE,后面紧跟作为value数据的可变长度字符串VALUE DATA。
步骤B2,如果所述本地区块链节点设备是全量区块链节点设备则在本地索引中查找该查询请求中的所述key键;
优选的,本实施例中,区块链节点设备可至少被分为两类,包括全量区块链节点设备和轻量区块链节点设备,上述全量区块链节点设备指的是含有全部区块数据的区块链节点设备,所述全量区块链节点设备下载有区块链的所有数据,可以独立的对交易进行验证。
由于全量区块链节点设备存储有区块链的所有数据,因此可直接在该全量区块链节点设备中读取上述键值数据。
步骤B3,若查找不到所述key键,则返回第一预设结果;
当在全量区块链节点设备的本地索引中查找不到该key键,则返回第一预设结果,例如,上述第一预设结果可设置为查询为空的结果,说明区块链中并未写入该键值数据。
步骤B4,若查找到所述key键,则返回查找到的所述key键对应的最后一条交易目标信息,从所述区块链中读取出该最后一条交易目标信息对应的二进制数据,根据该查询请求中的数据类型提取出该二进制数据中的key键和/或value值,并返回提取出的所述value值。
当在全量区块链节点设备的本地索引中查找到该key键,则返回该key 键对应的最后一条交易目标信息,该交易目标是一个哈希值,指的是交易相对方的账户地址,针对比特币区块链,该账户地址指的是脚本地址,针对以太坊区块链,该账户地址指的是合约地址。根据该交易目标信息查找其对应的二进制数据,该二进制数据即根据数据类型对key键和/或value值进行序列化得到的,通过查询请求中的数据类型可转换该二进制数据得到对应的key 键和/或value值,将该value值返回即为读取结果。
与现有技术相比,本实施例通过区块链技术实现一个去中心化的 key-value数据库,可以基于普通的网络节点运行,并且使得数据的任何修改记录都可以追溯查询。
进一步的,本实施例中,步骤B1之后还包括:
步骤B5,如果所述本地区块链节点设备是轻量区块链节点设备,则向与其通信连接的其他全量区块链节点设备发送带有获取的所述key键和所述数据类型的所述查询请求;
步骤B6,从接收到该查询请求的其他所述全量区块链节点设备得到该查询请求中的所述key键对应的所述交易目标信息;
步骤B7,通过得到的所述交易目标信息从区块链中读取出对应的二进制数据,根据该查询请求中的所述数据类型提取出该二进制数据中的所述key 键和/或value值,并返回提取出的所述value值。
本实施例还说明了接收查询请求的区块链节点设备为轻量区块链节点设备的情况,所谓轻量区块链节点设备指的是只保存区块头信息的区块链节点设备,轻量区块链节点设备启动只下载极少量的数据,无法对交易数据进行验证。轻量区块链节点设备与其他全量区块链节点设备保持通信连接,当接收到查询请求时,该轻量区块链节点设备向与其通信连接的其他全量区块链节点设备转发查询请求;全量区块链节点设备接收到该查询请求后,在其本地索引中查找该查询请求中的key键,如果查找不到该key键,则返回第一预设结果至轻量区块链节点设备,由轻量区块链节点设备转发该第一预设结果作为查询结果;若全量区块链节点设备查找到该key键,则返回该key键对应的最后一条交易目标信息至轻量区块链节点设备;轻量区块链节点设备接收该交易目标信息,通过该交易目标信息查找其对应的二进制数据,该二进制数据即根据数据类型对key键和/或value值进行序列化得到的,通过查询请求中的数据类型可转换该二进制数据得到对应的key键和/或value值,将该value 值返回即为读取结果。
此外,本发明还提出一种分布式数据库的数据写入系统。
请参阅图4,是本发明分布式数据库的数据写入系统10第一实施例的运行环境示意图。
在本实施例中,分布式数据库的数据写入系统10安装并运行于区块链节点设备1中。区块链节点设备1可以是桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该区块链节点设备1可包括,但不仅限于,存储器11、处理器12及显示器13。图4仅示出了具有组件11-13的区块链节点设备1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
存储器11在一些实施例中可以是区块链节点设备1的内部存储单元,例如该区块链节点设备1的硬盘或内存。存储器11在另一些实施例中也可以是区块链节点设备1的外部存储设备,例如区块链节点设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD) 卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括区块链节点设备1的内部存储单元也包括外部存储设备。存储器11用于存储安装于区块链节点设备1的应用软件及各类数据,例如分布式数据库的数据写入系统10 的程序代码等。存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行分布式数据库的数据写入系统10等。
显示器13在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器13用于显示在区块链节点设备1中处理的信息以及用于显示可视化的用户界面。区块链节点设备1的部件11-13通过系统总线相互通信。
请参阅图5,是本发明分布式数据库的数据写入系统10第一实施例的程序模块图。在本实施例中,分布式数据库的数据写入系统10可以被分割成一个或多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行,以完成本发明。例如,在图5中,分布式数据库的数据写入系统10可以被分割成提取模块101、交易请求模块 102、同步模块103及更新模块104。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述分布式数据库的数据写入系统10在区块链节点设备1中的执行过程,其中:
提取模块101,用于若用户有键值数据需要通过所述区块链节点设备写入区块链,则提取出要写入的所述键值数据对应的key键和/或value值,根据预先确定的所述key键、value值与数据类型的映射关系,确定提取出的所述key 键和/或value值对应的数据类型,按照确定的所述数据类型对提取出的key 键和/或value值进行序列化,以转换为对应的二进制数据;
交易请求模块102,用于通过本地区块链节点设备发起一条针对所述二进制数据的交易,该交易带有交易目标信息和所述二进制数据;
同步模块103,用于通过该本地区块链节点设备在区块链上插入与该交易对应的新的区块,并将该新的区块同步给所有区块链节点设备。
上述键值数据又称为key-value数据。
优选地,本实施例中,上述数据类型包括第一数据类型和第二数据类型。例如,若提取出的key键和/或value值包括key键和value值,则提取出的key 键和/或value值对应的数据类型是该第一数据类型;若提取出的key键和/或 value值仅包括value值,则提取出的key键和/或value值对应的数据类型是该第二数据类型。
上述第一数据类型同时指定key键和value值,该第一数据类型的格式为:以第一数量字节字符串KEYVALUE为前缀,后面紧跟作为key长度的第二数量字节字符串LEN、作为key数据的第三数量字节字符串KEY DATA、作为 value数据的可变长度字符串VALUE DATA。请参考如下格式示例:
KEYVALUE | LEN | KEY DATA | VALUE DATA |
8B | 1B | 0~256B | 可变长度 |
上述示例第一数据类型的格式为:前缀为8字节的字符串KEYVALUE,后面紧跟作为key长度的1字节的字符串LEN、作为key数据的0~256字节的字符串KEY DATA、作为value数据的可变长度字符串VALUE DATA。
上述第二数据类型仅指定value值,该第二数据类型的格式为:以第一数量字节字符串ONLVALUE为前缀,后面紧跟作为value数据的可变长度字符串VALUE DATA。请参考如下格式示例:
ONLVALUE | VALUE DATA |
8B | 可变长度 |
上述示例第二数据类型的格式为:前缀为8字节的字符串ONLVALUE,后面紧跟作为value数据的可变长度字符串VALUE DATA。
上述交易目标是一个哈希值,指的是交易相对方的账户地址,针对比特币区块链,该账户地址指的是脚本地址,针对以太坊区块链,该账户地址指的是合约地址。
上述构建key键到交易目标信息的本地索引就是将key键以及其对应的交易目标信息,存储在本地的数据库中,可以直接使用区块链节点已经在使用的数据库即可,存储时,key键要相应的增加“KEYVALUE”或者“ONLVALUE”的前缀,使其跟其它索引区分开来。区块链节点可以在本地提供键值数据的读取接口,读取时,用户先选择查询的数据类型,再提供key键,区块链节点首先通过key键查找到对应的交易目标信息,再将查找的交易目标信息对应的二进制数据从区块链中读取出来,提取出其中的value值,返回给用户。
优选的,本实施例中,上述区块链节点设备可至少被分为两类,包括全量区块链节点设备和轻量区块链节点设备,上述全量区块链节点设备指的是含有全部区块数据的区块链节点设备,所述全量区块链节点设备下载有区块链的所有数据,可以独立的对交易进行验证。轻量区块链节点设备指的是只保存区块头信息的区块链节点设备,轻量区块链节点设备启动只下载极少量的数据,无法对交易数据进行验证。
优选地,本实施例中,分布式数据库的数据写入系统10还包括更新模块 104,所述更新模块104,用于若收到一个其他区块链节点设备同步来的新的区块并进行验证后,将收到的新的区块中的key键和/或value值提取出来,构建所述key键到交易目标信息的本地索引。
优选的,本实施例中,更新模块104还用于若所述key键在所述本地索引中已经存在,则将所述交易目标信息追加到已经存在的所述key键后面。。
与现有技术相比,本实施例通过区块链技术实现一个去中心化的 key-value数据库,可以基于普通的网络节点运行,并且使得数据的任何修改记录都可以追溯查询。
此外,本发明还提出一种分布式数据库的数据读取系统。
请参阅图6,是本发明分布式数据库的数据读取系统20第一实施例的运行环境示意图。
在本实施例中,分布式数据库的数据读取系统20安装并运行于区块链节点设备2中。区块链节点设备2可以是桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该区块链节点设备2可包括,但不仅限于,存储器21、处理器22及显示器23。图7仅示出了具有组件21-23的区块链节点设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
存储器21在一些实施例中可以是区块链节点设备2的内部存储单元,例如该区块链节点设备2的硬盘或内存。存储器21在另一些实施例中也可以是区块链节点设备2的外部存储设备,例如区块链节点设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD) 卡,闪存卡(Flash Card)等。进一步地,存储器21还可以既包括区块链节点设备2的内部存储单元也包括外部存储设备。存储器21用于存储安装于区块链节点设备2的应用软件及各类数据,例如分布式数据库的数据读取系统20 的程序代码等。存储器21还可以用于暂时地存储已经输出或者将要输出的数据。
处理器22在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行分布式数据库的数据读取系统20等。
显示器23在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器23用于显示在区块链节点设备2中处理的信息以及用于显示可视化的用户界面。区块链节点设备2的部件21-23通过系统总线相互通信。
请参阅图6,是本发明分布式数据库的数据读取系统20第一实施例的程序模块图。在本实施例中,分布式数据库的数据读取系统20可以被分割成一个或多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。例如,在图7中,分布式数据库的数据读取系统20可以被分割成查询请求模块201及查询模块 202。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述分布式数据库的数据读取系统20在区块链节点设备2中的执行过程,其中:
查询请求模块201,用于若用户需要通过区块链节点设备读取区块链的键值数据,则获取要读取的所述键值数据对应的key键和对应的数据类型,向本地区块链节点设备发送带有获取的所述key键和所述数据类型的查询请求;
查询模块202,用于如果所述本地区块链节点设备是全量区块链节点设备则在本地索引中查找该查询请求中的所述key键;
所述第一查询模块202还用于,若查找不到所述key键,则返回第一预设结果;若查找到所述key键,则返回查找到的所述key键对应的最后一条交易目标信息,从所述区块链中读取出该最后一条交易目标信息对应的二进制数据,根据该查询请求中的数据类型提取出该二进制数据中的key键和/或 value值,并返回提取出的所述value值。
若需要读取区块链的键值数据,即key-value数据,则提取出要读取的键值数据对应的key键及对应的数据类型;发送查询请求至本地区块链节点设备,该本地区块链节点设备带有上述key键和数据类型信息。
优选地,本实施例中,上述数据类型包括第一数据类型和第二数据类型。例如,若提取出的key键和/或value值包括key键和value值,则提取出的key 键和/或value值对应的数据类型是该第一数据类型;若提取出的key键和/或 value值仅包括value值,则提取出的key键和/或value值对应的数据类型是该第二数据类型。
上述第一数据类型同时指定key键和value值,该第一数据类型的格式为:以第一数量字节字符串KEYVALUE为前缀,后面紧跟作为key长度的第二数量字节字符串LEN、作为key数据的第三数量字节字符串KEY DATA、作为 value数据的可变长度字符串VALUE DATA。请参考如下格式示例:
KEYVALUE | LEN | KEY DATA | VALUE DATA |
8B | 1B | 0~256B | 可变长度 |
上述示例第一数据类型的格式为:前缀为8字节的字符串KEYVALUE,后面紧跟作为key长度的1字节的字符串LEN、作为key数据的0~256字节的字符串KEY DATA、作为value数据的可变长度字符串VALUE DATA。
上述第二数据类型仅指定value值,该第二数据类型的格式为:以第一数量字节字符串ONLVALUE为前缀,后面紧跟作为value数据的可变长度字符串VALUE DATA。请参考如下格式示例:
ONLVALUE | VALUE DATA |
8B | 可变长度 |
上述示例第二数据类型的格式为:前缀为8字节的字符串ONLVALUE,后面紧跟作为value数据的可变长度字符串VALUE DATA。
优选的,本实施例中,区块链节点设备可至少被分为两类,包括全量区块链节点设备和轻量区块链节点设备,上述全量区块链节点设备指的是含有全部区块数据的区块链节点设备,所述全量区块链节点设备下载有区块链的所有数据,可以独立的对交易进行验证。
由于全量区块链节点设备存储有区块链的所有数据,因此可直接在该全量区块链节点设备中读取上述键值数据。
当在全量区块链节点设备的本地索引中查找不到该key键,则返回第一预设结果,例如,上述第一预设结果可设置为查询为空的结果,说明区块链中并未写入该键值数据。
当在全量区块链节点设备的本地索引中查找到该key键,则返回该key 键对应的最后一条交易目标信息,该交易目标是一个哈希值,指的是交易相对方的账户地址,针对比特币区块链,该账户地址指的是脚本地址,针对以太坊区块链,该账户地址指的是合约地址。根据该交易目标信息查找其对应的二进制数据,该二进制数据即根据数据类型对key键和/或value值进行序列化得到的,通过查询请求中的数据类型可转换该二进制数据得到对应的key 键和/或value值,将该value值返回即为读取结果。
与现有技术相比,本实施例通过区块链技术实现一个去中心化的 key-value数据库,可以基于普通的网络节点运行,并且使得数据的任何修改记录都可以追溯查询。
进一步的,本实施例中,查询模块202还用于:
如果所述本地区块链节点设备是轻量区块链节点设备,则向与其通信连接的其他全量区块链节点设备发送带有获取的所述key键和所述数据类型的所述查询请求;
从接收到该查询请求的其他所述全量区块链节点设备得到该查询请求中的所述key键对应的所述交易目标信息;
通过得到的所述交易目标信息从区块链中读取出对应的二进制数据,根据该查询请求中的所述数据类型提取出该二进制数据中的所述key键和/或 value值,并返回提取出的所述value值。
本实施例还说明了接收查询请求的区块链节点设备为轻量区块链节点设备的情况,所谓轻量区块链节点设备指的是只保存区块头信息的区块链节点设备,轻量区块链节点设备启动只下载极少量的数据,无法对交易数据进行验证。轻量区块链节点设备与其他全量区块链节点设备保持通信连接,当接收到查询请求时,该轻量区块链节点设备向与其通信连接的其他全量区块链节点设备转发查询请求;全量区块链节点设备接收到该查询请求后,在其本地索引中查找该查询请求中的key键,如果查找不到该key键,则返回第一预设结果至轻量区块链节点设备,由轻量区块链节点设备转发该第一预设结果作为查询结果;若全量区块链节点设备查找到该key键,则返回该key键对应的最后一条交易目标信息至轻量区块链节点设备;轻量区块链节点设备接收该交易目标信息,通过该交易目标信息查找其对应的二进制数据,该二进制数据即根据数据类型对key键和/或value值进行序列化得到的,通过查询请求中的数据类型可转换该二进制数据得到对应的key键和/或value值,将该value 值返回即为读取结果。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (11)
1.一种分布式数据库的数据写入方法,该方法适用于区块链,其特征在于,该方法包括以下步骤:
A1,若用户有键值数据需要通过区块链节点设备写入所述区块链,则提取出要写入的所述键值数据对应的key键和/或value值,根据预先确定的所述key键、value值与数据类型的映射关系,确定提取出的所述key键和/或value值对应的数据类型,按照确定的所述数据类型对提取出的key键和/或value值进行序列化,以转换为对应的二进制数据;
A2,通过本地区块链节点设备发起一条针对所述二进制数据的交易,该交易带有交易目标信息和所述二进制数据;
A3,通过该本地区块链节点设备在区块链上插入与该交易对应的新的区块,并将该新的区块同步给所有区块链节点设备;
A4,若一个其他区块链节点设备收到该本地区块链节点设备同步来的该新的区块并进行验证后,由该其他区块链节点设备将收到的新的区块中的key键和/或value值提取出来,构建所述key键到交易目标信息的本地索引。
2.如权利要求1所述的分布式数据库的数据写入方法,其特征在于,该方法还包括以下步骤:
若所述key键在所述本地索引中已经存在,则将所述交易目标信息追加到已经存在的所述key键后面。
3.如权利要求1或2所述的分布式数据库的数据写入方法,其特征在于,所述数据类型包括第一数据类型和第二数据类型,其中:
该第一数据类型同时指定key键和value值,该第一数据类型的格式为:以第一数量字节字符串KEYVALUE为前缀,后面紧跟作为key长度的第二数量字节字符串LEN、作为key数据的第三数量字节字符串KEY DATA、作为value数据的可变长度字符串VALUE DATA;
该第二数据类型仅指定value值,该第二数据类型的格式为:以第一数量字节字符串ONLVALUE为前缀,后面紧跟作为value数据的可变长度字符串VALUE DATA。
4.如权利要求1或2所述的分布式数据库的数据写入方法,其特征在于,所述步骤A1之前,还包括如下步骤:
若所述区块链为比特币区块链,则在所述区块链中复用在区块链上写入数据的脚本指令,修改所述区块链的数据读写操作代码,以复用交易记录中的Data字段,并修改所述区块链的区块处理代码,以识别所述区块链中的键值数据,提取该键值数据的索引key键,并且构建该key键的本地索引存储;
若所述区块链为以太坊区块链,则在所述区块链中复用交易记录中的Data字段,创建一个智能合约,用于将发给所述智能合约的交易中的Data字段数据存储到所述区块链中,并修改所述区块链的区块处理代码,以识别所述区块链中的键值数据,提取该键值数据的索引key键,并且构建该key键的本地索引存储。
5.一种分布式数据库的数据读取方法,该方法适用于区块链,其特征在于,该方法包括如下步骤:
B1,若用户需要通过区块链节点设备读取区块链的键值数据,则获取要读取的所述键值数据对应的key键和对应的数据类型,向本地区块链节点设备发送带有获取的所述key键和所述数据类型的查询请求;
B2,如果所述本地区块链节点设备是全量区块链节点设备,则在本地索引中查找该查询请求中的所述key键;
B3,若查找不到所述key键,则返回第一预设结果;
B4,若查找到所述key键,则返回查找到的所述key键对应的最后一条交易目标信息,从所述区块链中读取出该最后一条交易目标信息对应的二进制数据,根据该查询请求中的数据类型提取出该二进制数据中的key键和/或value值,并返回提取出的所述value值。
6.如权利要求5所述的分布式数据库的数据读取方法,其特征在于,所述步骤B1之后还包括:
如果所述本地区块链节点设备是轻量区块链节点设备,则向与其通信连接的其他全量区块链节点设备发送带有获取的所述key键和所述数据类型的所述查询请求;
从接收到该查询请求的其他所述全量区块链节点设备得到该查询请求中的所述key键对应的所述交易目标信息;
通过得到的所述交易目标信息从区块链中读取出对应的二进制数据,根据该查询请求中的所述数据类型提取出该二进制数据中的所述key键和/或value值,并返回提取出的所述value值。
7.一种区块链节点设备,应用于分布式数据库的数据写入系统,其特征在于,所述区块链节点设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的分布式数据库的数据写入系统,所述分布式数据库的数据写入系统被所述处理器执行时实现如下步骤:
A1,若用户有键值数据需要通过所述区块链节点设备写入区块链,则提取出要写入的所述键值数据对应的key键和/或value值,根据预先确定的所述key键、value值与数据类型的映射关系,确定提取出的所述key键和/或value值对应的数据类型,按照确定的所述数据类型对提取出的key键和/或value值进行序列化,以转换为对应的二进制数据;
A2,通过本地区块链节点设备发起一条针对所述二进制数据的交易,该交易带有交易目标信息和所述二进制数据;
A3,通过该本地区块链节点设备在区块链上插入与该交易对应的新的区块,并将该新的区块同步给所有区块链节点设备。
8.如权利要求7所述的区块链节点设备,其特征在于,所述分布式数据库的数据写入系统被所述处理器执行时还实现如下步骤:
若收到一个其他区块链节点设备同步来的新的区块并进行验证后,将收到的新的区块中的key键和/或value值提取出来,构建所述key键到交易目标信息的本地索引。
9.如权利要求7或8所述的区块链节点设备,其特征在于,所述数据类型包括第一数据类型和第二数据类型,其中:
该第一数据类型同时指定key键和value值,该第一数据类型的格式为:以第一数量字节字符串KEYVALUE为前缀,后面紧跟作为key长度的第二数量字节字符串LEN、作为key数据的第三数量字节字符串KEY DATA、作为value数据的可变长度字符串VALUE DATA;
该第二数据类型仅指定value值,该第二数据类型的格式为:以第一数量字节字符串ONLVALUE为前缀,后面紧跟作为value数据的可变长度字符串VALUE DATA;
所述处理器还用于执行所述分布式数据库的数据写入系统,以实现如下步骤:
若所述key键在所述本地索引中已经存在,则将所述交易目标信息追加到已经存在的所述key键后面。
10.一种区块链节点设备,应用于分布式数据库的数据读取系统,其特征在于,所述区块链节点设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的分布式数据库的数据读取系统,所述分布式数据库的数据读取系统被所述处理器执行时实现如下步骤:
B1,若用户需要通过区块链节点设备读取区块链的键值数据,则获取要读取的所述键值数据对应的key键和对应的数据类型,向本地区块链节点设备发送带有获取的所述key键和所述数据类型的查询请求;
B2,如果所述本地区块链节点设备是全量区块链节点设备则在本地索引中查找该查询请求中的所述key键;
B3,若查找不到所述key键,则返回第一预设结果;
B4,若查找到所述key键,则返回查找到的所述key键对应的最后一条交易目标信息,从所述区块链中读取出该最后一条交易目标信息对应的二进制数据,根据该查询请求中的数据类型提取出该二进制数据中的key键和/或value值,并返回提取出的所述value值。
11.如权利要求10所述的区块链节点设备,其特征在于,所述步骤B1之后,处理器还用于执行所述分布式数据库的数据读取系统,以实现如下步骤:
如果所述本地区块链节点设备是轻量区块链节点设备,则向与其通信连接的其他全量区块链节点设备发送带有获取的所述key键和所述数据类型的所述查询请求;
从接收到该查询请求的其他所述全量区块链节点设备得到该查询请求中的所述key键对应的所述交易目标信息;
通过得到的所述交易目标信息从区块链中读取出对应的二进制数据,根据该查询请求中的所述数据类型提取出该二进制数据中的所述key键和/或value值,并返回提取出的所述value值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810259899.7A CN108628942B (zh) | 2018-03-27 | 2018-03-27 | 区块链节点设备、分布式数据库的数据读取及写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810259899.7A CN108628942B (zh) | 2018-03-27 | 2018-03-27 | 区块链节点设备、分布式数据库的数据读取及写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108628942A true CN108628942A (zh) | 2018-10-09 |
CN108628942B CN108628942B (zh) | 2020-07-31 |
Family
ID=63696514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810259899.7A Active CN108628942B (zh) | 2018-03-27 | 2018-03-27 | 区块链节点设备、分布式数据库的数据读取及写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108628942B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614411A (zh) * | 2018-11-19 | 2019-04-12 | 杭州复杂美科技有限公司 | 数据存储方法、设备和存储介质 |
CN109739857A (zh) * | 2018-12-28 | 2019-05-10 | 深圳市网心科技有限公司 | 高并发下的数据分布式写入方法、装置、终端及存储介质 |
CN109800334A (zh) * | 2019-01-18 | 2019-05-24 | 杭州复杂美科技有限公司 | 一种键值生成方法、数据库防篡改方法设备和存储介质 |
CN109815226A (zh) * | 2018-12-13 | 2019-05-28 | 平安科技(深圳)有限公司 | 基于区块链的数据存储方法、装置、设备和存储介质 |
CN110263015A (zh) * | 2019-05-07 | 2019-09-20 | 深圳壹账通智能科技有限公司 | 基于区块链的数据溯源方法、装置、设备及可读存储介质 |
CN110457318A (zh) * | 2019-07-24 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 区块链中数据字段的更新方法、装置、介质、电子设备 |
CN110598456A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、电子设备以及存储介质 |
CN111061698A (zh) * | 2019-12-30 | 2020-04-24 | 语联网(武汉)信息技术有限公司 | 以太坊合约数据的存储方法及装置 |
CN111782647A (zh) * | 2020-05-29 | 2020-10-16 | 易联众信息技术股份有限公司 | 一种eos网络的区块数据存储方法、系统、介质及设备 |
CN111858602A (zh) * | 2020-07-23 | 2020-10-30 | 浙江永旗区块链科技有限公司 | 区块链的数据读取更新方法及系统 |
CN112231400A (zh) * | 2020-09-27 | 2021-01-15 | 北京金山云网络技术有限公司 | 分布式数据库的访问方法、装置、设备及存储介质 |
CN112507033A (zh) * | 2021-02-07 | 2021-03-16 | 北京全息智信科技有限公司 | 一种基于区块链的多主服务集群访问方法、装置和电子设备 |
CN112817973A (zh) * | 2021-01-22 | 2021-05-18 | 平安普惠企业管理有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN113094352A (zh) * | 2021-03-30 | 2021-07-09 | 清华大学 | 数据湖区块链数据库系统构建方法及装置 |
CN113228075A (zh) * | 2018-12-21 | 2021-08-06 | 区块链控股有限公司 | 用于控制或强制执行在区块链上进行的转移的计算机实现的系统和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649838A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 数据传输方法、区块链节点及分布式数据库 |
WO2017104899A1 (ko) * | 2015-12-16 | 2017-06-22 | (주)코인플러그 | 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법 |
CN107273455A (zh) * | 2017-05-31 | 2017-10-20 | 深圳前海微众银行股份有限公司 | 区块链数据访问方法和装置 |
CN107657438A (zh) * | 2017-09-18 | 2018-02-02 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
-
2018
- 2018-03-27 CN CN201810259899.7A patent/CN108628942B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017104899A1 (ko) * | 2015-12-16 | 2017-06-22 | (주)코인플러그 | 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법 |
CN106649838A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 数据传输方法、区块链节点及分布式数据库 |
CN107273455A (zh) * | 2017-05-31 | 2017-10-20 | 深圳前海微众银行股份有限公司 | 区块链数据访问方法和装置 |
CN107657438A (zh) * | 2017-09-18 | 2018-02-02 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614411A (zh) * | 2018-11-19 | 2019-04-12 | 杭州复杂美科技有限公司 | 数据存储方法、设备和存储介质 |
CN109614411B (zh) * | 2018-11-19 | 2022-03-04 | 杭州复杂美科技有限公司 | 数据存储方法、设备和存储介质 |
CN109815226A (zh) * | 2018-12-13 | 2019-05-28 | 平安科技(深圳)有限公司 | 基于区块链的数据存储方法、装置、设备和存储介质 |
CN109815226B (zh) * | 2018-12-13 | 2023-10-31 | 平安科技(深圳)有限公司 | 基于区块链的数据存储方法、装置、设备和存储介质 |
CN113228075A (zh) * | 2018-12-21 | 2021-08-06 | 区块链控股有限公司 | 用于控制或强制执行在区块链上进行的转移的计算机实现的系统和方法 |
CN109739857A (zh) * | 2018-12-28 | 2019-05-10 | 深圳市网心科技有限公司 | 高并发下的数据分布式写入方法、装置、终端及存储介质 |
CN109800334A (zh) * | 2019-01-18 | 2019-05-24 | 杭州复杂美科技有限公司 | 一种键值生成方法、数据库防篡改方法设备和存储介质 |
CN110263015A (zh) * | 2019-05-07 | 2019-09-20 | 深圳壹账通智能科技有限公司 | 基于区块链的数据溯源方法、装置、设备及可读存储介质 |
WO2021012554A1 (zh) * | 2019-07-24 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 区块链中数据字段的更新方法、装置、介质、电子设备 |
CN110457318A (zh) * | 2019-07-24 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 区块链中数据字段的更新方法、装置、介质、电子设备 |
CN110598456A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、电子设备以及存储介质 |
CN110598456B (zh) * | 2019-09-24 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、电子设备以及存储介质 |
CN111061698A (zh) * | 2019-12-30 | 2020-04-24 | 语联网(武汉)信息技术有限公司 | 以太坊合约数据的存储方法及装置 |
CN111061698B (zh) * | 2019-12-30 | 2023-09-05 | 语联网(武汉)信息技术有限公司 | 以太坊合约数据的存储方法及装置 |
CN111782647A (zh) * | 2020-05-29 | 2020-10-16 | 易联众信息技术股份有限公司 | 一种eos网络的区块数据存储方法、系统、介质及设备 |
CN111858602A (zh) * | 2020-07-23 | 2020-10-30 | 浙江永旗区块链科技有限公司 | 区块链的数据读取更新方法及系统 |
CN111858602B (zh) * | 2020-07-23 | 2023-04-21 | 浙江永旗区块链科技有限公司 | 区块链的数据读取更新方法及系统 |
CN112231400A (zh) * | 2020-09-27 | 2021-01-15 | 北京金山云网络技术有限公司 | 分布式数据库的访问方法、装置、设备及存储介质 |
CN112817973A (zh) * | 2021-01-22 | 2021-05-18 | 平安普惠企业管理有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN112507033A (zh) * | 2021-02-07 | 2021-03-16 | 北京全息智信科技有限公司 | 一种基于区块链的多主服务集群访问方法、装置和电子设备 |
CN113094352B (zh) * | 2021-03-30 | 2022-12-02 | 清华大学 | 数据湖区块链数据库系统构建方法及装置 |
CN113094352A (zh) * | 2021-03-30 | 2021-07-09 | 清华大学 | 数据湖区块链数据库系统构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108628942B (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628942A (zh) | 区块链节点设备、分布式数据库的数据读取及写入方法 | |
CN110799960B (zh) | 数据库租户迁移的系统和方法 | |
US6240418B1 (en) | Database apparatus | |
US6366954B1 (en) | Method and data format for exchanging data between a Java system database entry and an LDAP directory service | |
CN104731886B (zh) | 一种海量小文件的处理方法及系统 | |
CN104246759A (zh) | 应用程序接口测试服务 | |
CN108733507A (zh) | 文件备份和恢复的方法和设备 | |
CN110019080A (zh) | 数据访问方法和装置 | |
US20210073410A1 (en) | Secure dataset management | |
CN112912868A (zh) | 用于批量移除数据库中的记录的系统和方法 | |
JP2020182215A (ja) | チェーンデータの検証システムおよび方法 | |
US6735765B1 (en) | Sharing data between operating systems | |
US20180284999A1 (en) | Data Migration with Application-Native Export and Import Capabilities | |
US20180181581A1 (en) | Systems and methods for implementing object storage and fast metadata search using extended attributes | |
CN109460406A (zh) | 一种数据处理方法及装置 | |
CN110352410A (zh) | 跟踪索引节点的访问模式以及预提取索引节点 | |
CN110020272A (zh) | 缓存方法、装置以及计算机存储介质 | |
US20150088483A1 (en) | Simulated component connector definition and connection process | |
CN107888686B (zh) | 一种位于HBase客户端的用户数据有效性验证方法 | |
CN104252429B (zh) | 存储控制装置与供其调用其地址的方法 | |
CN111090668A (zh) | 数据检索方法及装置、电子设备和计算机可读存储介质 | |
US9201936B2 (en) | Rapid provisioning of information for business analytics | |
WO2015105043A1 (ja) | 演算システム、データベース管理装置および演算方法 | |
CN106250440B (zh) | 文档管理方法和装置 | |
CN110795915A (zh) | xml文件批量修改方法、系统、设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211011 Address after: 518000 floors 21-23, block B, building 12, Shenzhen Bay science and technology ecological park, No. 18, community science and technology south road, high tech Zone, Yuehai street, Shenzhen, Guangdong Patentee after: Xunlei Networking Technologies, Ltd. Address before: 518000 Room 201, building A, 1 front Bay Road, Shenzhen Qianhai cooperation zone, Shenzhen, Guangdong Patentee before: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |