掌桥专利:专业的专利平台
掌桥专利
首页

交易数据存储方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 19:37:02


交易数据存储方法、装置、计算机设备及存储介质

技术领域

本申请涉及区块链技术领域,尤其涉及一种交易数据存储方法、装置、计算机设备及存储介质。

背景技术

对于基于Cosmos框架开发的区块链应用,底层的数据存储使用的是IAVL树。当调用智能合约来处理用户的交易数据时,交易数据中的key-value键值对的相关数据会以键值对的形式存储在底层IAVL树上。

然而,发明人发现,现有的IAVL树上存储规则如下:对应的键为合约地址拼接数据key值的hash,对应的值为数据value值,因此相同合约内的交易数据在IAVL树上具有相同的前缀(合约地址),根据IAVL树特性,其存储的数据会落在相同的子树上。在此Cosmos框架下,若某一合约内有大量数据需要存储,这些数据会插入到IAVL树的同一子树下,进而会频繁造成当前子树高度差在整颗IAVL树上失衡,触发IAVL树自平衡动作,大量消耗服务器计算和存储资源,降低区块链存储性能。

发明内容

有鉴于此,现提供一种交易数据存储方法、装置、计算机设备及计算机可读存储介质,以解决现有技术中在通过Cosmos框架开发的区块链应用进行交易数据存储时,会频繁造成IAVL树的子树高度差在整颗IAVL树上失衡,触发IAVL树自平衡动作,大量消耗服务器计算和存储资源,降低区块链存储性能的问题。

本申请提供了一种交易数据存储方法,包括:

获取区块链的区块中的交易数据,其中,所述区块中包含多个交易数据;

对多个所述交易数据进行解析,得到每个所述交易数据对应的合约地址及key-value键值对;

计算所述键值对中的key值的哈希值;

获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值;

将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中。

可选地,所述计算所述键值对中的key值的哈希值包括:

通过预设的哈希算法计算所述键值对中的key值的哈希值。

可选地,所述预设的哈希算法为SHA-256算法。

可选地,所述获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值包括:

获取所述哈希值中处于首位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值。

可选地,所述将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中包括:

将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据缓存至内存中;

当所述内存中缓存有多个所述交易数据对应的key-value键值对所对应的待存储数据时,将内存中缓存的所有待存储数据批量插入IAVL树中。

可选地,所述对所述交易数据进行解析之前,还包括:

对所述交易数据的发送者的签名信息进行校验。

可选地,所述方法还包括:

通过所述IAVL树校验自身平衡是否被打破,若所述IAVL树的自身平衡被打破,则触发执行自平衡动作。

本申请还提供了一种交易数据存储装置,包括:

获取模块,用于获取区块链的区块中的交易数据,其中,所述区块中包含多个交易数据;

解析模块,用于对多个所述交易数据进行解析,得到每个所述交易数据对应的合约地址及key-value键值对;

计算模块,用于计算所述键值对中的key值的哈希值;

拼接模块,用于获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值;

插入模块,用于将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中。

本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

本实施例中通过获取区块链的区块中的交易数据,其中,所述区块中包含多个交易数据;对多个所述交易数据进行解析,得到每个所述交易数据对应的合约地址及key-value键值对;计算所述键值对中的key值的哈希值;获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值;将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中。采用上述交易数据存储方案,可以将同一智能合约下需要存储的数据的前缀随机打散为多份,这样,这些需要存储的数据在插入IAVL树过程中,会被随机分配到多颗子树下,从而可以有效降低子树高度失衡概率,减少IAVL树触发自平衡动作的次数,进而可以减少服务器计算和存储资源的消耗,提升区块链存储性能。

附图说明

图1为本申请实施例的交易数据存储方法的应用环境示意图;

图2为本申请所述的交易数据存储方法的一种实施例的流程图;

图3为本申请一实施方式中将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中的步骤细化流程图;

图4为本申请所述的交易数据存储装置的一种实施例的程序模块图;

图5为本申请实施例提供的执行交易数据存储方法的计算机设备的硬件结构示意图。

具体实施方式

以下结合附图与具体实施例进一步阐述本申请的优点。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开采用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所采用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中采用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所采用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。

下面提供本申请的示例性应用环境。图1示意性示出了根据本申请实施例的交易数据存储方法的应用环境示意图。

参见图1,区块链100是一个典型的分布式协同系统。该系统包括多个区块链节点110。该多个区块链节点110可以共同维护一个不断增长的分布式数据记录。这些记录的数据可以通过密码学技术保护内容和时序,使得任何一方难以篡改、抵赖、造假。区块链节点110可以是具有计算能力的设备,例如,服务器、服务器组、区块链芯片等,其中,服务器组可以是集中式的,也可以是分布式的。在另一些实现方式中,上述服务器还可以是为云平台提供服务的服务器。

在区块链中,数据(例如,交易信息、交易执行结果等)可以以区块(Block)的形式被封装。区块彼此之间可以通过前向的引用彼此链接形成“链”,即区块链。通常,可以将区块链中的第一个区块称为“创始区块”或“初始区块”,将区块链中位于当前区块之前的一个区块称为“上一区块”,将区块链中位于当前区块之后的一个区块称为“后继块”。

通常,区块可以包括区块头和区块体。区块头可以包含当前区块的基本信息,用以保证当前区块能正确的进入区块链。例如,区块头可以记录当前区块的上一区块的区块哈希值。又如,区块头还可以记录当前区块的区块高度。区块高度简称“块高”,用来识别区块在区块链中的位置。在一些实现方式中,创始区块的块高为0。区块体可以用于记录交易信息。该交易信息例如可以包括交易数量和交易数据等信息。

区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。本公开所提供的实施方式能够在合适类型的区块链中实现。

在区块链系统中,是通过共识机制来认定一个记录的有效性的。其中,共识机制可以理解为区块链中的负责记账的节点(或称记账节点)之间如何达成共识,以认定一个记录的有效性。

区块链的共识机制具备“少数服从多数”以及“人人平等”的特点,其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量。“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果、直接被其他节点认同后并最后有可能成为最终共识结果。

区块链的自信任主要体现于分布于区块链中的用户无须信任交易的另一方,也无须信任一个中心化的机构,只需要信任区块链协议下的软件系统即可实现交易。这种自信任的前提是区块链的共识机制,即在一个互不信任的市场中,要想使各节点达成一致的充分必要条件是每个节点出于对自身利益最大化的考虑,都会自发、诚实地遵守协议中预先设定的规则,判断每一笔记录的真实性,最终将判断为真的记录记入区块链之中。换句话说,如果各节点具有各自独立的利益并互相竞争,则这些节点几乎不可能合谋欺骗你,而当节点们在网络中拥有公共信誉时,这一点体现得尤为明显。区块链技术正是运用一套基于共识的数学算法,在机器之间建立“信任”网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。

区块链的共识机制例如可以是以下共识机制中的一种:工作量证明机制(ProofOf Work,PoW)、权益证明机制、股份授权证明机制、验证池机制以及实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)。

在区块链系统中,是通过智能合约来执行交易的。其中,智能合约是区块链系统中可以自动执行的协议或者合约,允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。或者说,智能合约可以理解为部署在计算机系统上的一段程序,当智能合约的触发条件被满足时,智能合约可以被自动地执行。

在区块链领域,还有一个重要的概念就是账户(Account)。对于支持智能合约的区块链网络中,区块链账户通常可以分为以下两种类型:

合约账户(contract account):存储执行的智能合约代码以及智能合约代码中状态的值,通常只能通过外部账户调用激活;

外部账户(Externally owned account):就是由用户直接控制的账户,也称之为用户账户。

外部账户和合约账户的设计,实际上是账户地址到账户状态的映射。账户的状态通常会通过一个结构体来表示。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。

在一个例子中,账户的结构体通常包括Balance,Nonce,Codehash和Storageroot等字段。其中:

Balance字段,用于维护账户目前的账户余额;

Nonce字段,用于维护该账户的交易次数。它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;

Codehash字段,用于维护该账户的合约代码。在实际应用中,Codehash字段中通常仅维护合约代码的hash值。

Storageroot字段,用于维护该账户的存储内容。对于合约账户而言,通常会分配一个独立的持久化的存储空间,用以存储该合约账户对应的合约数据。该独立的存储空间通常称之为该合约账户的账户存储。

合约账户的存储内容通常会以key-value键值对的形式,被构建成逻辑的树形结构进行存储。例如,默克尔树(Merkle tree),默克尔树就是区块链领域一种比较常用的用于存储和维护区块链数据的一种逻辑的树形结构,默克尔树是一颗二叉树,在树状结构中父节点存储的值为其左右子节点数据的hash,具体的业务数据存储在叶子节点。

其中,基于合约账户的存储内容构建成的逻辑的树形结构,通常也称之为Storage树。而Storageroot字段通常仅维护该Storage树的根节点的hash值。其中,对于外部账户而言,以上示出的Codehash字段和Storageroot字段的字段值均为空值。

参阅图2,其为本申请一实施例的交易数据存储方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的交易数据存储方法包括:

步骤S21、获取区块链的区块中的交易数据,其中,所述区块中包含多个交易数据。

具体地,当用户针对某智能合约(即某个合约账户)发起N笔交易后,区块链系统会将该N笔交易打包进区块链系统的区块中,然后会在全网中通过共识机制对该区块中的交易进行共识处理,在共识成功之后,区块链系统会从该区块中获取交易数据,然后会对获取到的每一个交易数据进行依次执行。

步骤S21,对多个所述交易数据进行解析,得到每个所述交易数据对应的合约地址及key-value键值对。

具体地,由于每一个交易数据是以字节码的形式打包进区块中的,因此,在从区块中获取到交易数据时,为了后续方便将该交易数据存储至IAVL树中,需要先将字节码形式的交易数据进行解析,从而得到交易数据对应的合约地址及key-value键值对。

其中,合约地址是一个映射着账户地址以及余额的智能合约。

在本实施例中,在对多个交易数据进行解析时,可以依次对多个交易数据进行解析,也可以采用并行的方式对多个交易数据进行解析,在本实施例中不作限定。

在一示例性的实施方式中,为了提高交易数据的安全性,所述对所述交易数据进行解析之前,还包括:

对所述交易数据的发送者的签名信息进行校验。

本实施例中,通过对交易数据的发送者的签名信息进行校验,可以判定该交易数据是否合法。当对发送者的签名信息校验不通过时,表明该交易数据不是合法的交易数据,将无需对该交易数据进行处理。当对发送者的签名信息校验通过时,表明该交易数据是合法交易,才会继续对交易数据进行解析。

步骤S22,计算所述键值对中的key值的哈希值。

具体地,在得到键值对数据时,对于得到的每一个键值对都会计算其键值对中的key值的哈希值。比如,总共有5个键值对数据,分别为key1-value1、key2-value2、key3-value3、key4-value4及key5-value5,则会分别计算key1-value1中的key1的哈希值,得到hash1;key2-value2中的key2的哈希值,得到hash2;key3-value3中的key3的哈希值,得到hash3;key4-value4中的key4的哈希值,得到hash4;key5-value5中的key5的哈希值,得到hash5。

在一示例性的实施方式中,可以通过预设的哈希算法计算所述键值对中的key值的哈希值。

其中,所述哈希算法可以为MD5算法、SHA-1算法、SHA-256算法、SHA-512算法等。

在本实施例中,所述预设的哈希算法优选为SHA-256算法。SHA-256算法是SHA-2下细分出的一种算法,其是一种密码散列函数,说白了它就是一个哈希函数。对于任意长度的消息,SHA256都会产生一个256bit长度的散列值,称为消息摘要,可以用一个长度为64的十六进制字符串表示。

步骤S23,获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值。

具体地,所述预设位为预先设定的,所述预设位可以根据实际情况进行设定与调整。在本实施例中,当所述哈希值为一个256bit长度的散列值时,所述预设位可以设定为256bit长度的散列值中的任意一位,比如,所述预设位为所述256bit长度的散列值的第1位、第2位、第256位等。

作为示例,假设获取到的所述哈希值中处于预设位的字符为byteN、所述键值对中的key值的哈希值为hashN、所述合约地址为addrA,则新的key值newKey=byteN+addrA+hashN。

在一示例性的实施方式中,所述获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值包括:

获取所述哈希值中处于首位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值。

本实施例中,通过将所述预设位设定为所述哈希值的首位,使得在获取所述哈希值中处于预设位的字符时,可以非常方便快捷地获取到。

步骤S24,将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中。

具体地,所述新的key值与所述键值对中的value值可以组成待存储数据newKey-value。

当组成待存储数据newKey-value时,即可以将待存储数据newKey-value插入至IAVL树中,实现对数据的持久化存储。

其中,IAVL树是Cosmos框架使用的底层存储结构,本质是默克尔树+AVL树的变种。

Cosmos是一种业界知名的区块链开发框架,开发者可通过Cosmos快速发区块链系统。

默克尔树是区块链最常用的底层存储结构,可通过根Hash来保证整颗树数据不可篡改。

AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。

IAVL树是Cosmos框架使用的底层存储结构,本质是默克尔树+AVL树的变种。

在一示例性的实施方式中,参阅图3,所述将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中包括:

步骤S30,将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据缓存至内存中。

步骤S31,当所述内存中缓存有多个所述交易数据对应的key-value键值对所对应的待存储数据时,将内存中缓存的所有待存储数据批量插入IAVL树中。

具体地,在将交易数据对应的keyN-valueN键值对转换为对应的待存储数据newKey-valueN后,会先将该待存储数据newKey-valueN缓存至内存中,以便在内存中缓存有区块中的所有的所述交易数据对应的key-value键值对所对应的待存储数据时,可以一次性将所有的交易数据对应的newKey-valueN批量插入至IAVL树中,从而节省资源的消耗。

可以理解的是,在另一实施方式中,当得到一个待存储数据newKey-valueN时,也可以立即就将该待存储数据newKey-valueN插入至IAVL树中。

在一示例性的实施方式中,当将所述待存储数据插入IAVL树中后,可以通过所述IAVL树校验自身平衡是否被打破,若所述IAVL树的自身平衡被打破,则触发执行自平衡动作。若所述IAVL树的自身平衡未打破,则不会触发执行自平衡动作。

本实施例通过获取区块链的区块中的交易数据,其中,所述区块中包含多个交易数据;对多个所述交易数据进行解析,得到每个所述交易数据对应的合约地址及key-value键值对;计算所述键值对中的key值的哈希值;获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值;将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中。采用上述交易数据存储方案,可以将同一智能合约下需要存储的数据的前缀随机打散为多份,这样,这些需要存储的数据在插入IAVL树过程中,会被随机分配到多颗子树下,从而可以有效降低子树高度失衡概率,减少IAVL树触发自平衡动作的次数,进而可以减少服务器计算和存储资源的消耗,提升区块链存储性能。

参阅图4所示,是本申请交易数据存储装置40一实施例的程序模块图。

本实施例中,所述交易数据存储装置40包括一系列的存储于存储器上的计算机程序指令,当该计算机程序指令被处理器执行时,可以实现本申请各实施例的拍摄功能。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,交易数据存储装置40可以被划分为一个或多个模块,具体可以划分的模块如下:

获取模块41,用于获取区块链的区块中的交易数据,其中,所述区块中包含多个交易数据;

解析模块42,用于对多个所述交易数据进行解析,得到每个所述交易数据对应的合约地址及key-value键值对;

计算模块43,用于计算所述键值对中的key值的哈希值;

拼接模块44,用于获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值;

插入模块45,用于将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中。

在一示例性的实施方式中,计算模块43,还用于通过预设的哈希算法计算所述键值对中的key值的哈希值。

在一示例性的实施方式中,所述预设的哈希算法为SHA-256算法。

在一示例性的实施方式中,拼接模块44,还用于获取所述哈希值中处于首位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值。

在一示例性的实施方式中,所述插入模块45,还用于将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据缓存至内存中;当所述内存中缓存有多个所述交易数据对应的key-value键值对所对应的待存储数据时,将内存中缓存的所有待存储数据批量插入IAVL树中。

在一示例性的实施方式中,交易数据存储装置还包括校验模块。

所述校验模块,用于对所述交易数据的发送者的签名信息进行校验。

在一示例性的实施方式中,所述校验模块,还用于通过所述IAVL树校验自身平衡是否被打破,若所述IAVL树的自身平衡被打破,则触发执行自平衡动作。

通过获取区块链的区块中的交易数据,其中,所述区块中包含多个交易数据;对多个所述交易数据进行解析,得到每个所述交易数据对应的合约地址及key-value键值对;计算所述键值对中的key值的哈希值;获取所述哈希值中处于预设位的字符,将所述字符拼接所述合约地址及所述哈希值,得到新的key值;将所述新的key值与所述键值对中的value值组成待存储数据,并将所述待存储数据插入IAVL树中。采用上述交易数据存储方案,可以将同一智能合约下需要存储的数据的前缀随机打散为多份,这样,这些需要存储的数据在插入IAVL树过程中,会被随机分配到多颗子树下,从而可以有效降低子树高度失衡概率,减少IAVL树触发自平衡动作的次数,进而可以减少服务器计算和存储资源的消耗,提升区块链存储性能。

图5示意性示出了根据本申请实施例的适于实现交易数据存储方法的计算机设备5的硬件架构示意图。本实施例中,计算机设备5是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图5所示,计算机设备5至少包括但不限于:可通过系统总线相互通信链接存储器120、处理器121、网络接口122。其中:

存储器120至少包括一种类型的计算机可读存储介质,该可读存储介质可以是易失性的,也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备5的内部存储模块,例如该计算机设备5的硬盘或内存。在另一些实施例中,存储器120也可以是计算机设备5的外部存储设备,例如该计算机设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器120还可以既包括计算机设备5的内部存储模块也包括其外部存储设备。本实施例中,存储器120通常用于存储安装于计算机设备5的操作系统和各类应用软件,例如交易数据存储方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器121在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它拍摄芯片。该处理器121通常用于控制计算机设备5的总体操作,例如执行与计算机设备5进行数据交互或者通信相关的控制和处理等。本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。

网络接口122可包括无线网络接口或有线网络接口,该网络接口122通常用于在计算机设备5与其它计算机设备之间建立通信链接。例如,网络接口122用于通过网络将计算机设备5与外部终端相连,在计算机设备5与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。

需要指出的是,图5仅示出了具有部件120~122的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。

在本实施例中,存储于存储器120中的交易数据存储方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本申请。

本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的交易数据存储方法的步骤。

本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的交易数据存储方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

技术分类

06120115970134