一种记账方法及装置与流程

文档序号:17149212发布日期:2019-03-19 23:16阅读:250来源:国知局
一种记账方法及装置与流程

本发明涉及区块链技术领域,尤其涉及一种记账方法及装置。



背景技术:

为提高业务处理能力,在区块链中的不同节点服务器可能会同时处理多笔交易,为避免并发冲突,可以采用基于多版本控制协议(mvcc),具体的,mvcc为区块链系统维护一个版本号(version),其中版本号为递增序列。当某个节点服务器接收到交易后,会为每笔交易附加版本依赖(verdep),即为交易从发出的时间点到交易结束设置其状态数据的版本号。在交易最终执行完毕时,会验证附加版本依赖与当前区块链的状态数据的版本是否一致,如若不一致,则拒绝交易。

当出现并发冲突时,会直接导致交易失败,对后续的交易产生较大影响。在拒绝交易后,需要终端重新发起交易请求,节点服务器重新执行交易,导致交易的处理效率很低。



技术实现要素:

本发明的目的是提供一种记账方法及装置,以解决现有技术中存在的并发交易容易失败,导致区块链中的记账效率下降。

本发明的目的是通过以下技术方案实现的:

第一方面,本发明实施例提供一种记账方法,应用于区块链系统,所述区块链系统包括至少2个节点,所述方法包括:

第一节点接收交易发起方发送的第一交易请求;所述第一节点为所述区块链系统中的任一节点;

所述第一节点根据所述第一交易请求,从所述区块链系统的账本中获取当前时刻的第一状态数据;所述第一状态数据用于表征所述第一交易对应的账户的当前状态;

所述第一节点根据所述第一交易请求和所述第一状态数据,执行所述第一交易请求,并生成第一交易值;所述第一交易值为执行所述第一交易请求后的结果;

将所述第一状态数据和所述第二交易值打包为第一消息,发布至所述区块链系统。

一种可能的实现方式,所述方法还包括:

所述第一节点接收第二节点发送的所述第一消息的记账结果;

所述第一节点接收所述第二节点发送的区块,所述区块包括所述第一交易值,所述区块是所述第二节点确定第二状态数据与所述第一状态数据相同时生成的;所述第二状态数据是所述第二节点在接收到所述第一消息后从所述区块链系统的账本中获取的所述账户的当前状态。

一种可能的实现方式,所述方法还包括:

所述第一节点若确定所述记账结果为失败,则从所述区块链系统的账本中获取第三状态数据;所述第三状态数据用于表征所述账户的当前状态;

所述第一节点根据所述第三状态数据和所述第一交易请求,生成第二交易值;

所述第一节点将所述第三状态数据和所述第二交易值打包为第二消息,发布至所述区块链系统。

第二方面,本发明实施例提供一种记账方法,应用于区块链系统,所述区块链系统包括至少2个节点,所述方法包括:

第二节点接收第一节点发送的第一消息;所述第一消息包括第一交易值及第一状态数据;所述第一状态数据为所述第一节点在接收交易发起方发送的第一交易请求后从所述区块链系统的账本中获取的所述第一交易请求对应的账户的状态数据;所述第一交易值为所述第一节点根据所述第一交易请求及所述第一状态数据生成的;

所述第二节点从所述区块链系统的账本中获取第二状态数据,所述第二状态数据为所述第一交易对应的账户的当前状态;

所述第二节点若确定所述第二状态数据与所述第一状态数据相同,则生成包含所述第一交易值的区块;

所述第二节点将所述区块发布至所述区块链系统。

一种可能的实现方式,所述方法还包括:

所述第二节点若确定所述第二状态数据与所述第一状态数据不同,则通知所述第一节点所述第一消息的记账失败,以使所述第一节点重新处理所述第一交易请求。

第三方面,本发明实施例提供一种记账装置,应用于区块链系统,所述区块链系统包括至少2个节点,所述装置包括:

收发单元,用于接收交易发起方发送的第一交易请求;所述第一节点为所述区块链系统中的任一节点;

处理单元,用于根据所述第一交易请求,从所述区块链系统的账本中获取当前时刻的第一状态数据;所述第一状态数据用于表征所述第一交易对应的账户的当前状态;根据所述第一交易请求和所述第一状态数据,执行所述第一交易请求,并生成第一交易值;所述第一交易值为执行所述第一交易请求后的结果;

所述收发单元,用于将所述第一状态数据和所述第二交易值打包为第一消息,发布至所述区块链系统。

一种可能的实现方式,所述收发单元,还用于:接收第二节点发送的所述第一消息的记账结果;接收所述第二节点发送的区块,所述区块包括所述第一交易值,所述区块是所述第二节点确定第二状态数据与所述第一状态数据相同时生成的;所述第二状态数据是所述第二节点在接收到所述第一消息后从所述区块链系统的账本中获取的所述账户的当前状态。

一种可能的实现方式,所述处理单元还用于:若确定所述记账结果为失败,则从所述区块链系统的账本中获取第三状态数据;所述第三状态数据用于表征所述账户的当前状态;根据所述第三状态数据和所述第一交易请求,生成第二交易值;

所述收发单元,还用于将所述第三状态数据和所述第二交易值打包为第二消息,发布至所述区块链系统。

第四方面,本发明实施例提供一种记账装置,应用于区块链系统,所述区块链系统包括至少2个节点,所述装置包括:

收发单元,用于接收第一节点发送的第一消息;所述第一消息包括第一交易值及第一状态数据;所述第一状态数据为所述第一节点在接收交易发起方发送的第一交易请求后从所述区块链系统的账本中获取的所述第一交易请求对应的账户的状态数据;所述第一交易值为所述第一节点根据所述第一交易请求及所述第一状态数据生成的;

处理单元,用于从所述区块链系统的账本中获取第二状态数据,所述第二状态数据为所述第一交易对应的账户的当前状态;若确定所述第二状态数据与所述第一状态数据相同,则生成包含所述第一交易值的区块;

所述收发单元,还用于将所述区块发布至所述区块链系统。

一种可能的实现方式,所述处理单元还用于:若确定所述第二状态数据与所述第一状态数据不同,则通知所述第一节点所述第一消息的记账失败,以使所述第一节点重新处理所述第一交易请求。

第五方面,本发明提供了一种记账装置,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第一方面所述的方法。

第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面所述的方法。

本发明提供的一种记账方法及装置,第一节点根据所述第一交易请求,从所述区块链系统的账本中获取当前时刻的第一状态数据;所述第一状态数据用于表征所述第一交易对应的账户的当前状态;所述第一节点根据所述第一交易请求和所述第一状态数据,执行所述第一交易请求,并生成第一交易值;将所述第一状态数据和所述第二交易值打包为第一消息,发布至所述区块链系统;根据实际的交易值而不是标记的交易状态确定是否出现交易失败,避免了记账过程中的交易状态变化被认为交易冲突导致的交易失败的问题,进而提高了记账效率。

附图说明

图1为本发明实施例提供的一种记账方法的流程示意图;

图2为本发明实施例提供的一种记账方法的示意图;

图3为本发明实施例提供的一种记账方法的示意图;

图4为本发明实施例提供的一种记账装置的结构示意图;

图5为本发明实施例提供的一种记账装置的结构示意图;

图6为本发明实施例提供的一种记账装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应理解,本发明实施例的技术方案可以应用于各种互联网金融体系中,例如比特币系统等,所进行交易的介质可以是比特币、以太币、莱特币等。

区块链技术是通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,更通俗一点说,区块链技术就是一种全民参与记账的方式。

上述实施例中,获取多个应用发送的交易数据可以是应用完成交易后立即发送,也可以是应用周期性发送,也可以是周期性从各应用中获取交易数据。其中,只要能够产生交易记录的应用均适用于本发明的实施例,比如支付宝、淘宝等;存储的数据是一个对象,例如,如果是转账的话,对象中会包括时间、转账双方账号、转账金额等信息,如果是一段文字记录,对象中会包括信息内容和信息发送者的标识;存储的类型可以是文件存储、缓存、关系型数据存储、非关系型数据存储等,用于保障交易数据的可用性,存储的类型包括这些类型但不限于这些类型,还可以是其它类型。

具体实施中,区块链基础架构分为6层,包括:数据层、网络层、共识层、激励层、合约层、应用层,每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。数据层主要描述区块链技术的物理形式,区块链技术的物理实现是一个由规格相同的区块通过链式结构组成的链条。网络层的主要目的是实现区块链网络中节点之间的信息交流,区块链网络本质上是一个对等网络(peer-to-peernetworking,简称p2p网络),每一个节点既接收信息,也产生信息。共识层负责提供一种机制,能让高度分散的节点在去中心化的系统中高效的针对区块数据的有效性达成共识。常见的共识机制包括:工作量证明(proofofwork,简称pow),权益证明(proofofstake,简称pos)股份授权证明机制(delegateproofofstake,简称dpos)。激励层目的是提供一定的激励措施鼓励节点参与区块链的安全验证工作。合约层封装区块链系统的各类脚本代码、算法以及由此生成的更为复杂的智能合约。比特币的交易依赖于脚本的内容,脚本规定了交易的方式和各项细节,这种特性使比特币成为一种可以编程的货币。应用层主要是面向用户的可编程应用。

记账节点是执行记录交易数据的主体,记账节点工作过程是先收集所有尚未确认的交易数据,并将其归集到一个数据块中,记账节点会将数据逐条广播给其他节点进行验证,验证后会将交易数据放到内置的批处理队列内,当批处理空间达到饱和或达到超时时间,记账节点就会将这些交易数据写入到预处理的块空间中去,同时,记账节点也在计算特定格式的哈希值,记账节点计算特定格式的哈希值的过程即为记账,记账节点计算出特定格式的哈希值后即称为记账成功,记账成功后,记账节点将这段时间内已验证的交易数据打包成一个区块广播给其他节点进行同步。

区块是组成区块链的基本单位,区块中包含具体应用需要记载的信息。例如比特币区块链中区块存储了交易信息。

交易数据具体指不同形式的需要记录的数据,比如交易记录、转账记录等有价值的信息数据;记账节点可以是周期性的监控自身处理交易数据的能力,设定周期可以依据具体情况而定。

所述存储区中保存了各应用提交的交易数据;具体指,存储区对各应用提交的数据进行保存,从而应用不会将交易数据直接提交到区块链网络中,存储区可以采用多种存储形式,比如消息队列。应用可以是各种产生交易数据的应用,比如淘宝、支付宝等;获取交易数据的能力指记账节点从存储区中获取交易数据的量;

第一记账节点从存储区中获取交易数据之后,还包括:

区块链网络中包括m个节点,m个节点包括n+1个记账节点和m-n-1个非记账节点,若第一记账节点为所述相应数量的交易数据的区块生成节点,则第一记账节点向所述区块链网络中m-1个节点广播相应数量的交易数据的区块;否则,第一记账节点下载第二记账节点生成交易数据的区块,第二记账节点为区块链网络中除第一记账节点外的任意一个记账节点。

具体实施中,区块链网络中包含多个节点,记账节点是所有节点中的一部分,各节点中参与记账的属于记账节点,比如区块链网络中共用100个节点,其中参与记账的节点有60个,那么区块链网络中有60个记账节点,40个普通的节点。60个记账节从存储区中根据各自获取处理交易数据的能力获取对应的交易数据,并将其归集到各自的批处理队列中,当批处理队列达到饱和或达到超时时间,记账节点将获取的交易数据写入到预处理的块空间中去。在各记账节点获取交易数据的同时,各记账节点进行记账操作,60个参与记账的节点中有一个记账节点会最先记账成功,胜出的记账节点即为区块生成节点,区块生成节点将这段时间内已验证的交易打包成一个区块广播向其他99个节点进行同步,区块链网络中除区块生成节点之外的另外59个记账节点在接收到广播后停止当前记账操作并下载区块生成节点广播的区块,同时将下载的区块中的交易数据与批处理队列中的交易数据进行比较,删除批处理队列中与下载区块中的交易数据相同的交易数据,40个普通节点也会下载区块生成节点广播的区块。

第一记账节点处理交易数据的能力至少与第一记账节点所处的网络环境和第一记账节点当前的设备处理能力有关。具体实施中,区块链网络中记账节点所处的网络环境好坏受多个因素影响,比如记账节点的带宽流量;记账节点所处的网络环境会影响记账节点广播的速度,进而影响记账节点处理交易的能力。记账节点在记账的过程中需要进行大量的数学计算,记账节点当前的硬件设备会影响记账节点自身的算力,进而影响记账节点处理交易数据的能力,记账节点用于记账的硬件设备可以是中央处理器(centralprocessingunit,简称cpu)、图形处理器(graphicsprocessingunit,简称gpu)、专用芯片等。

在区块链网络中,区块链网络中的某个记账节点会接收到应用发送的交易数据,该记账节点会将接收到的交易数据向其他记账节点广播,各记账节点在接收到一定量的交易数据后,会进行记账,记账成功的记账节点会生成交易数据的区块,以供区块链网络中的其他节点下载区块,从而达到全民参与记账的方式。

随着业务的发展,交易系统的交易量逐渐增长,某段时间会出现交易高峰,当大量的交易数据涌入区块链网络中,不同节点在一个记账节点的记账周期内可能出现对同一账户进行交易数据进行记账,导致并发冲突。

在并发读写数据时,读操作可能会不一致的数据(脏读)。为了避免这种情况,需要实现数据的并发访问控制,最简单的方式就是加锁访问。由于,加锁会将读写操作串行化,所以不会出现不一致的状态。但是,读操作会被写操作阻塞,大幅降低读性能。

目前为防止并发冲突的方法有多版本并发控制(multi-versionconcurrentcontrol,mvcc)。在mvcc协议下,每个读操作会看到一个一致性的snapshot,并且可以实现非阻塞的读。mvcc允许数据具有多个版本,这个版本可以是时间戳或者是全局递增的事务id,在同一个时间点,不同的事务看到的数据是不同的。mvcc,在进行写操作时,将数据copy一份,不会影响原有数据,然后进行修改,修改完成后原子替换掉旧的数据,而读操作只会读取原有数据。通过这种方式实现写操作不会阻塞读操作,从而优化读效率。而写操作之间是要互斥的,并且每次写操作都会有一次copy,所以只适合读大于写的情况。

假设有两个并发操作r(t1)和u(t2),t1和t2是事务id,t1小于t2,系统中包含数据a=1(t1),r和w的操作如下:

r(读操作)的版本t1表示要读取数据的版本,而之后写操作才会更新版本,读操作不会。在时间轴上,r晚于u,而由于u在r开始之后提交,所以对于r是不可见的。所以,r只会读取t1版本的数据,即a=1。

由于在update操作提交之前,不能影响已有数据的一致性,所以不会改变旧的数据,update操作会被拆分成insert+delete。需要标记删除旧的数据,insert新的数据。只有update提交之后,才会影响后续的读操作。而对于读操作而且,只能读到在其之前的所有的写操作,正在执行中的写操作对其是不可见的。

通过mvcc很好的实现了事务的隔离性,可以达到repeatedread级别。

因此,可以通过多版本控制协议控制并发对区块链进行并发控制,超级账本通过利用读写集进行并发控制,当进行交易打包时,将读写集附加在交易中,当落块时,比较读集合中的所有键和当前状态数据是否一致,若一直更新写集合至状态数据中,若不一致,则该批交易无效。区块链维护状态数据的版本号,交易发出时,由节点指定交易的版本依赖。若出现版本不一致,则直接拒绝交易。

然而在现实业务中,由于区块链是异步交易,一个出块周期内,可能会有大量的版本号的冲突,从而导致大量的交易被拒绝。导致提交若干笔交易后,若出现并发问题,最终执行结果不可控,无法预测,对后续的交易产生较大影响。另外,仅通过版本依赖,即判断当前区块链的状态数据的版本是否一致,如若不一致,则拒绝交易的方式,这些被拒绝的交易虽然版本号发生改变,但账号的状态数据可能还是一致的,即不一定存在结果冲突,因此,通过mvcc的并发控制,降低了区块链平台的吞吐量。

因此,如图1所示,本发明实施例提供一种记账方法,应用于区块链系统,所述区块链系统包括至少2个节点,所述方法包括:

步骤101:第一节点接收交易发起方发送的第一交易请求;所述第一节点为所述区块链系统中的任一节点;

步骤102:第一节点根据所述第一交易请求,从所述区块链系统的账本中获取当前时刻的第一状态数据;所述第一状态数据用于表征所述第一交易对应的账户的当前状态;

步骤103:第一节点根据所述第一交易请求和所述第一状态数据,执行所述第一交易请求,并生成第一交易值;所述第一交易值为执行所述第一交易请求后的结果;

步骤104:第一节点将所述第一状态数据和所述第二交易值打包为第一消息,发布至所述区块链系统。

通过上述方法,可以避免采为各账户的状态数据设置mvcc的版本依赖,进而避免了额外维护一个版本号,额外的占用内存空间,随着状态数据的增多,版本号将会消耗大量的内存空间的问题,并且,由于实际并发交易数量较多,而根据实际的账户的状态数据进行并发控制,避免了mvcc中由于判断版本号不一致导致的大量的异常交易的误判,提高了区块链中的执行效率和吞吐量。

在第一节点将第一消息发布至区块链系统后,记账节点在到底记账周期时,开始进行交易的验证,确定第一消息中的第一交易是否可以交易成功,具体的,如图2所示,包括:

步骤201:第二节点接收第一节点发送的第一消息;所述第一消息包括第一交易值及第一状态数据;所述第一状态数据为所述第一节点在接收交易发起方发送的第一交易请求后从所述区块链系统的账本中获取的所述第一交易请求对应的账户的状态数据;所述第一交易值为所述第一节点根据所述第一交易请求及所述第一状态数据生成的;

步骤202:第二节点从所述区块链系统的账本中获取第二状态数据,所述第二状态数据为所述第一交易对应的账户的当前状态;

步骤203:第二节点若确定所述第二状态数据与所述第一状态数据相同,则生成包含所述第一交易值的区块;

步骤204:第二节点将所述区块发布至所述区块链系统。

需要说明的是,第二节点为区块链系统中的记账节点,第一节点和第二节点可以为同一节点,也可以为不同节点,在此不做限定。

针对记账结果为成功的场景,所述方法还包括:

步骤一、第一节点接收第二节点发送的所述第一消息的记账结果;

步骤二、第一节点接收所述第二节点发送的区块,所述区块包括所述第一交易值,所述区块是所述第二节点确定第二状态数据与所述第一状态数据相同时生成的;所述第二状态数据是所述第二节点在接收到所述第一消息后从所述区块链系统的账本中获取的所述账户的当前状态。

针对记账结果为失败的场景,第二节点若确定所述第二状态数据与所述第一状态数据不同,则通知所述第一节点所述第一消息的记账失败,以使所述第一节点重新处理所述第一交易请求。

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

步骤一、第一节点若确定所述记账结果为失败,则从所述区块链系统的账本中获取第三状态数据;所述第三状态数据用于表征所述账户的当前状态;

步骤二、第一节点根据所述第三状态数据和所述第一交易请求,生成第二交易值;

步骤三、第一节点将所述第三状态数据和所述第二交易值打包为第二消息,发布至所述区块链系统。

在上述实施例中,通过向区块链网络中的第一节点发送第一交易数据的验证请求,验证第一交易数据处理状态,判断第一交易数据处理是否成功,如果所述第一交易数据处理不成功,则向所述区块链网络重新发送所述第一交易数据到所述区块链网络,使所述区块链网络再次处理所述第一交易数据,避免了因为所述区块链网络中并发冲突而造成所述第一交易失败,需要重新通知节点发起交易,进而导致效率很低的问题。

图3为本发明实施例提供的一种记账方法流程示意图,包括以下步骤:

步骤301:第一节点接收应用发送的第一交易请求;

步骤302:第一节点根据所述第一交易请求,从所述区块链系统的账本中获取当前时刻的第一状态数据;所述第一状态数据用于表征所述第一交易对应的账户的当前状态;

具体的,第一节点接收到第一交易请求后,确定执行前的状态数据v1。

步骤303:第一节点根据所述第一交易请求和所述第一状态数据,执行所述第一交易请求,并生成第一交易值;

具体的,第一节点接收到第一交易请求后,节点对交易进行预执行,确定执行后的结果t1。

步骤304:第一节点将所述第一状态数据和所述第二交易值打包为第一消息,发布至所述区块链系统。

具体的,第一节点接收到第一交易请求后,节点对交易进行预执行,将执行前的状态数据v1及执行后的结果t1,附加到提交的第一消息中。

步骤305:第二节点接收第一节点发送的第一消息;

步骤306:第二节点从所述区块链系统的账本中获取第二状态数据,所述第二状态数据为所述第一交易对应的账户的当前状态;

步骤307:判断所述第二状态数据与所述第一状态数据是否相同,若是,则执行步骤308;否则,执行步骤309;

具体的,比较第一消息中附加的状态数据v1是否与状态数据当前值v1’相等,如果相等则执行步骤308;否则,执行步骤309;

步骤308:第一节点接收所述第二节点发送的区块;

具体的,第二节点锁定该数据,直接将目标值t1更新到状态数据中;并将生成的区块发送至全网,并记录该区块。

步骤309:通知所述第一节点所述第一消息的记账失败;

步骤310:第一节点返回值步骤302;

具体的,第一节点根据当前的状态数据,获取最新的状态数据及执行结果,重新执行第一交易请求,继而重复步骤307的判断过程,附加的状态数据v1是否与状态数据当前值v1’相同,更新执行结果至当前状态数据。

针对上述方法流程,本发明实施例还提供一种对写入区块链的交易数据验证的装置,该软件预部署装置的具体内容可以参照上述方法实施。

如图4所示,本申请实施例还提供一种记账装置,应用于区块链系统,所述区块链系统包括至少2个节点,所述装置包括:

收发单元401,用于接收交易发起方发送的第一交易请求;所述第一节点为所述区块链系统中的任一节点;

处理单元402,用于根据所述第一交易请求,从所述区块链系统的账本中获取当前时刻的第一状态数据;所述第一状态数据用于表征所述第一交易对应的账户的当前状态;根据所述第一交易请求和所述第一状态数据,执行所述第一交易请求,并生成第一交易值;所述第一交易值为执行所述第一交易请求后的结果;

所述收发单元401,用于将所述第一状态数据和所述第二交易值打包为第一消息,发布至所述区块链系统。

一种可能的实现方式,所述收发单元401,还用于:接收第二节点发送的所述第一消息的记账结果;接收所述第二节点发送的区块,所述区块包括所述第一交易值,所述区块是所述第二节点确定第二状态数据与所述第一状态数据相同时生成的;所述第二状态数据是所述第二节点在接收到所述第一消息后从所述区块链系统的账本中获取的所述账户的当前状态。

一种可能的实现方式,所述处理单元402还用于:若确定所述记账结果为失败,则从所述区块链系统的账本中获取第三状态数据;所述第三状态数据用于表征所述账户的当前状态;根据所述第三状态数据和所述第一交易请求,生成第二交易值;

所述收发单元401,还用于将所述第三状态数据和所述第二交易值打包为第二消息,发布至所述区块链系统。

如图5所示,本申请实施例还提供一种记账装置,应用于区块链系统,所述区块链系统包括至少2个节点,所述装置包括:

收发单元501,用于接收第一节点发送的第一消息;所述第一消息包括第一交易值及第一状态数据;所述第一状态数据为所述第一节点在接收交易发起方发送的第一交易请求后从所述区块链系统的账本中获取的所述第一交易请求对应的账户的状态数据;所述第一交易值为所述第一节点根据所述第一交易请求及所述第一状态数据生成的;

处理单元502,用于从所述区块链系统的账本中获取第二状态数据,所述第二状态数据为所述第一交易对应的账户的当前状态;若确定所述第二状态数据与所述第一状态数据相同,则生成包含所述第一交易值的区块;

所述收发单元501,还用于将所述区块发布至所述区块链系统。

一种可能的实现方式,所述处理单元502还用于:若确定所述第二状态数据与所述第一状态数据不同,则通知所述第一节点所述第一消息的记账失败,以使所述第一节点重新处理所述第一交易请求。

需要说明的是,本发明实施例中上述涉及的记账装置中各个单元的功能实现可以进一步参照相关方法实施例的描述,在此不再赘述。

本申请实施例还提供一种记账装置,如图6所示,该装置包括:

存储器202,用于存储程序指令;

处理器200,用于调用所述存储器中存储的程序指令,按照获得的程序执行本申请实施例所述的任一方法流程。

收发机201,用于在处理器200的控制下接收和发送记账处理的指令。

其中,在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器200代表的一个或多个处理器和存储器202代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。

收发机201可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。

处理器200负责管理总线架构和通常的处理,存储器202可以存储处理器200在执行操作时所使用的数据。

处理器200可以是中央处理器(cpu)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)。

本申请实施例还提供了一种计算机存储介质,用于储存为上述本申请实施例中所述的任一装置所用的计算机程序指令,其包含用于执行上述本申请实施例提供的任一方法的程序。

所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1