促进实用拜占庭容错区块链共识和节点同步的制作方法

文档序号:18400288发布日期:2019-08-09 23:48阅读:198来源:国知局
促进实用拜占庭容错区块链共识和节点同步的制作方法

区块链网络,也可以被称为区块链系统、共识网络、分布式账本系统(dls)网络或区块链,使得参与的实体能够安全地并且不可篡改地存储数据。区块链可以被描述为交易的账本,并且区块链的多个副本跨区块链网络存储。区块链的示例性类型可包括公有区块链、联盟区块链和私有区块链。公有区块链对所有实体开放区块链的使用,并开放共识处理的参与。私有dls针对特定实体提供,该实体集中控制读写权限。

另一种类型的区块链系统包括联盟区块链系统。联盟区块链系统针对选择的实体组群提供,该实体组群控制共识处理,并且包括访问控制层。因此,参与联盟区块链系统的一个或多个实体能控制谁可以访问联盟区块链系统、以及谁可以参与联盟区块链系统的共识处理。例如,实体组群(例如,公司、学术机构)可以参与联盟区块链系统以不可篡改地记录数据(例如,交易)。在一些示例中,某实体能够访问/查看联盟区块链系统内的数据,但不向联盟区块链系统贡献数据。

区块链包括一系列区块,每个区块包含一个或多个在网络中执行的交易。每个区块可被类比为账本中的一页,而区块链本身是账本的完整副本。各个交易被确认并被添加到区块,该区块被添加到区块链。区块链的副本是跨网络中的节点复制的。以这种方式,跨网络对区块链的状态形成共识。

容错是区块链系统中所关心的。容错通常可以被描述为网络对故障节点或恶意行为节点的容忍。在具有较少参与节点的区块链系统(例如联盟区块链系统)中,容错是特别关注的。拜占庭容错(bft)可被描述为诸如区块链系统的分布式计算系统的容错的可靠性。bft描述了在组件可能故障和/或是恶意、以及关于组件是否已经发生故障或是恶意的信息不完整的情况下的可靠性。尽管系统的恶意节点向其他节点传播错误信息,在共识协议中利用bft还是能够使系统达成共识。bft的目的是通过减轻恶意节点对共识协议的正确功能的影响来防御系统故障。实用bft(pbft)是bft的优化。pbft在诸如联盟区块链系统的异步系统中工作,并且假定存在独立节点故障以及由特定的独立节点传播经操作的消息。在pbft中,共识系统中的所有节点按序列依次作为主节点的一个节点(随着时间的推移,不同的节点被指定为主节点)而其它节点为备节点。所有节点通过广播消息彼此通信,并且所谓的诚实节点通过多数达成共识。

在pbft中,共识安全性可以确保不具有任何问题的两个节点不会就不同的值达成共识。共识活跃度可以确保节点不会在交换消息时落入无限循环,并且节点可以达到它们的最终状态。

在一些情况下,联盟区块链中的共识节点可能在地理上远离,并且不能保证网络质量或连通性。在这种情况下,广播消息可能无法到达所有的共识节点,这影响共识节点达成pbft共识的能力。因此,收集足够的回复以达成共识可能是耗时的并且从计算方面上讲是繁重的。



技术实现要素:

本公开的实施方式涉及基于实用拜占庭容错(pbft)促进区块链网络的同步和共识处理。更具体地说,本公开的实施方式涉及通过使用基于闲话的通信方法、并且向共识消息添加数字签名,来基于pbft促进区块链网络中的共识消息传输和节点同步。

在一些实施方式中,动作包括:由第一共识节点设置在视图改变超时之前期满的定时器;响应于所述定时器期满,向第二共识节点发送请求以获得所述第一共识节点缺少的一个或多个共识消息;从所述第二共识节点接收所述一个或多个共识消息,所述一个或多个共识消息中的每个共识消息被生成该共识消息的相应的共识节点的私钥进行数字签名;以及,如果包括在所接收的一个或多个共识消息中的承诺消息的数量大于或等于2f+1,则确定交易的区块有效,其中,f是区块链基于实用拜占庭容错而可容忍的故障节点的最大数目。其他实施方式包括对应的系统、装置和计算机程序,所述计算机程序被配置成执行所述方法的操作、并编码在计算机存储设备上。

这些实施方式和其它实施方式可以各自可选地包括以下特征中的一个或多个:该请求包括表示共识轮的编号的序列号;所述一个或多个共识消息包括所述第一共识节点缺少的预准备消息、准备消息和承诺消息中的一个或多个;所述一个或多个共识消息被存储在生成或存储它们的一个或多个共识节点中,直到到达稳定的检查点;接收对应于所述一个或多个共识消息的一个或多个序列号,其中,每个序列号表示与对应的共识消息相关联的共识轮的编号;如果所述交易的区块被确定有效,则向区块链和状态数据库提交所述交易的区块;响应于所述定时器期满并且如果所述交易的区块被确定无效,则向第三共识节点发送请求以获得所述第二共识节点缺少的一个或多个第二共识消息;从所述第三共识节点接收所述一个或多个第二共识消息,所述一个或多个第二共识消息中的每个第二共识消息被生成该第二共识消息的相应的共识节点的私钥进行数字签名;以及如果包括在所述一个或多个共识消息和所述一个或多个第二共识消息中的承诺消息的数量大于或等于2f+1,则确定所述交易的区块是有效的。

本公开还提供了耦接到一个或多个处理器且其上存储有指令的一个或多个非暂态计算机可读存储介质,当由所述一个或多个处理器执行所述指令时,促使所述一个或多个处理器根据本文提供的方法的实施方式执行操作。

本公开还提供了用于实现本文所提供方法的系统。该系统包括一个或多个处理器、以及耦接到所述一个或多个处理器且其上存储有指令的一个或多个非暂态计算机可读存储介质,当由所述一个或多个处理器执行所述指令时,促使所述一个或多个处理器根据本文提供的方法的实施方式执行操作。

可以理解的是根据本公开的方法可以包括本文所述的方面和特征的任意组合。也即,根据本公开的方法不限于本文所述的方面和特征的组合,但也包括所提供的方面和特征的任意组合。

本公开的一个或多个实施方式的细节将在下文结合附图和描述进一步阐述。本公开的其他特征或优点将从说明书和附图以及权利要求中显而易见。

附图说明

图1描绘了可以用于执行本公开实施方式的示例性环境。

图2描绘了根据本公开实施方式的示例性概念架构。

图3描绘了根据本公开实施方式的基于pbft的示例性共识处理。

图4描绘了根据本公开实施方式的基于pbft的共识消息的示例性结构。

图5描绘了可根据本公开实施方式执行的示例性处理。

在各个附图中,相同的附图标记表示相同的元件。

具体实施方式

本公开的实施方式涉及基于实用拜占庭容错(pbft)促进区块链网络的同步和共识处理。更具体地说,本公开的实施方式涉及通过使用基于闲话的通信方法、并且向共识消息添加数字签名,来基于pbft促进区块链网络中的共识消息传输和节点同步。以这种方式,并且如本文中进一步详细描述的,可以减少通信带宽消耗,并且可以提高系统可靠性。在一些实施方式中,动作包括:由第一共识节点设置在视图改变超时之前期满的定时器;响应于所述定时器期满,向第二共识节点发送请求以获得所述第一共识节点缺少的一个或多个共识消息;从第二共识节点接收一个或多个共识消息,所述一个或多个共识消息中的每个共识消息被生成该共识消息的相应的共识节点的私钥进行数字签名;以及如果包括在所接收的一个或多个共识消息中的承诺消息的数量大于或等于2f+1,则确定交易的区块有效,其中,f是区块链基于实用拜占庭容错的而可容忍的故障节点的最大数目。

为本公开实施方式提供进一步的背景,如上所述,区块链网络又可被称为共识网络(例如,由点对点节点组成)、分布式账本系统、或简称为区块链,使得参与的实体能够安全地且不可篡改地进行交易并存储数据。区块链可被提供为公有区块链、私有区块链或联盟区块链。本文参考联盟区块链来更详细地描述本公开的实施方式,其中,所述共识处理由预先选择的一组节点来控制。然而,可以预期,可以在任何合适类型的区块链中实现本公开的实施方式。

在联盟区块链中,共识处理由一组授权的节点控制,一个或多个节点由各自的实体(例如,企业)来操作。例如,十(10)个实体的联盟(例如,公司)可以操作联盟区块链系统,每个实体操作联盟dls中的至少一个节点。因此,联盟区块链系统可被认为是关于参与实体的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使该区块有效并被添加到区块链。在一些示例中,每个区块必须由至少一个实体(节点)的子集(例如,至少7个实体)签名,以使该区块有效并被添加到区块链。示例性的联盟区块链系统包括quorum,其由位于纽约的纽约摩根大通公司开发。quorum可被描述为以企业为中心、特别针对财务用例设计的许可区块链基础结构。quorum由以太坊(ethereum)区块链基本码goetherum构建,该基本码由位于瑞士楚格州的以太坊基金会提供。

通常,联盟区块链系统支持被允许参与联盟区块链系统的实体之间的交易。因为区块链是跨联盟区块链系统内的所有节点复制的,所以交易由所有节点共享。即,所有节点相对于区块链处于完全共识状态。为了达成共识(例如,同意将区块添加到区块链),在联盟区块链网络内实施共识协议。示例性共识协议包括但不限于,在比特币网络中实施的工作量证明(pow)。

本公开的实施方式包括:用于基于pbft促进区块链网络的共识处理的计算机实现方法。更具体地说,本公开的实施方式涉及通过使用基于闲话的通信方法、并且向共识消息添加数字签名,来基于pbft促进区块链网络中的共识消息传输和节点同步。以这种方式,并且如本文中进一步详细描述的,可以减少通信带宽消耗,并且可以提高系统可靠性。

根据本公开的实施方式,联盟区块链系统的共识节点执行pbft共识协议。在一些示例中,节点可以发送共识消息。根据本公开的实施方式,示例性共识消息可包括但不限于预准备、准备和承诺(commit)。在一些实施方式中,数字签名和序列号被包括在每个共识消息中。数字签名可用于识别发送相应的共识消息的节点,以及序列号表示发送该共识消息时所在的共识轮(consensusround)。

每个共识节点可以存储或记录所有接收到的共识消息。如果区块链网络中的共识节点(例如,备节点)从断开处被恢复,并且已经缺少了一个或多个共识消息,则该共识节点可以通过从一个或多个其他共识节点获取缺少的消息来与其他节点同步。根据本公开的实施方式,与例如向整个区块链网络广播获取请求截然相反,可以使用闲话(gossip)算法来获取共识消息。因为从另一共识节点获取的共识消息携带相应的共识节点的数字签名,所以所获取的共识消息的源可被确认(并信任)。在一些示例中,备节点可能能够在单个同步中获取所有缺少的消息。这样,同步或共识的复杂度在理想条件下可以降低到o(1),而基于传统pbft的标准组播下的复杂度为o(n)。

图1描绘了可用于执行本公开实施方式的示例性环境100。在一些示例中,示例性环境100使得实体能够参与联盟区块链系统102。示例性环境100包括计算系统106、计算系统108和网络110。在一些示例中,网络110包括局域网(lan)、广域网(wan)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。

在所描述的示例中,计算系统106、计算系统108可以各自包括能够作为节点参与联盟区块链系统102的任何适当的计算系统,用于在区块链104中存储交易。示例性计算设备包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备和智能手机。在一些示例中,计算系统106、计算系统108承载一个或多个由计算机实施的服务,用于与联盟区块链系统102交互。例如,计算系统106可以承载第一实体(例如,用户a)的由计算机实施的、例如交易管理系统的服务,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算系统108可以承载第二实体(例如,用户b)的由计算机实施的、例如交易管理系统的服务,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链系统102被表示为节点的点对点网络(peer-to-peernetwork),并且计算系统106、计算系统108分别提供参与联盟区块链系统102的第一实体和第二实体的节点。

图2描绘了根据本公开实施方式的示例性概念架构200。示例性概念架构200包括实体层202、承载服务层204和公有区块链层206。在所描绘的示例中,实体层202包括三个实体,实体1(e1)、实体2(e2)和实体3(e3),每个实体具有相应的交易管理系统208。

在所描述的示例中,承载服务层204包括用于每个交易管理系统208的区块链接口210。在一些示例中,各个交易管理系统208使用通信协议(例如,超文本传输协议安全(https))通过网络(例如,图1的网络110)与各个区块链接口210通信。在一些示例中,每个区块链接口210提供相应的交易管理系统208与区块链层206之间的通信连接。更具体地,每个区块链接口210使相应的实体能够进行记录在区块链层206的联盟区块链网络系统212中的交易。在一些示例中,区块链接口210与区块链层206之间的通信是使用远程过程调用(rpc)进行的。在一些示例中,区块链接口210“承载”用于相应的交易管理系统208的区块链节点。例如,区块链接口210提供用于访问联盟区块链网络系统212的应用程序编程接口(api)。

如本文所述的,联盟区块链网络系统212被提供为包括多个节点214的点对点网络,所述多个节点214在区块链216中不可篡改地记录信息。尽管示意性地示出了单个区块链216,但是在联盟区块链网络系统212中可以提供并维护区块链216的多个副本。例如,每个节点214存储区块链216的副本。在一些实施方式中,区块链216存储与参与联盟区块链系统212的两个或更多个实体之间进行的交易相关联的信息。

图3描绘了根据本公开实施方式的基于pbft的示例性共识处理300。在较高层面上,示例性共识处理300由区块链网络的客户端节点(节点c302)、领导节点(节点1304)和多个备节点(节点2306、节点3308和节点4310)执行。假定区块链网络使用的共识算法为pbft。pbft系统可以包括三个阶段。示例性阶段可包括但不限于预准备312、准备314和承诺316。在所描述的示例中,在由变量seq表示的序列号标识的共识轮的三个阶段期间,节点4310被断开或者不可用。在节点4310被恢复之后,节点4310可以请求与其他节点同步318以获取缺少的共识消息从而确保pbft共识的安全性和活跃度。为了实现更快的同步,每个共识节点可以使用其私钥对其所发送的共识消息进行数字签名。因此,每个共识消息都携带其发送节点的数字签名。即使该发送节点被断开或者不可用,接收节点也可以安全地转发共识消息以确保网络的活跃度。在图3的以下描述中进一步讨论示例性处理300的细节。

在一些实施方式中,客户端节点302可发送用于向区块链添加一个或多个交易的请求。在一些情况下,该请求还包括表示当前共识轮的seq变量。例如,如果区块链在第三轮共识中,则变量seq等于3。

在从客户端节点302和/或其它节点接收到用于将一个或多个交易添加到区块链的一个或多个请求之后,节点1(领导节点)304可以生成经数字签名的预准备消息(pp1)。简要参考图4,图4描绘了根据本公开实施方式的基于pbft的共识消息的示例性结构400。如图4所示,预准备消息402可以包括视图(view)、摘要(digest)、交易(transaction)、时间戳(timestamp)和序列号(seq)。变量视图(view)可以表示视图改变次数v。通过允许pbft在领导节点故障时取得进展,pbft中的视图改变可提供活跃度。视图改变可以由超时触发,以防止备节点无限期地等待执行请求。备节点可以在其接收到请求且定时器尚未计时的情况下启动定时器。当备节点不再等待执行该请求时,它可以停止定时器。然而,如果在那时备节点正在等待执行其它请求,则备节点可以重启定时器。如果备节点的定时器在本视图中期满,则备节点可以启动视图改变以将系统移至视图v+1。

交易可以是客户端节点的用于将交易添加到区块链的请求消息。摘要可以是消息的摘要。时间戳可以用于确保每个客户端请求被执行一次。时间戳可以被排序,使得较晚的请求比较早的请求具有更高的时间戳。例如,当请求被发布时,时间戳可以是客户端的本地时钟的值。seq可以表示消息的共识轮。在一些实施方式中,可以使用领导节点的私钥将数字签名404添加到预准备消息402。在一些实施方式中,诸如预准备消息402的共识消息可被存储在接受该消息的节点中,直到达到稳定的检查点。检查点可以是通过执行请求产生的状态,并且具有证据的检查点可以称为稳定检查点。

再次参考图3,在生成经数字签名的预准备消息pp1之后,领导节点可以将消息组播到备节点、节点2306、节点3308和节点4310。

在节点2306和节点3308接受预准备消息pp1之后,它们可以进入准备阶段314。此时,节点4310与区块链网络断开或者不可用。这样,节点4310不能接收pp1、生成准备消息或执行组播。预准备阶段和准备阶段可被用于对在相同视图中所发送的请求排序,即使在提出对请求进行排序的领导节点故障时。

在准备阶段314,节点2306可以将其准备消息p2组播到其他节点,并且将pp1和p2两者添加到其日志。类似地,节点3308可以将其准备消息p3组播到其他节点,并且将pp1和p3两者添加到其日志。再次参考图4,准备消息406可以包括视图(view)、摘要(digest)和序列号(seq)。数字签名408可以被添加到准备消息406。

再次参考图3,节点2306和节点3308可以使用它们的私钥分别对p2和p3进行数字签名。在一些实施方式中,如果节点接收到摘要与自己的摘要相同的2f个共识消息,则该节点可以进入承诺阶段(commitphase)316,其中,f是区块链基于pbft可容忍的故障节点的最大数目。值f可以计算为小于或等于(n-1)/3的最大整数,其中,n是节点的总数。在示例性共识处理300中,由于节点的总数是4,所以f=1。

假设所有接收到的摘要与节点自己的摘要相同,则在接收到p2和p3之后,节点1304具有2f个摘要消息,可以生成并组播承诺c1,并且将p2、p3和c1添加到其日志。类似地,节点2306可以在接收到pp1和p3之后生成并组播承诺c2,并且将p3和c2添加到其日志。节点3308可以在接收到pp1和p2之后生成并组播承诺c3,并将p2和c3添加到其日志。这样,在共识节点从另一节点接收到经数字签名的共识消息之后,共识消息和数字签名可被本地存储在接收节点处。可以基于相应的seq值对经数字签名的共识消息进行分类,以确保消息的正确顺序。

再次参考图4,承诺消息410可包括视图(view)、摘要(digest)和序列号(seq)。数字签名412可以被添加到承诺消息410。

再次参考图3,假设节点4310恢复了并且重新连接到区块链网络,节点4310可以开始同步阶段318以获取在其停机期间缺少的消息。在一些实施方式中,为了避免节点4310的定时器在视图中期满并启动视图改变,可将获取定时器设置为在视图改变超时之前期满。

响应于获取定时器期满,节点4310可确定具有节点4310缺少的共识消息的一个或多个共识节点。节点4310可以基于闲话算法从所述一个或多个共识节点中随机选择共识节点以发送获取请求。该获取请求可以包括节点的seq编号和缺少的共识消息的类型。

在示例性共识处理300中,缺少的共识消息的类型包括预准备、准备和承诺。这样,该获取请求可以具有seq<pp,p,c>的形式。在一些示例中,节点4310基于闲话算法随机选择节点3308以获取缺少的共识消息。节点3308在seq的共识轮具有记录的pp1、p2、p3、c1、c2和c3。因为所有记录的消息包括发布节点的数字签名,所以它们的真实性可以通过使用发布节点的相应公钥来验证。由于节点3308已经记录了三个共识消息c1、c2和c3,这大于或等于2f+1个,所以它可以向节点4310提供经数字签名的消息pp1、p2、p3、c1、c2、c3。在一些情况下,如果接收获取请求的节点已记录的共识消息少于2f+1个,则该请求节点可以从系统中的其它节点获取,直到获得至少2f+1个共识消息。在示例性处理300中,只要节点1304、节点2306和节点3308中的任何一个连接到区块链网络,节点4310就可以获取全部的所述共识消息。因此,被恢复的节点可能只需要执行一次同步来获取缺少的消息。如此,可节省网络资源,并提高系统效率。

图5描绘了可以根据本公开实施方式执行的示例性处理500。为了清楚地呈现,在本说明中以下描述在其他附图的执行背景下总体地描述了示例性处理500。然而,将理解,示例性处理500可以例如通过任何系统、环境、软件和硬件,或系统、环境、软件和硬件的组合合理进行。在一些实施方式中,示例性处理500的各个步骤可以以并行、组合、循环或任何顺序运行。

在502,pbft系统中基于pbft重新连接到区块链网络的备节点设置在视图改变超时之前期满的定时器。在504,响应于所述定时器期满,该备节点向另一共识节点发送请求以获得该备节点缺少的一个或多个共识消息。在一些实施方式中,该请求包括表示共识轮的编号的序列号。在一些实施方式中,所述一个或多个共识消息包括该第一共识节点缺少的预准备消息、准备消息和承诺消息中的一个或多个。

在506,该备节点从该共识节点接收一个或多个共识消息,所述一个或多个共识消息中的每个共识消息被生成该共识消息的相应共识节点的私钥进行数字签名。在一些实施方式中,所述一个或多个共识消息包括第一共识节点缺少的预准备消息、准备消息和承诺消息中的一个或多个。在一些实施方式中,所述一个或多个共识消息被存储在生成或存储它们的一个或多个共识节点中,直到达到稳定的检查点。

在508,如果包括在所接收的一个或多个共识消息中的承诺消息的数量大于或等于2f+1,则该备节点确定交易的区块有效,其中,f是区块链基于pbft可容忍的故障节点的最大数目。在一些实施方式中,备节点还接收与所述一个或多个共识消息相对应的一个或多个序列号。每个序列号表示与对应的共识消息相关联的共识轮的编号。

在一些实施方式中,如果交易的区块被确定有效,则该备节点还向区块链和状态数据库提交该交易的所述区块。在一些实施方式中,响应于定时器期满并且如果交易的区块被确定无效,则该备节点还向不同于该共识节点和该备节点的第三共识节点发送请求以获得该共识节点缺少的一个或多个第二共识消息的请求。该备节点从第三共识节点接收该一个或多个第二共识消息,所述一个或多个第二共识消息中的每个共识消息被生成该第二共识消息的相应共识节点的私钥进行数字签名。随后,如果包括在一个或多个共识消息以及一个或多个第二共识消息中的承诺消息的数量大于或等于2f+1,则该备节点确定该交易的区块有效。

本申请中所描述主题的实施方式可被实施以实现特定优点或技术效果。例如,本公开的实施方式允许联盟区块链中的共识节点发送具有序列号的经数字签名的共识消息,该序列号标识相应消息的共识轮。经数字签名的共识消息可被备节点信任以确保安全,并且可以验证消息的来源。这样,可以提高联盟区块链的数据安全性和隐私性。此外,如果备节点从断开处恢复,则它可通过从另一随机共识节点获取缺少的消息、而不是向整个网络广播获取请求来与其它节点同步。因为从另一个共识节点获取的消息携带发布节点的数字签名,所以消息的源是可信的,并且该备节点能够通过一次同步从一个节点获取所有缺少的消息。这样,同步或共识的复杂度在理想条件下可以降低到o(1),而基于pbft的标准组播方法的复杂度为o(n)。相应地,可以节省计算和网络资源,并且可以提高pbft系统的效率。

所描述的方法可以通过对区块链的有效更新来确保计算机资源(例如,处理周期、网络带宽和存储器利用率)的有效使用。通过更简单的共识处理,这些账户操作可被更快且更安全地进行。

本文中描述的实施方式和操作可以在数字电子电路中或者在计算机软件、固件、包括本申请中公开的结构的硬件中或它们中一个或多个的组合中实现。这些操作可被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上的、或从其他资源接收的数据执行的操作。数据处理装置、计算机或计算设备可以包括,包括诸如可编程处理器、计算机、片上系统或以上一个或多个或组合的,用于处理数据的装置、设备和机器。装置可以包括专用逻辑电路,例如,中央处理单元(cpu)、现场可编程门阵列(fpga)或专用集成电路(asic)。装置还可包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统(例如一个操作系统或多个操作系统的组合)、跨平台运行时间环境、虚拟机或者它们之中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,例如网页服务、分布式计算和网格计算基础设施。

计算机程序(又称,例如,程序、软件、软件应用、软件模块、软件单元、脚本或代码)可以以任何形式的编程语言编写,包括编译语言或演绎性语言、说明性语言或程序性语言,并且它可以配置为任何形式,包括作为独立程序,或者作为模块、组件、子程序、对象或适合在计算环境中使用的其他单元。程序可存储在:保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件中或者多个协调文件中(例如,存储一个或多个模块,子程序或部分代码的多个文件)中。计算机程序可以在一台计算机或者位于一个站点或由通信网络互联的分布在多个站点上的多台计算机执行。

用于执行计算机程序的处理器包括,例如,通用和专用微型处理器两者,和任意种类的数码计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或其两者接收指令和数据。计算机的重要元件为用于根据指令进行操作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大型存储设备,或可操作地耦接以从所述大型存储设备接收数据或向其转发数据,或两者。计算机可嵌入在另一个设备中,例如,移动电话、个人数字助理(pda)、游戏控制台、全球定位系统(gps)接收器或便携式存储设备。适用于存储计算机程序指令和数据的设备包括非易失性存储器、介质和存储设备,包括,例如,半导体存储设备、磁盘和磁光盘。处理器和存储器可补充有专用逻辑电路或集成在专用逻辑电路中。

移动设备可以包括手机、用户设备(ue)、移动电话(例如,智能电话)、平板电脑、可穿戴设备(例如,智能手表和智能眼镜)、人体内的植入设备(例如,生物传感器、人工耳蜗植入)、或其它类型的移动设备。移动设备可以无线地(例如,使用射频(rf)信号)与各种(下文描述的)通信网络通信。移动设备可以包括用于确定移动设备当前环境的特征的传感器。传感器可以包括相机、麦克风、接近传感器、gps传感器、运动传感器、加速度测量计、环境光传感器、湿度传感器、陀螺仪、指南针、气压计、指纹传感器、面部识别系统、rf传感器(例如,wifi和蜂窝无线电)、热量传感器或其它类型的传感器。例如,相机可以包括带有可动或固定镜头的前置或后置相机、闪光灯、图像传感器和图像处理器。相机可以是能够捕捉用于面部和/或虹膜识别的细节的百万像素相机。相机与数据处理器和存储在存储器中或可远程访问的认证数据一起可以形成面部识别系统。面部识别系统或者一个或多个传感器,例如,麦克风、运动传感器、加速度测量计、gps传感器或rf传感器可以用于用户认证。

为提供用于与用户的交互,实施方式可以在具有显示设备和输入设备的计算机上实现,例如,用于向用户显示信息的液晶显示器(lcd)或有机发光二极管(oled)/虚拟现实(vr)/增强现实(ar)显示器以及用户可提供输入至计算机的触摸屏、键盘和指针设备。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可是任何形式的感官反馈,例如视觉反馈,听觉反馈或触觉反馈;且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可通过向用户使用的设备发送文档并从用户使用的设备接收文档来与用户交互;例如,通过响应于从网页浏览器接收到的请求向客户设备上的网页浏览器发送网页。

实施方式可以使用计算设备实现,计算设备通过有线或无线数字数据通信(或其组合)的任意形式或媒介互联,例如,通信网络。互联设备的示例为通常彼此远离的、通常通过通信网络交互的客户端和服务器。客户端,例如,移动设备,可以自身与服务器或通过服务器进行交易,例如进行买、卖、支付、给予、发送或贷款交易,或认证以上交易。这种交易可以是实时的使得操作和响应在时间上接近,例如个体感觉操作和响应基本上是同时发生的,对于在个体的操作之后的响应的时间差小于一毫秒(ms)或小于一秒(s),或在不考虑系统的处理限制的情况下,响应没有主动延迟。

通信网络的示例包括局域网(lan)、无线电接入网(ran)、城域网(man)和广域网(wan)。通信网络可以包括所有或部分因特网、其他通信网络或通信网络的组合。可以根据各种协议和标准在通信网络上传输信息,包括长期演进网络(lte)、5g、ieee802、因特网协议(ip)或其他协议或协议的组合。通信网络可以在连接的计算设备之间传输音频、视频、生物特征或认证数据或其他信息。

作为单独实施方式描述的特征可以组合实施、在单个实施方式中实施,然而被描述为单个实施方式的特征可以在多个实施方式中分别单独实现,或在任何合适的子组合中实现。按特定顺序描述的和要求保护的操作不应理解为必须以该顺序进行,也不是所有示出的操作都必须被执行(一些操作可以是可选的)。适当地,可以进行多任务或并行处理(或多任务和并行处理的组合)。

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