基于预测的未结交易执行率来调整交易分布

文档序号:1909608 发布日期:2021-11-30 浏览:17次 >En<

阅读说明:本技术 基于预测的未结交易执行率来调整交易分布 (Adjusting transaction distribution based on predicted outstanding transaction execution rate ) 是由 徐茂栋 阿舒·斯瓦米 于 2020-02-25 设计创作,主要内容包括:一种交易处理系统(130)被配置成接收交易请求以在多个第三方系统(108)中的一个或多个处执行交易。交易处理系统(130)访问调整后交易记录,该调整后交易记录存储从多个第三方系统(108)接收的多个未结交易。交易处理系统(130)进一步将交易请求划分(530)为一个或多个拆分交易请求。一个或多个拆分交易请求被发送(540)到对应的第三方系统(108)以供执行。对应的第三方系统(108)以每个拆分交易的请求单位计数执行对应于每个拆分交易的未结交易。作为响应,交易处理系统(130)从多个第三方系统(108)中的一个或多个接收(550)执行报告。(A transaction processing system (130) is configured to receive a transaction request to perform a transaction at one or more of a plurality of third party systems (108). The transaction processing system (130) accesses an adjusted transaction record that stores a plurality of outstanding transactions received from a plurality of third party systems (108). The transaction processing system (130) further divides (530) the transaction request into one or more split transaction requests. One or more split transaction requests are sent (540) to corresponding third party systems (108) for execution. The corresponding third party system (108) executes the outstanding transactions corresponding to each split transaction at the request unit count for each split transaction. In response, the transaction processing system (130) receives (550) an execution report from one or more of the plurality of third party systems (108).)

基于预测的未结交易执行率来调整交易分布

相关申请的交叉引用

本申请要求2019年2月26日提交的美国临时专利申请62/810,909和2019年7月10日提交的美国专利申请16/508,192的优先权,其内容整体通过引用方式并入本文中。

技术领域

本发明总体上涉及数据预测,并且具体地涉及基于预测的未结交易执行率来调整交易分布。

背景技术

在一些联网系统中,第三方系统可以各自提供处理系统可以请求执行的未结交易的列表。这些第三方系统可以经由传输到处理系统的一个或多个数据馈送提供此类未结交易的列表。然而,在一些情况下,一些未结交易可能不会经由数据馈送公开。如果处理系统请求从这些系统执行交易,则第三方系统可能会意外地执行这些未公开的未结交易中的一个。此外,数据馈送中出现的一些未结交易可能不是实际的未结交易,而是可能是基于数据馈送中的其他未结交易以编程方式生成的,以便修改由第三方系统提供的数据馈送中未结交易的总体统计数据。尝试请求执行这些以编程方式生成的未结交易会导致失败,因为它们不是可供执行的实际未结交易。因此,处理系统无法基于数据馈送中报告的交易正确执行交易。因此,缺乏一种可以更好地匹配第三方系统上可用的实际未结交易,从而得到与实际执行结果相匹配的预测执行结果的请求执行交易的方法。

遍及本说明书,用词“包括”或诸如“包含”或“含有”之类的变体将被理解为暗示包括所陈述的元件、整数或步骤,或元件组、整数组或步骤组,但是不排除任何其他元件、整数或步骤,或元件组、整数组或步骤组。

对已包括在本说明书中的文档、动作、材料、设备、物品等的任何讨论不应被视为承认这些事项中的任何或全部形成现有技术基础的一部分或与本发明相关的领域中的公知常识,因为它存在于每个所附权利要求的优先权日之前。

发明内容

实施例涉及一种系统,该系统包括交易处理系统,该交易处理系统被配置成接收交易请求以在多个第三方系统中的一个或多个处执行交易,该交易请求包括所请求的单位计数。

交易处理系统访问调整后交易记录,所述调整后交易记录存储从多个第三方系统接收的多个未结交易,其中多个未结交易中的每一个存储未结交易的调整后单位计数。

调整后可用交易列表通过以下方式生成:通过使用根据预测模型生成的预测分数对每个未结交易的报告单位计数进行修改来计算每个第三方系统的多个未结交易中的每个未结交易的调整后单位计数。预测模型基于先前已执行的未结交易的报告单位计数与已执行的未结交易的已执行单位计数之间的差来生成预测分数。

交易处理系统进一步将交易请求划分为一个或多个拆分交易请求。每个拆分交易请求与调整后交易记录中的多个未结交易中的未结交易相关联,每个拆分交易的请求单位计数不超过与每个拆分交易相关联的未结交易的调整后单位计数。每个拆分交易请求对应于提供与每个拆分交易相关联的未结交易的多个第三方系统中的一个第三方系统。

将一个或多个拆分交易请求发送到对应的第三方系统以供执行。对应的第三方系统以每个拆分交易的请求单位计数来执行对应于每个拆分交易的未结交易。

作为响应,交易处理系统可以从多个第三方系统中的一个或多个接收执行报告,该执行报告指示:与一个或多个拆分交易中的每个拆分交易相对应的未结交易的执行的已执行单位计数。

预测模型还可以通过以下方式生成:针对多个已执行的未结交易中的每一个,确定已执行未结交易的已执行单位计数大于、小于还是等于已执行未结交易的报告单位计数;响应于已执行未结交易的已执行单位计数大于已执行未结交易的报告单位计数,为已执行未结交易生成正的实际分数;响应于已执行未结交易的已执行单位计数小于已执行未结交易的报告单位计数,为已执行未结交易生成负的实际分数;响应于已执行未结交易的已执行单位计数等于已执行未结交易的报告单位计数,为已执行未结交易生成零的实际分数;以及基于为多个已执行未结交易生成的实际分数生成预测模型。

每个已执行未结交易的实际分数可以通过以下方式生成:将第一结果确定为已执行未结交易的报告单位计数与已执行未结交易的请求单位计数中的最小值减去1;将第二结果确定为已执行单位计数与第一结果之间的比率;以及将实际分数确定为1与第二结果之间的最小值。

被请求执行但未执行的未结交易可以被赋予零的已执行单位计数。

在第三方系统处执行的未列入未结交易的已执行单位计数可以被添加到具有与未列入未结交易最接近的价值金额的已列入未结交易的已执行单位计数,该未列入未结交易可以是在第三方系统处执行并且未列入调整后交易记录的未结交易,该已列入未结交易可以是在第三方系统处执行的且已列入调整后交易记录的未结交易。

预测模型还可以通过以下方式生成:生成回归模型,对该回归模型的输入是从多个桶(bucket)中采样的实际分数,每个桶包括来自第三方系统的已执行未结交易的实际分数,执行时间戳在桶的新近度范围内,该回归模型生成指示未结交易的实际分数的可能值的预测分数。

可以从每个桶的新近度范围内的一小时间隔采样实际分数。

修改每个未结交易的报告单位计数还可以包括:为该未结交易生成的预测分数加一;以及将未结交易的报告单位计数乘以增加的预测分数以生成未结交易的调整后单位计数。

交易处理系统可以通过从在调整后交易记录中多个未结交易中排名最高的调整后交易记录中选择一个或多个未结交易来将交易请求划分为一个或多个拆分交易请求,选定的一个或多个未结交易的报告单位计数之和可以大于或等于交易请求的请求单位计数,调整后交易记录中的多个未结交易可以根据调整后交易记录中每个未结交易的价值金额排序。

实施例还涉及一种方法,包括:接收交易请求以在多个第三方系统中的一个或多个处执行交易,该交易请求包括请求的单位计数;访问调整后交易记录,所述调整后交易记录存储从多个第三方系统接收到的多个未结交易,多个未结交易中的每一个存储未结交易的调整后单位计数,调整后可用交易列表通过以下方式生成:通过使用根据预测模型生成的预测分数对每个未结交易的报告单位计数进行修改来计算每个第三方系统的多个未结交易中的每个未结交易的调整后单位计数,该预测模型基于先前已执行未结交易的报告单位计数与已执行的未结交易的已执行的单位计数之间的差生成预测分数;以及将交易请求划分为一个或多个拆分交易请求,每个拆分交易请求与调整后交易记录中的多个未结交易中的未结交易相关联,每个拆分交易的请求单位计数不超过与每个拆分交易相关联的未结交易的调整后单位计数,并且其中每个拆分交易请求对应于提供与每个拆分交易相关联的未结交易的多个第三方系统中的一个第三方系统;将一个或多个拆分交易请求中的每一个发送给对应的第三方系统以供执行,其中对应的第三方系统以每个拆分交易的请求单位计数来执行对应于每个拆分交易的未结交易。

该方法还可以包括:从多个第三方系统中的一个或多个接收执行报告,该执行报告指示与一个或多个拆分交易中的每个拆分交易相对应的未结交易的执行的已执行单位计数。

预测模型还可以通过以下方式生成:针对多个已执行的未结交易中的每一个,确定已执行未结交易的已执行单位计数大于、小于还是等于已执行未结交易的报告单位计数;响应于已执行未结交易的已执行单位计数大于已执行未结交易的报告单位计数,为已执行未结交易生成正的实际分数;响应于已执行未结交易的已执行单位计数小于已执行未结交易的报告单位计数,为已执行未结交易生成负的实际分数;响应于已执行未结交易的已执行单位计数等于已执行未结交易的报告单位计数,为已执行未结交易生成零的实际分数;以及基于为多个已执行未结交易生成的实际分数生成预测模型。

每个已执行未结交易的实际分数可以通过以下方式生成:将第一结果确定为已执行未结交易的报告单位计数与已执行未结交易的请求单位计数中的最小值减1;将第二结果确定为已执行单位计数与第一结果之间的比率;以及将实际分数确定为1与第二结果之间的最小值。

被请求执行但未执行的未结交易可以被赋予零的已执行单位计数。

在第三方系统处执行的未列入未结交易的已执行单位计数可以被添加到具有与未列入未结交易最接近的价值金额的已列入未结交易的已执行单位计数,该未列入未结交易可以是在第三方系统处执行并且未列入调整后交易记录的未结交易,该已列入未结交易可以是在第三方系统处执行并且已列入调整后交易记录的未结交易。

预测模型还可以通过以下方式生成:生成回归模型,该回归模型的输入是从多个桶中采样的实际分数,每个桶包括来自第三方系统的已执行未结交易的实际分数,执行时间戳在桶的新近度范围内,该回归模型生成指示未结交易的实际分数的可能值的预测分数。

多个桶可以包括具有在当前时间戳的小时、日、周和月内的新近度范围的桶。

修改每个未结交易的报告单位计数还可以包括:为该未结交易生成的预测分数加一;以及将未结交易的报告单位计数乘以增加的预测分数以生成未结交易的调整后单位计数。

交易处理系统可以通过从在调整后交易记录中多个未结交易中排名最高的调整后交易记录中选择一个或多个未结交易来将交易请求划分为一个或多个拆分交易请求,选定的一个或多个未结交易的报告单位计数之和可以大于或等于交易请求的请求单位计数,调整后交易记录中的多个未结交易可以根据调整后交易记录中每个未结交易的价值金额排序。

另一实施例涉及作为,在被执行时使上述方法被执行的软件,该软件为计算机可读指令(暂时性的或非暂时性的)。

附图说明

附图(图)1示出了根据实施例的具有交易分析器的示例系统,该交易分析器生成用于基于预测的未结交易执行率来调整交易分布的调整后交易记录。

图2是示出根据实施例的图1的交易分析器的组件的方框图。

图3A是示出根据实施例的生成调整后交易记录的示例的方框图和流程图。

图3B是根据实施例继续图3A中所示示例的方框图和流程图。

图4是描述根据实施例的图1中用于基于预测的未结交易执行率来调整交易分布的组件的示例过程的交互图。

图5是示出根据实施例的用于基于预测的未结交易执行率来调整交易分布的示例过程的流程图。

图6A是示出根据实施例的被记录在可用于图1中描述的系统中的区块链上的交易链的方框图。

图6B是示出根据实施例的可用于图1中描述的系统中的区块链中的多个区块的连接的方框图。

图7是示出根据实施例的示例计算设备的方框图。

仅出于说明的目的,附图描绘并且详细描述描述了各种非限制性实施例

具体实施方式

附图(图)和以下描述仅通过说明的方式涉及优选实施例。本领域技术人员可以将本文公开的结构和方法的替代实施例识别为在不脱离所公开的原理的情况下可以采用的可行替代方案。

现在将详细参考几个实施例,在附图中示出其示例。应注意,只要可行,相似或相同的元件符号可以在图中使用,并且可以指示相似或相同的功能。附图仅出于说明的目的描绘所公开的系统(或方法)的实施例。本领域技术人员将从以下描述中容易地认识到,在不脱离本文描述的原理的情况下,可以采用本文所示的结构和方法的替代实施例。

系统概览

图1示出了根据实施例的具有交易分析器124的示例系统,该交易分析器124生成用于基于预测的未结交易执行率调整交易分布的调整交易记录。系统100包括网络102、一个或多个客户端设备106(通常称为客户端设备/多个客户端设备106)、一个或多个第三方系统108A-N(通常称为第三方系统/多个第三方系统108),每个具有第三方接口112(也称为第三方接口112A-N)。系统100还包括具有未结交易记录存储114的交易处理系统130、存储历史未结交易记录118的未结交易记录历史存储116、存储由智能交易路由器系统128生成的已执行交易122的已执行交易记录历史存储120,以及交易分析器124,用于从各种数据存储接收数据以生成用于智能交易路由器系统128的调整后交易记录存储126。在各种实施例中,系统100可以包括不同的、更少的或附加的组件。系统100中的组件可以各自对应于单独且独立的实体或可以由同一实体控制。

系统100中的元件之间的通信可以经由网络102传输,网络102可以是例如互联网、局域网等。一些元件可以通过一个网络进行通信,而其他元件可以使用单独的网络进行通信。这些单独网络中的每一个都可以类似于网络102。在一个实施例中,网络102使用标准通信技术和/或协议。因此,网络102可以包括使用诸如以太网、702.11、直接微波点对点连接、微波接入全球互操作性(WiMAX)、3G、数字用户线(DSL)、异步传输模式(ATM)、InfiniBand、PCI高速高级交换等。类似地,网络102上使用的网络协议可以包括多协议标签交换(MPLS)、传输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、文件传输协议(FTP)等。通过网络102交换的数据可以使用包括超文本标记语言(HTML)、可扩展的标记语言(XML)等技术和/或格式来表示。此外,所有或一些链接可以使用常规加密技术进行加密,诸如安全套接字层(SSL)、传输层安全(TLS)、虚拟专用网络(VPN)、互联网协议安全(IPsec)等。在另一实施例中,系统110中的元件可以使用定制数据通信技术和/或专用数据通信技术来代替上述技术,或者除了上述技术之外而使用定制数据通信技术和/或专用数据通信技术。例如,网络102可以使用避免元件之间的TCP/IP握手惩罚的精益TCP/IP协议以减少通信延迟。

一个或多个客户端设备106是可以由用户操作的且由用户用作前端设备的计算设备,用户可以利用该前端设备访问由交易处理系统130生成的数据,并且向交易处理系统130提交请求。例如,客户端设备106能够向用户呈现未结交易的列表,并且允许用户提交执行交易的请求。客户端设备106可以是任何计算设备。客户端设备106的示例包括个人计算机(PC)、台式计算机、膝上型计算机、平板计算机、智能电话、诸如智能手表的可穿戴电子设备或任何其他合适的电子设备。

客户端设备106可以各自包括界面104,其可以由交易处理系统130(例如,智能交易路由器系统128)提供的或由客户端设备106执行的计算机可读指令提供。用户能够经由界面104访问数据或在交易处理系统130处可用。此外,用户还能够经由界面104提交交易请求。界面104可以采用不同的形式。在一个实施例中,界面104是可以由交易处理系统130提供的软件应用程序的组件。例如,软件应用程序可以提供可以在客户端设备106处提供的前端用户界面。软件应用程序可以是可以在客户端设备106处获取(例如,下载)并安装或执行的计算机可执行代码的包。在另一实施例中,界面104可以是经由交易处理系统130或其他服务器直接提供的界面。例如,界面104可以是一个或多个网页。界面104可以包括显示各种信息和图形元素的图形用户界面(GUI)。在另一实施例中,界面104可以不包括图形元素但可以经由诸如应用程序接口(API)之类的其他合适的方式与交易处理系统130通信。

第三方系统108A-N各自包括一个或多个计算系统,每个计算系统向交易处理系统130,尤其是未结交易记录存储114提供一个或多个数据馈送(称为数据馈送/多个数据馈送113)。数据馈送110包括关于一个或多个特定数据源的连续更新的信息。数据源可以包含关于在数据馈送110中描述的一些元素的信息,诸如交易(例如,在金融市场做出的订单、零售组织的采购订单、物流更新、运输信息)、新闻(例如,突发新闻)、预测(例如,天气报告)、当前状态(例如,设备状态、公共交通、卫星位置)等。可以使用诸如CSV(逗号分隔值)、XML(可扩展标记语言)等的各种数据格式来提供数据馈送110。可以使用自定义格式提供数据馈送,诸如使用扩展字符集或使用二进制字符,并且可以在传输之前对其中的数据进行加密。

数据馈送110在被提供时可以在一个或多个更新中传输。每个更新可以随着数据的生成而发生,或者可以定期生成。例如,在交易的情况下,数据馈送110中的更新包括描述新的未结交易、对现有未结交易的修改、已执行的交易等的数据条目。每个更新可以具有关于数据馈送110本身的信息(例如,指示数据馈送110正在呈现的数据类型的标识符或符号)、以及关于被描述的元素的信息。例如,在交易的情况下,对应的数据馈送条目可以包括关于交易类型、价值金额、交易时间戳等的信息。通过接收数据馈送更新,接收者计算设备能够确定在数据馈送110中描述的元素的当前状态。例如,在数据馈送110包括关于交易的信息的情况下,数据馈送110的接收者允许系统确定由数据馈送描述的交易的完整状态,即确定包括这些交易的市场/交易所的当前状态。

每个第三方系统108还可以可选地包括第三方系统接口112,其允许第三方系统108外部的计算系统访问在第三方系统108处生成或存储的数据,诸如数据馈送110。第三方系统接口112可以向外部系统呈现标准化的数据访问方法,诸如经由使用应用程序接口(API)或其他已知或明确定义的过程。这些标准化数据访问方法还可以允许诸如交易处理系统130之类的外部系统向第三方系统108进行认证。标准化数据访问方法可以遵守REST(代表性状态转移)约束条件。

交易处理系统130包括一个或多个计算系统,其被配置成处理从第三方系统108接收的数据,将该信息提供给用户(例如,客户端设备106的用户),并且经由客户端设备106执行由用户请求的交易。交易处理系统130可以包括未结交易记录存储114、未结交易记录历史存储116、已执行交易记录历史存储120、智能交易路由器系统128、交易分析器124、以及调整后交易记录存储126。然而,在其他实施例中,这些组件可以与交易处理系统130分开并且可以在单独的计算系统内执行,这些计算系统经由网络102或经由一些其他连接(例如,高速互连)进行连接。

未结交易记录存储114处理来自第三方系统108的数据馈送110的更新,并且将这些更新本地存储为汇总记录,该汇总记录包括来自所有第三方系统108的多个数据馈送110的信息,未结交易记录存储114从该第三方系统接收信息。特别地,未结交易记录存储114基于在来自数据馈送110的更新中接收到的数据条目来保持本地版本的数据馈送110。这些数据条目可以指示已经创建的新的未结交易、对现有开放的修改交易、或已执行的未结交易。这种未结交易是可以根据用户或其他实体的请求执行的交易。在从数据馈送110接收到更新时,未结交易记录存储114更新在未结交易记录存储114处存储在本地存储版本的数据馈送110中的未结交易列表。本地存储版本的数据馈送110可以是从所有数据馈送110接收的所有数据的汇总,而不是仅来自单个数据馈送110的数据。在一个实施例中,该汇总记录存储来自单个目标的所有数据馈送110的所有信息。该目标是与该汇总记录中的所有数据相关的指示符,并且可以在从数据馈送110接收的更新中指示。例如,目标可以是加密货币的标识符。

汇总记录中指示未结交易的每个条目还包括价值金额、报告的单位计数、时间戳和交易流向。价值金额指示该未结交易数据条目的目标的价值金额。报告的单位计数指示该价值金额的目标单位计数。时间戳指示第三方系统108接收到未结交易的时间,该第三方系统提供数据馈送110,从该数据馈送接收到未结交易的信息。交易流向指示交易的流向,无论是流入还是流出。这可以分别对应于买入或卖出。因此,目标“B”的汇总记录中的一个条目可以指示价值金额“1000”,报告的单位计数为“5”,交易流向为流入。这可以对应于可供执行的未结交易以1000的价值金额获得5个单位的目标B。在这种情况下,用户可以请求执行该未结交易。在执行时,用户可以将目标指示的项目的5个单位转移给将该特定未结交易分派给第三方系统108中的一个的用户。作为交换,该用户接收该交易的价值金额5000。如果交易流向为流出,则执行未结交易将导致用户接收5个单位的目标“B”,每个单位的价值金额为1000。用户必须将价值金额5000转移给提交未结交易的外部用户。

未结交易记录存储114中的未结交易条目还可以基于一个或多个参数进行排序。在一个实施例中,根据未结交易中指示的价值金额对未结交易进行排序。对于流出交易流向的未结交易,可以将金额最低的未结交易排在第一位。对于具有流入交易流向的未结交易,可以将金额最高的未结交易排在第一位。如果两个未结交易的价值金额相同,还可以进一步根据时间戳进行排序,时间戳最久的未结交易排序最高。

在一些情况下,未结交易记录存储114可以从数据馈送110接收数据条目,该数据条目指示对现有未结交易的修改。在这种情况下,未结交易记录存储114可以根据数据馈送条目中的指令修改现有未结交易。该修改可以包括对存储在未结交易记录存储114中的未结交易中的任何值的修改,诸如价值金额、报告的单位计数等。从数据馈送110接收的数据条目还可以指示交易被执行(即,被填充)。在这种情况下,未结交易记录存储114可以从汇总记录中移除未结交易条目。

因此,未结交易记录存储114存储一个或多个汇总记录,每个记录存储关于特定目标的未结交易,并且每个汇总记录存储从来自多个第三方系统108的多个数据馈送110接收的未结交易。未结交易记录存储114的汇总记录可以被存储在可以由交易处理系统130的其他组件访问的共享存储空间中。

未结交易记录历史存储116存储历史版本的未结交易记录存储114。未结交易记录历史存储116可以存储未结交易记录存储114的新副本,即新的历史未结交易记录118,用于对未结交易记录存储114进行的每次改变。替代地,未结交易记录历史存储116可以根据时间表来周期性地(例如,每秒一次)存储未结交易记录存储114的新的历史未结交易记录118。在一个实施例中,每小时创建至少一个历史未结交易记录118。历史未结交易记录118可以被存储为差异副本,即,每个新副本仅存储来自先前副本的改变。未结交易记录历史存储116可以被存储在基于磁盘的数据库中。每个历史未结交易记录118可以具有唯一标识符、时间戳和其他元数据,诸如副本的交易目标、副本与先前副本相比的变化数量等。

已执行交易记录历史存储120存储已执行交易记录122,这些已执行交易记录是已被用户(诸如客户端设备106的用户)请求执行的交易。这些已执行交易是在已请求执行的未结交易记录中列出的未结交易存储114。交易可以由用户直接请求,或者经由路由系统,诸如智能交易路由器系统128,其将来自用户的交易请求路由到多个未结交易以供执行。一旦执行,根据上述未结交易中指示的参数(例如,价值金额、报告的单位计数、交易流向、目标),发生在未结交易中指示的交易。交易可以涉及两个实体,其中一个实体可以是连接到交易处理系统130的客户端设备106的用户。

每个已执行交易记录122包括关于通过存储未结交易的副本或对未结交易的引用,例如,对存储在未结交易记录历史存储116中的未结交易的引用而被执行的未结交易的信息。此外,已执行交易记录历史存储120为每个已执行交易记录122存储已执行单位计数。已执行单位计数是交易中执行的实际单位计数,并且可能与未结交易中指示的报告单位计数不同。每个已执行交易记录122还存储所请求的单位计数,其对应于在执行未结交易时所请求的单位计数。未结交易的请求单位计数可以小于或等于该未结交易的报告单位计数,并且指示用户或其他实体希望从未结交易中可用的单位计数进行交易(如由报告单位计数指示)。

在一个实施例中,执行未结交易的请求可以作为单个汇总请求传输到第三方系统108,而不是针对由第三方系统108经由其数据馈送110报告的个体未结交易。在这种情况下,单个汇总请求可以具有各种参数,包括汇总请求单位计数(即,在汇总请求中请求执行的总单位计数)、以及价值金额(和交易流向)。然后第三方系统可以通过执行与请求匹配的未结交易来执行该请求,直到所有已执行交易的已执行单位计数与请求中的请求单位计数相匹配为止。此外,取决于交易流向流入还是流出(例如,买入或卖出),执行的未结交易的价值金额应大于或小于请求中指定的价值金额。在这种情况下,已执行交易记录122可以存储关于已执行的未结交易的信息,并且还指示在已执行交易中导致的单个汇总请求的参数。

虽然通常执行未结交易记录存储114中列出的未结交易的请求是成功的,但在一些情况下,执行的结果可能是意外的。例如,在一些情况下,所执行的交易可以是未在未结交易记录存储114中列出的交易。可以向第三方系统108提出未结交易的请求。然而,第三方系统108可以实际执行隐藏的未结交易,它比最初请求执行的未结交易具有好的价值金额或早的时间戳或其他高的排名。然而,由于该未结交易是隐藏的,所以它没有在数据馈送110更新中提供给未结交易记录存储114。因此,直到实际执行该未结交易才可知晓关于该未结交易的知识。在这种情况下,该交易的已执行交易记录122将不具有对未结交易记录历史存储116中的对应未结交易的引用。这种类型的隐藏未结交易也可以称为隐藏订单。

此外,在一些情况下,被选择以执行的未结交易实际上可能不会由提供该未结交易的数据馈送信息的对应第三方系统108执行,因为它不是有一方愿意提供交易的真正未结交易。这种类型的未结交易可以在数据馈送110中报告,并且具有以编程方式或人工生成的数据,诸如价值金额等。例如,这种未结交易内的数据可以基于该数据馈送110中列出的并且在第三方系统108处可用的其他未结交易。一旦第三方系统108处的其他未结交易被执行,以编程方式生成的未结交易可能会改变其数据,因此它可能是可能永远不会实际执行的未结交易,因为它的数据可能被设置为永远不会是第三方系统108可用的排名最高,即最理想的未结交易。然而,它确实改变了第三方系统108处明显的或感知的未结交易。这种类型的未结交易也可以被称为挂钩订单。

由于从数据馈送110接收到的一些列出的未结交易不准确,或者由于数据馈送110并不总是显示第三方系统108处所有可用未结交易的完整图片,因此请求执行任何未结交易可能会导致与初始请求不同的实际结果。这是意外的结果,并且是不合需要的。这些意外结果可能在某些第三方系统108中更为常见,诸如以加密货币进行交易的那些系统(即,具有记录在区块链上的账本的货币)。每个第三方系统108可以具有不同数量的隐藏或以编程方式生成的未结交易,因此,如下所示并且在图2中进一步详细说明,交易分析器可以分析已执行交易记录122的历史和历史未结交易记录118以确定来自第三方系统108的数据馈送110信息具有不准确信息的可能性,并且调整未结交易记录存储114以生成调整后交易记录存储126,其可以更准确地反映可用于在每个第三方系统108处执行的实际未结交易。智能交易路由器系统128可以使用调整后交易记录存储126来请求执行调整后交易记录存储126中指示的调整后的未结交易。这导致所执行的交易具有匹配在调整后交易记录存储126中列出的未结交易的更高可能性,从而在执行交易时减少意外或执行不需要的交易的几率。

因此,交易分析器124基于已执行交易记录历史存储120和未结交易记录历史存储116生成调整后交易记录存储126。为此,交易分析器124分析一个或多个(最近)未结交易,例如通过从已执行交易记录历史存储120检索这些交易(即,已执行交易记录122)来执行这些交易。交易分析器124可以包括多个进程线程,每个线程的任务是分析单个交易目标的已执行交易。从这些已执行交易中,交易分析器124确定它们中有多少被执行,使得执行的单位计数与对应的未结交易的请求的单位计数相匹配。如上所述,请求的单位计数是为该未结交易请求的单位计数,并且小于或等于该未结交易的报告单位计数,而已执行的单位计数是在请求以请求的单位计数执行未结交易时进行交易的实际单位计数。为这些已执行交易中的每一个生成实际分数,指示已执行单位计数是否与已执行单位计数相匹配。在一个实施例中,如果已执行单位计数与请求单位计数相匹配,则实际分数为0,如果已执行单位计数小于请求单位计数,则实际分数大于或等于-1且小于0,以及如果已执行单位计数大于请求单位计数,则实际分数小于或等于1且大于0。这些实际分数可以被存储在未结交易记录历史存储116中或单独的数据库中。

在分析一个或多个最近执行的交易并为每个执行的交易生成实际分数之后,交易分析器124从多个桶内的每个单独第三方系统108的已执行交易中采样实际分数。每个桶对具有特定新近度(例如,前一小时、前一天等)内的执行时间戳的交易进行分组。该数据用作预测模型(诸如回归模型)的特征输入,以生成一个或多个预测分数,这些分数预测未来在同一第三方系统108(并且在一些情况下,对于相同的目标)执行的交易的实际分数的可能值。换句话说,预测分数预测未结交易,如果被执行,将会使执行的单位计数超过、等于或小于报告的单位计数(或请求的单位计数)的可能性。使用这些预测分数,交易分析器124修改未结交易记录分数114,例如使用乘积,以生成调整后交易记录存储126。具体地,交易分析器124根据生成的预测分数来修改/调整在未结交易记录存储114中指示的未结交易的报告单位计数。如果针对该未结交易提出请求,则这些针对未结交易的调整后的单位计数可以更准确地反映最大执行单位计数可能是多少。调整后的单位计数可能小于或大于未结交易的报告单位计数。然而,通过更接近于实际执行的单位计数,调整后的单位计数可以更准确地预测在第三方系统处执行任何未结交易的任何请求的结果,并且有助于避免关于如上所述以编程方式生成的未结交易和隐藏未结交易的问题。

如上所述,调整后交易记录存储126存储具有调整后单位计数的调整后的未结交易,交易分析器124根据对应的未结交易的原始报告单位计数修改了该单位计数。调整后交易记录存储126可以被存储在与交易分析器124共享的存储器中,以允许交易分析器124进行低延迟访问。来自交易分析器124的针对由未结交易记录存储114接收的新未结交易的一组新的调整单位计数的每次更新可以被分配唯一标识符,该唯一标识符可以与更新一起存储,并且还可以使用散列表或其他索引来引用。这些更新可以经由单个进程/线程来更新,以避免可能由由于多个线程引起的竞争条件引起的问题。因此,可以将来自交易分析器124的任何更新放置在单个队列中以进行串行处理。调整后交易记录存储126的格式、排名和其他特征可以类似于未结交易记录存储114。

智能交易路由器系统128将执行在未结交易记录存储114或调整后交易记录存储126处列出的未结交易的任何请求路由到第三方系统108,使得被选择用于执行的未结交易最佳地被选择并且被分布在各种第三方系统108中。

如上所述,交易分析器124修改未结交易记录存储114以生成调整后交易记录存储。诸如用户(经由客户端设备106)之类的请求实体、单独的计算设备或可执行程序可能能够直接选择在调整交易记录存储128中列出的调整未结交易并且请求执行这些交易。在这种情况下,智能交易路由器系统128可以将请求实体所指示的请求传送到与所选调整后未结交易相对应的第三方系统108,并且使第三方系统108执行所选交易。请求实体可以指示请求的单位计数,该单位计数不同于选定的调整后未结交易的调整后单位计数。

替代地,请求实体可以改为将汇总请求发送到智能交易路由器系统128。类似于向第三方系统做出的汇总请求,汇总请求可以包括汇总单位计数、交易流向和可选的价值金额、以及交易目标。然而,对智能交易路由器系统128的汇总请求可以针对一个以上的第三方系统108。智能交易路由器系统128在接收到该汇总请求后,访问调整后交易记录存储126并且识别与交易目标对应的调整后的未结交易条目和指示的交易流向。类似于未结交易记录存储114中的未结交易条目的这些调整后的未结交易条目根据它们的指示价值金额和它们的时间戳进行排序,如上面参考未结交易记录存储114所描述。智能交易路由器系统128选择排名最高的那些调整后的未结交易条目,使得在选定的调整后的未结交易条目中指示的调整后的单位计数之和满足或超过汇总请求的所请求的汇总单位计数。智能交易路由器系统128还可以确定这些调整后的未结交易条目中指示的价值金额没有超过由价值金额设置的阈值(即,大于或等于流入交易流向的价值金额,并且小于大于或等于流出交易流向)。由智能交易路由器系统128选定的未结交易也可以称为拆分交易,因为它们是从汇总请求中拆分出来的。

智能交易路由器系统128向第三方系统108传输与选定的调整后的未结交易条目(即,拆分交易)相对应的请求。这些是在数据馈送110中提供关于未结交易的信息的第三方系统108,这些信息被调整以生成选定的调整后的未结交易条目。智能交易路由器系统128提交请求以执行对应于选定的调整后的未结交易条目的未结交易。与每个未结交易相关联的请求包括与由交易分析器124为该未结交易生成的调整后单位计数相匹配的请求单位计数。如果汇总单位计数小于选定的调整后的未结交易条目的调整后单位计数之和,则智能交易路由器系统128可以减少选定的调整后的未结交易条目中排名最低的调整后的未结交易条目的请求单位计数,使得该排名最低的条目的请求单位计数等于从汇总单位计数中减去所有其他选定的调整后的未结交易条目的调整后单位计数后的剩余单位计数数。这样的方法允许智能交易路由器系统128选择具有排名最高的那些未结交易,因此选择最佳价值金额(如所指出的,取决于交易流向而不同)。因此,当多个第三方系统108提供关于未结交易的信息时,智能交易路由器系统128选择要做出的请求的最佳分布,以实现基于用户价值金额的最佳选择。

在提交执行未结交易的请求之后,智能交易路由器系统128从第三方系统108接收具有请求结果的响应,诸如执行报告或日志。对于请求执行的每个未结交易,来自第三方系统108的响应指示已执行交易的已执行单位计数,即,在交易中实际处理了多少交易目标单位。对于每个已执行交易,智能交易路由器系统128还可以接收该交易的标识符、价值金额、交易流向和其他信息。智能交易路由器系统128将每个已执行交易的这些结果和其他元数据存储在已执行交易记录历史存储120中作为已执行交易记录122。如上所述,这些可被交易分析器124使用以生成对调整后交易记录存储126的更新。每次智能交易路由器系统128在已执行交易记录历史存储120中存储新的执行的交易时,交易分析器124可以生成对调整后交易记录存储126的更新。

在一个实施例中,智能交易路由器系统128可以进一步限制基于到智能交易路由器系统128的地理距离而被选择用于执行交易的第三方系统108,因为到地理上更远距离的第三方系统108的附加延迟可能导致与希望执行在第三方系统108处可用的未结交易的其他实体的竞争条件。

智能交易路由器系统128可以是单线程进程,这允许它在请求执行未结交易时避免竞争条件,以便确保不同的请求被按顺序处理。

系统100还可以可选地包括一个或多个区块链(未示出),其可以被网络102上的元件访问以在区块链上记录已执行交易。例如,数据馈送110可以包括关于具有被记录在各种区块链上的交易账本的各种加密货币之间的汇率的数据。通过访问交易处理系统130以请求执行未结交易的客户端设备106可能能够看到关于所有数据馈送110的信息,并且因此看到这些加密货币的汇率。随后,用户能够使用客户端设备106来请求执行这些未结交易以兑换这些各种加密货币。在完成交易时,第三方系统108、交易处理系统130或一些其他实体可以将交易提交到对应的区块链以通过将它们记录到相应的区块链账本来实现交易的完成。区块链可以是公共区块链。公共区块链网络可以包括多个节点,这些节点协作验证交易并且生成新区块(其可以记录有关加密货币的交易信息)。在区块链的一些实现方式中,新区块的生成也可以称为挖矿过程。区块链可以支持智能合约,智能合约是当满足一个或多个条件时可执行的一组代码指令。当被触发时,这组代码指令可以由诸如区块链的虚拟机之类的计算机执行。在本文中,计算机可以是常规意义上的单个操作单元(例如,单个个人计算机),或者可以是协作执行代码指令的一组分布式计算设备(例如,虚拟机或分布式计算系统)。这种公共区块链平台的示例包括比特币、以太坊、EOS、NEO、CARDANO、STELLER等。下面参考图6A至图6B描述关于区块链的属性的附加细节。

示例交易分析器

图2是示出根据实施例的图1的交易分析器124的组件的方框图。在图2所示的实施例中,交易分析器124包括(可选地)分数数据库210、实际分数生成器215、预测分数回归模型220、预测分数生成器225、回归模型生成器230、调整后记录生成器240和用户界面(UI)生成器245。交易分析器124的功能可以以不同于所描述的方式分布在不同的组件之间。另外,在各种实施例中,交易分析器124可以包括不同的、更少的和/或附加的组件。下面参考图3A至图3B进一步描述附加细节,包括生成调整后的记录交易存储的过程的示例执行。

在一个实施例中,分数数据库210存储在生成调整后交易记录存储126的调整后的未结交易过程中由实际分数生成器215生成的分数。分数数据库210还存储由预测分数生成器225生成的预测分数,该预测分数生成器用于修改未结交易记录存储114中的未结交易的报告单位计数。分数数据库210还可以存储生成调整后的未结交易所需的其他元数据和信息,诸如时间戳、交易目标信息、第三方系统的未结交易的级别(即,排名)等等。分数数据库210中的每个条目可以由唯一标识符编入索引以允许快速检索。此外,可以根据条目的时间戳的新近度对条目进行索引,将条目索引到各种新近度范围内,例如,过去一小时、过去一天、过去一周和过去一个月,使得可以轻松地从特定新近度范围中采样实际分数和其他数据。例如,为过去一小时内执行的交易计算的实际分数可以被分配特定的索引值,而那些在过去一天内的可以被分配另一索引值。可以简单地通过引用该新近度范围的特定索引值来从这些新近度范围中的一个中采样实际分数。在一个实施例中,分数数据库210可以被存储在未结交易记录历史存储116中,其中计算出的实际分数参考从中计算它们的未结交易来存储。

实际分数生成器215根据从已执行交易记录历史存储120访问的执行交易来生成实际分数。在智能交易路由器系统128向它们各自的第三方系统108传输一组待执行的未结交易后,第三方系统随后响应指示在执行该未结交易后执行的单位计数的报告或其他响应。如上所述,在一些情况下,由于第三方系统108报告的未结交易与第三方系统108的实际可用未结交易不匹配,所以已执行的单位计数可不同于请求的单位计数。实际分数生成器215为这些执行的交易中的每一个生成实际分数以量化交易的已执行单位计数与请求单位计数之间的差,使得与第三方系统108的未来交易可以更准确地预测实际执行单位计数。

在一个实施例中,对于每个执行的交易,实际分数生成器215计算实际分数为:

[实际分数]=min(1,[执行计数]/min([报告计数],[请求计数]-1) (1)

在本文中,[执行计数]是已执行交易的实际执行单位计数(目标的单位)。[报告计数]是从数据馈送110接收的且存储在未结交易记录存储114中的对应未结交易数据中的报告单位计数。[请求计数]是智能交易路由器系统128在请求执行未结交易时请求的请求单位计数。函数min([],[])输出输入到函数中的两个值中的最小值。等式(1)的结果是生成以下分数,则:1)如果已执行单位计数小于请求的单位计数,则该分数大于或等于-1且小于0,2)如果已执行单位计数等于请求的单位计数,则该分数等于0,以及3)如果已执行单位计数超过请求的单位计数,则该分数大于0且小于或等于1。

如上所述,虽然在一些情况下智能交易路由器系统128可以选择单独的未结交易以在第三方系统108处执行,但是在一些情况下可以向第三方系统做出汇总请求。在这种情况下,[请求计数]不是汇总单位计数,而是基于在第三方系统的调整后交易记录存储126(或未结交易记录存储114)中列出的排名最高的未完成交易中划分汇总单位计数来计算的请求计数。为了划分汇总单位计数,实际分数生成器215将未结交易的调整后的报告单位计数相加,从选择排名最高的未结交易开始,然后依次选择排名较低的未结交易,直到选定的未结交易的调整后的报告单位计数之和与汇总单位计数匹配或超过汇总单位计数为止。实际分数生成器215将这些未结交易中的每一个的请求计数设置为未结交易的调整报告单位计数。对于选定的未结交易中的最后一个排名最低的未结交易,实际分数生成器215将请求计数设置为汇总单位计数的值减去选定的未结交易的调整报告单位计数之和,不包括该最后一次未结交易。期望第三方系统108将通过执行与所选列表中的那些交易相对应的未结交易来执行汇总请求。

在一些情况下,第三方系统108可能实际上不执行由智能交易路由器系统128提交的未结交易,因为该未结交易实际上并不存在(例如,它以编程方式创建或被其他人请求执行)。在这种情况下,该未结交易的已执行单位计数被设置为零。

在一些其他情况下,第三方系统108可以通过执行未向交易处理系统130显示的隐藏的未结交易来执行对未结交易的请求。如果该隐藏的未结交易具有与请求执行的未结交易中的一个相同的值编号,则在计算执行单位计数时与该未结交易合并。虽然报告的单位计数和请求的单位计数没有变化,但已执行单位计数将包括非隐藏未结交易的已执行单位计数与隐藏未结交易的已执行单位计数相加。如果隐藏未结交易的价值金额与调整后交易记录存储126中指示的任何未结交易的价值金额不同,则实际分数生成器215可以将被执行的隐藏未结交易的已执行单位计数与具有紧随已执行的隐藏未公开交易的价值金额排名之后的价值金额的未结交易的已执行单位计数合并。因此,例如,如果执行的隐藏未结交易的价值金额为3400.5,并且该隐藏未结交易的已执行单位计数为1.2,则它将与下一个排名较低的价值金额的未结交易的已执行单位计数合并,在本示例中可能是3401(对于流出交易流向)。

在计算出已执行交易的实际分数后,实际分数生成器215将计算出的实际分数存储在分数数据库210中。附加信息,诸如交易目标、价值金额、交易流向、标识符、时间戳和其他细节可以由实际分数生成器215与计算的实际分数一起存储。实际分数生成器215还存储已执行交易的级别(即,“梯级(rung)”),该级别指示该第三方系统的已执行交易按价值金额的排名(例如,级别0将是排名最高,级别1是下一最高排名,依此类推)。具有相同的价值金额但具有不同的时间戳的已执行未结交易或未结交易被分配相同的级别。实际分数生成器215还可以基于其新近度或时间戳为该计算的实际分数计算索引,使得基于时间戳的未来检索可以快速发生。虽然实际分数生成器215可以在执行的未结交易被执行时为它们生成实际分数,但是在其他实施例中,实际分数生成器215可以为已执行未结交易离线、定期、批量或根据另一个时间范围生成实际分数。在这种情况下,实际分数生成器215可以从未结交易记录历史存储116中检索较早的未结交易的报告单位计数和其他相关数据,以便为这些交易生成实际分数。

预测分数回归模型220是用于基于由实际分数生成器215计算的实际分数来生成一个或多个预测分数的模型。虽然本文被描述为回归模型,但是预测分数回归模型220可以是任何类型的预测模型或算法。由预测分数回归模型220生成的预测分数是基于对先前收集的实际分数的分析,如果该未结交易被执行,则该未结交易的实际分数将是多少的预测。因此,预测分数回归模型220的输入包括先前收集的实际分数,并且输出是指示未结交易的实际分数的可能值的预测分数。在一个实施例中,预测分数回归模型220不是为每个未结交易生成预测分数,而是为每个第三方系统的未结交易的每个未结交易级别生成预测分数,如该第三方系统108的数据馈送110所指示。

在一个实施例中,预测分数回归模型220的输入包括从某个级别的已执行交易中采样的实际分数,这些实际分数来自单个第三方系统108。这些采样的实际分数是从具有从各种新近度范围(诸如过去一小时、过去一天、过去一周和过去一个月)的未结交易生成的实际分数的桶中采样的。

预测分数生成器225从不同新近度范围的不同实际分数桶中采样实际分数,并且使用预测分数回归模型220为每个第三方系统生成每个级别的预测分数。一个或多个实际分数可以从这些桶中的每一个中采样,并且可以使用预测分数生成器225的一些函数来组合来自每个桶的采样的实际分数。例如,可以每小时从这些桶中的每一个中采样一个实际分数,并且可以使用平均函数来组合为每个桶采样的实际分数。在为每个桶生成单个组合的实际分数之后,预测分数生成器225将这些输入馈送到预测分数回归模型220中来为第三方系统108的对应级别的未结交易生成预测分数。预测分数生成器225对每个交易目标的每个第三方系统的不同级别以及不同的第三方系统重复此操作。还可以为每种类型的交易流向生成不同的预测值。预测分数生成器225还可以随时间周期性地更新该预测分数(例如,一旦时间等于具有最小时间范围的桶的时间范围)。在生成预测分数之后,预测分数生成器225将这些预测分数发送到调整后记录生成器240以生成调整后交易记录存储126。最初,如果没有实际分数或实际分数不足以可用于输入到模型中,则预测分数生成器225可以生成零的预测分数。

回归模型生成器230生成预测分数回归模型。在一个实施例中,预测分数回归模型220是通过将实际分数回归到历史实际分数上来生成的。例如,回归方程可以是:

SP=c+b1[Prev_hour SA]+b2[Prev_day SA]+b3[Prev_week SA]+b4[Prev_monthSA] (2)

本文中,SP是预测分数,而SA是从指定桶中采样的实际分数。例如,Prev_hour指示前一小时的一桶实际分数,而Prev_day指示前一天的一桶实际分数。如上所述,在每个桶中采样的实际分数可以是在特定间隔采样的多个采样实际分数的平均值。回归模型生成器230使用已执行交易的实际分数,然后基于该已执行交易的时间戳选择新近度桶。回归模型生成器230使用在这些桶中指定的范围内的对应时间戳对实际分数进行采样。使用多个样本,然后回归模型生成器230训练回归模型以生成回归模型系数b1、b2、b3、b4等。

在一个实施例中,可以使用额外的自变量来训练模型,诸如在所有执行的交易中交易目标的平均交易量和平均波动率。也可以为每个桶(例如,由预测分数生成器225)计算这些,并且用作模型中的输入。这些额外的自变量也可以被存储在分数数据库210中。

在另一实施例中,其他建模技术可以与这些输入和输出变量一起使用,诸如主成分分析、神经网络等。

调整后的记录生成器240使用每个第三方系统108的每个级别的未结交易的预测分数来修改未结交易记录存储114。在一个实施例中,调整后的记录生成器240采用为特定级别生成的预测分数、交易目标、交易流向和第三方系统,并且通过预测分数修改具有相同级别、交易目标、交易流向且来自同一第三方系统的未结交易的对应报告单位计数,以便生成调整后的单位计数。在一个实施例中,修改是:[报告单位计数]*(1+[预测分数])。因此,如果预测分数为0,并且报告的单位计数为5,则调整后的单位计数为5。当预测分数小于零时,调整后的单位计数将低于报告的单位计数。替代地,如果预测分数大于零,则调整后的单位计数大于报告的单位计数。因此,基于已执行单位计数将大于、小于或等于请求的单位计数的可能性按比例调整调整后的单位计数。下面参考图3A至图3B描述这个过程的示例。

UI生成器245生成图形用户界面,例如界面104,其将关于从第三方系统108(例如未结交易记录存储114,以及由交易分析器124生成的修改的调整后交易记录存储126)接收的数据的信息呈现给用户,例如客户端设备106的用户。UI生成器245可以呈现来自用于每个交易目标和交易流向的调整后交易记录存储126(或未结交易记录存储114)的排名最高的值,将来自所有第三方系统108的每个交易目标和流向的未结交易汇总到单个列表中。UI生成器245可以在从第三方系统108更新新数据并且生成新的调整后单位计数时实时更新用户界面。在一个实施例中,UI生成器245在客户端设备106上而不是在交易处理系统130上执行。

从远程数据馈送进行本地版本更新的示例过程

图3A是示出根据实施例的生成调整后交易记录的示例的方框图和流程图。所示示例中的操作可以由交易处理系统130执行。然而,在其他实施例中,这些操作可以由其他组件执行,诸如客户端设备106。

在(1)处,交易处理系统130从第三方系统108的数据馈送110接收310馈送数据。在所示示例中,示出了三个第三方系统312A-C。来自每个第三方系统312的数据馈送包括关于交易目标的信息,包括报告的单位计数314(特别是单位计数314A-C)和价值金额316(特别是价值金额316A-C)。如上所述,这些指示未结交易的报告单位计数和伴随的价值金额。因此,所示馈送中的每一行都是可供执行的未结交易。

在(2)处,向交易处理系统130发出执行汇总单位计数为10的汇总交易的请求。交易处理系统130在多个第三方系统312处执行320所请求的交易,例如,经由智能交易路由器系统128。如上所述,智能交易路由器系统128通过在按价值金额排序的各种第三方系统312之间划分请求来执行汇总请求。这导致执行交易的各种请求被传输到第三方系统312A-C。本文中,这些可以包括,1)对于第三方系统312A:值3400为1个单位、值3401为0.5个单位,并且值3402为2个单位;2)对于第三方系统312B:值3401为0.5个单位,值3402为1个单位,值3403为1.5个单位,并且值3404为1个单位;3)对于第三方系统312C:值3400为0.5个单位,值3402为1个单位,并且值3404为1.5个单位。

在如所指示的那样提交执行未结交易的请求之后,交易处理系统130从第三方系统312A-C接收330一个或多个响应,例如在执行报告中指示执行的结果。执行报告可以在第三方系统响应332A-C中呈现。本文中,由于在第三方系统312A-C中列出的一些未结交易被隐藏或以编程方式生成,因此请求的一些未结交易未执行,或者未以与该交易的请求的单位计数相同的已执行单位计数执行。例如,第三方系统312B仅报告三个未结交易的执行,而向第三方系统312B发出四个请求以执行四个未结交易。这可是由于执行未结交易的请求中的一个是对以编程方式生成的未结交易的请求,该交易在执行其他未结交易中的一个之后更改了其值。值的更改导致它不再与最初请求的未结交易匹配,因此没有被执行。

交易处理系统130从第三方系统获取执行响应并且在(4)处基于已执行单位计数、报告的单位计数和请求的单位计数之间的差来计算340实际分数342A-C。在图示的示例中,交易处理系统130使用上面的等式(1)。这导致生成各种实际分数。请注意,未执行针对未结交易的某些请求。在这些情况下,为了计算这些交易的实际分数,已执行单位计数为零。这些未执行的未结交易的计算以斜体指示。第三方系统312A的实际分数342B具有这些中的一个,而第三方系统312C的实际分数342C具有这些中的两个。

图3B是根据实施例的继续图3A中所示示例的方框图和流程图。

现在参考图3B,在(5)处,交易处理系统130可以存储350生成的实际分数,例如,在分数数据库210或未结交易记录历史存储116中。如图所示,对于每个第三方系统,这些可以包括指示在特定时间戳352为目标351生成的实际分数356的条目,用于特定级别353的价值金额。还存储在条目中的是原始未结交易的报告单位计数354、以及任何先前预测的分数355(如果尚未预测分数,则可以将其设置为零)。下面进一步详述预测分数的生成。

在生成多个实际分数之后,在(6)处,交易处理系统130根据生成的实际分数计算360历史分数。这些可以被划分为在各种时间段(time bucket)361上收集的分数,这些分数指示最近的时间段,诸如前一小时、前一天、前一周或前一个月。第三方系统的每个级别362和交易目标的实际分数364可以从为每个桶指示的时间段内采样并且取平均值,并且作为实际分数364连同平均报告的单位计数363存储在所示表中,该平均报告的单位计数是对应时间段内报告的单位计数(也可以采样)的平均值。

如图所示,本文的历史分数是针对单个级别(例如,级别0)、单个交易目标和单个第三方系统的。然而,在实践中,会针对不同级别、目标和第三方系统存储多个历史分数。可以在每次生成一组实际分数时生成一组新的历史分数,或者可以周期性地生成历史分数。历史分数可以被存储在分数数据库210或未结交易记录历史存储116中。

在(7)处,历史分数用于对预测分数进行建模370。这可以根据以上参考回归模型生成器230描述的过程发生。本文中,对于第三方系统的未结交易的每个级别371,生成预测分数372。如上所述,该分数指示执行的单位计数与报告的或请求的单位计数有偏差的可能性。例如,在所示示例中,级别0的预测分数为0。这表明该目标和第三方系统在级别0的未结交易的已执行单位计数可能与报告的单位计数没有区别。然而,在级别1,预测分数为1,表明已执行单位计数可能超过报告的单位计数。

在对预测分数进行建模之后,在(8)处,交易处理系统130可以使用预测分数来修改380由第三方系统报告的未结交易的报告单位计数。在所示的示例中,第三方系统312A的报告单位计数由预测分数修改(例如,通过将报告单位计数与1+预测分数相乘)以生成每个级别的调整后单位计数381(其中每个级别指示不同排名的价值金额382),如在调整后记录381中所指示。这随后被使用以便例如通过智能交易路由器系统128向各种第三方系统请求未结交易的执行。

示例交互图

图4是描述根据实施例的图1中用于基于预测的未结交易执行率来调整交易分布的组件的示例过程的交互图。虽然某些操作与所示的某些元素相关联,但在其他实施例中,不同的元素可以执行不同的操作。

最初,交易分析器124可以更新410调整后交易记录存储126。如上所述,这允许将未结交易的报告的单位计数修改为调整后的单位计数,这可以更准确地表示第三方系统108中未结交易的实际单位计数。

智能交易路由器系统128还从第三方系统108接收412交易请求以执行一个或多个未结交易。这可以是从授权客户端设备接收的请求。为了执行这些交易,智能交易路由器系统128可以从调整后交易记录存储126中检索414调整后交易记录。随后,智能交易路由器系统128可以基于调整后交易记录以如上详述的方式执行416请求的交易。在执行交易之后,智能交易路由器系统128用已执行交易的结果更新418已执行交易记录历史存储120。

同时,第三方系统108向未结交易记录存储114发送420数据馈送更新。这些是对未结交易和来自第三方系统108的其他数据的更新,它们被本地存储在未结交易记录存储114处,如上所述。交易分析器124从未结交易记录存储114中检索422未结交易,并且进一步检索424历史记录,包括来自已执行交易记录历史存储120的已执行未结交易以及为先前接收到未结交易计算的实际分数和其他数据,其可以被存储在未结交易记录历史存储116中,或在分数数据库210中,或两者中。交易分析器124基于预测分数的模型(例如,预测分数回归模型220)计算新的预测分数或更新的预测分数,并且使用这些预测分数来修改来自未结交易记录存储114的报告的单位计数以生成调整后交易记录存储126,如上详述。

同时,智能交易路由器系统128接收430执行交易的第二请求,并且基于更新的调整后交易记录来执行432这些交易。

示例流程

图5是示出根据实施例的用于基于预测的未结交易执行率来调整交易分布的示例过程的流程图。在一个实施例中,所示操作由交易处理系统130执行。

交易处理系统130接收510交易请求以执行包括请求计数的交易。这可以是来自客户端设备的请求并且可以是汇总请求。该请求使交易处理系统130开始执行一个或多个如上所述的与各种第三方系统的未结交易。

交易处理系统130访问520调整后交易列表,该列表包括从第三方系统接收的多个未结交易的组合列表和多个可用交易中的每一个的调整后计数。调整后交易列表可以是调整后交易记录存储126,交易处理系统130访问该交易记录存储以在提交对应的未结交易以供执行之前确定调整后的单位计数。如前所述,这些调整后的单位计数是使用预测模型确定的,以基于未结交易和已执行交易的已执行单位计数与报告单位计数之间的差生成预测分数。

交易处理系统130基于调整后交易列表将交易请求划分530为一个或多个拆分的交易请求。一个或多个拆分交易是由交易处理系统130为各个第三方系统路由的交易。每个拆分交易的每个请求单位计数将具有第三方系统处的未结交易的请求单位计数,该请求单位计数小于或等于该未结交易的调整后单位计数。

交易处理系统130将一个或多个拆分交易请求中的每一个发送540到对应的第三方系统以供执行。执行后,每个第三方系统都会以执行结果进行响应。

交易处理系统130从第三方系统接收550执行报告,该报告指示拆分交易的执行的已执行计数。

示例区块链架构

图6A是示出根据实施例的在区块链上广播和记录的交易链的方框图。如上所述,执行的未结交易可能涉及不同的加密货币。加密货币是一种具有存储在去中心化区块链中的账本的货币。区块链在存储在区块链中的一个或多个区块链单元中记录使用加密货币发生的交易,但不需要中央机构来验证交易是否合法。确切而言,区块链是经由多个节点或计算系统的合作生成的。

分布式区块链网络可以包括多个节点。每个节点都是参与区块链网络的用户或服务器。在完全公共的区块链中,任何参与者都可以成为区块链的节点。这些节点可以共同用作为分布式计算系统,用作区块链的虚拟机。在一些实施例中,虚拟机或分布式计算系统可以简称为计算机。公共区块链的任何用户都可以广播交易以供区块链节点记录。每个用户的数字钱包都与一个加密私钥相关联,该加密私钥用于签署交易并且证明区块链单元的所有权。

区块链单元的所有权可以通过交易链进行追踪。在图6A中,交易链可以包括第一交易610、第二交易620和第三交易630等。链中的每个交易可以具有非常相似的结构。虽然每个交易都链接到图6A中的先前交易,但交易不需要被记录在区块链上的连续区块上。例如,记录交易610的区块和记录交易620的区块可以相隔数百甚至数千个区块。先前区块的追溯由当前块记录的先前区块的散列值进行跟踪。

参考图6A中的交易中的一个,为了说明,交易620可以被称为当前交易。交易610可以是先前交易,并且交易630可以被称为后续交易。每个交易包括交易数据622、接收者地址624、先前交易的散列626和当前交易的所有者的数字签名628。交易数据622记录当前交易620的实质。例如,交易数据622可以指定一定数量的区块链单元(例如,电子硬币、区块链通证、BCDR等)的转移。在一些实施例中,交易数据622可以包括智能合约的代码指令。

接收者地址624是对应于接收者的数字钱包的私钥的公钥版本。在一个实施例中,接收者地址624是公钥本身。在另一实施例中,接收者地址624通过诸如一些确定性功能之类的一个或多个功能对版本的公钥进行编码。例如,从公钥生成接收者地址624可以包括散列公钥、添加校验、添加一个或多个前缀或后缀、以及对结果比特进行编码。接收者地址624可以是区块链上接收者的数字钱包的唯一标识符。

先前交易626的散列是先前交易610的整个交易数据的散列。同样地,先前交易636的散列是交易620的整个交易数据的散列。可以使用诸如安全散列算法(SHA)或消息摘要算法(MD)之类的散列算法来执行先前交易610。在一些实施例中,与当前交易620相对应的所有者还可以使用所有者的公钥来生成散列。先前交易626的散列提供先前交易610的追溯,并且还保持先前交易610的数据完整性。

在生成当前交易620时,区块链单元当前所有者的数字钱包使用其私钥对交易数据622、接收者地址624和先前交易626的散列的组合进行加密以生成所有者的数字签名628。为了生成当前交易620,当前所有者通过将接收者地址624包括在当前交易620的数字签名628中来指定接收者。区块链单元的后续所有者由接收者地址624确定。换言之,在后续区块630中生成数字签名638的后续所有者由当前交易620指定的接收者地址624固定。为了验证当前交易620的有效性,区块链网络中的任何节点可以追踪回到先前交易610(通过追踪先前交易626的散列)并且定位接收者地址614。接收者地址614对应于数字签名628的公钥。因此,区块链网络中的节点可以使用公钥来验证数字签名628。

区块链单元的所有权的转移可以由区块链单元的所有者继续。为了转移所有权,所有者可以广播包括所有者的数字签名和先前交易的散列的交易。具有可验证数字签名的有效交易和先前交易的正确散列值将通过挖矿过程被记录在区块链的新区块中。

图6B是示出根据实施例的区块链中的多个区块的连接的方框图。除了可能被称为创世区块的第一区块之外,区块链的每个区块可以具有相似的结构。区块650、660和660可以各自包括先前区块链652的散列、随机数654和多个交易(例如,第一交易656、第二交易658等)。每个交易可以具有图6A中所示的结构。

可以通过挖矿过程生成新区块。对于公共区块链,区块链系统中的任何节点都可以参与到挖矿过程中。先前区块的散列的生成可以通过试错过程进行。可以使用随机数作为输入的一部分对先前区块(或先前区块的版本,诸如简化版本)的整个数据进行散列。区块链可能需要在先前区块的散列中采用某种格式,以便节点将新区块识别为有效。例如,在一个实施例中,先前区块的散列需要以散列中的一定数量的零开始。取决于区块链的实现方式,也可以使用先前区块的其他散列标准。

作为示例,在生成先前区块662的散列时,参与挖矿过程的节点可以将先前区块650的版本与随机数(即,随机值)随机组合以生成散列。由于随机数,生成的散列在某种程度上是随机数值。节点将生成的散列与区块链系统的标准进行比较,以检查是否满足标准(例如,生成的散列是否以散列中的特定数量的零开头)。如果生成的散列不符合标准,则节点会尝试与另一不同随机数组合来生成另一散列。由区块链网络中的不同节点重复该过程,直到其中一个节点找到满足标准的散列为止。用于生成令人满意的散列的随机数是随机数664。首先生成令人满意散列662的节点还可以选择将广播到区块链网络的哪些交易包括在区块660中。节点可以检查交易有效性(例如,交易是否可以追溯到之前记录的交易以及交易生成者的数字签名是否有效)。该选择还可以取决于待记录的广播交易的数量以及可以在交易中指定的费用。例如,在一些实施例中,每个交易可以与用于记录交易的费用(例如,矿工费(gas))相关联。在选择交易并且固定区块660的数据后,区块链网络中的节点重复试错过程,以通过尝试不同的随机数来生成先前区块672的散列。

在一些情况下,不同的节点可以选择不同的交易以包括在后续区块中,并且可以相互竞争以找到具有满足标准的生成散列的那组交易的正确随机数。因此,可存在为包含不同交易的区块生成多个令人满意的散列的情况。这会在区块链中创建分叉。未来的区块可能会基于该分叉的任一区块中的数据进行散列。然而,在实践中,为了避免将区块添加到多个分叉中,节点可以通过选择具有更早时间戳的区块的分叉来达成共识,或者使用其他一些标准,以选择从中进行散列处理的主分叉进一步的区块。在其他实施例中,代替计算可能在计算上昂贵的随机数,节点可以使用诸如权益证明方法之类的其他共识方法来确定要遵循哪个分叉。

可以通过挖矿过程继续生成新区块。当广播交易被记录在区块中时,完成区块链单元(例如,电子硬币、区块链通证、BCDR等)的交易。在一些实施例中,当交易被多重验证时,交易被视为已结算。当有多个后续区块生成并且链接到记录交易的区块时,交易被多重验证。

在一些实施例中,一些交易656、658、666、668、676、778等可以包括一个或多个智能合约。记录的智能合约的代码指令可被记录在区块中并且通常是不可变的。当满足条件时,触发智能合约的代码指令。代码指令可以使计算机(例如,区块链的虚拟机)执行一些动作,诸如生成区块链单元并且将记录生成的交易广播到区块链网络进行记录。

计算机器架构

图7是示出能够从计算机可读介质读取指令并且在处理器(或控制器)中执行它们的示例计算机器的组件的方框图。本文描述的计算机可以包括图8中所示的单个计算机器、虚拟机、包括图7中所示的多个计算机器节点的分布式计算系统,或计算设备的任何其他合适的布置。本文描述的计算机可以由先前图中描述的任何元件用来执行描述的功能。

举例来说,图7示出了计算机系统700的示例形式的计算机器的图解表示,其中可以执行指令724(例如,软件、程序代码或机器代码),这些指令可以被存储在计算机可读介质中以用于使机器执行本文讨论的任何一个或多个过程。在一些实施例中,计算机器作为独立设备操作或者可以连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器-客户端网络环境中作为服务器机器或客户端机器运行,或者作为对等(或分布式)网络环境中的对等机器运行。

图7中描述的计算机器的结构可以对应于上述图中所示的任何软件、硬件或组合组件。虽然图7示出了各种硬件和软件元件,但上述图中描述的组件中的每一个都可以包括附加或更少的元件。

举例来说,计算机器可以是个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能手机、网络设备、网络路由器、物联网(IoT)设备、交换机或桥接器,或能够执行指令724的任何机器,该指令指定该机器要采取的动作。此外,虽然仅示出了单个机器,但术语“机器”也应被视为包括单独或联合执行指令724以执行本文讨论的任何一种或多种方法的机器的任何集合。

示例计算机系统700包括一个或多个处理器(通常为处理器702)(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或多个专用集成电路(ASIC)、一个或多个射频集成电路(RFIC)或这些的任何组合)、主存储器704和静态存储器706,它们被配置成经由总线708相互通信。计算机系统700还可以包括图形显示单元710(例如,等离子显示面板(PDP)、液晶显示器(LCD)、投影仪或阴极射线管(CRT))。计算机系统700还可以包括字母数字输入设备712(例如,键盘)、光标控制设备714(例如,鼠标、轨迹球、操纵杆、运动传感器或其他指向仪器)、存储单元716、信号生成设备718(例如,扬声器)和网络接口设备720,它们也被配置成经由总线708进行通信。

存储单元716包括计算机可读介质722,在该计算机可读介质上存储有具体实施本文描述的任何一种或多种方法或功能的指令724。指令724在由计算机系统700执行期间也可以完全或至少部分地驻留在主存储器704内或处理器702内(例如,在处理器的高速缓冲存储器内),主存储器704和处理器702也构成计算机可读介质。可以经由网络接口设备720通过网络726传输或接收指令724。

虽然计算机可读介质722在示例实施例中被示为单个介质,但术语“计算机可读介质”应被视为包括能够存储指令(例如,指令724)的单个介质或多个介质(例如,中心化式或分布式数据库,或相关联的高速缓存和服务器)。计算机可读介质可以包括能够存储由机器执行的指令(例如,指令724)并且使机器执行本文公开的任何一种或多种方法的任何介质。计算机可读介质可以包括但不限于呈固态存储器、光学介质和磁介质形式的数据储存库。计算机可读介质不包括诸如信号或载波之类的瞬态介质。

其他配置注意事项

某些实施例在本文中被描述为包括逻辑或多个组件、引擎、模块或机构。引擎可以构成软件模块(例如,在计算机可读介质上具体实施的代码)或硬件模块。硬件引擎是能够执行某些操作并且可以以某种方式配置或布置的有形单元。在示例实施例中,一个或多个计算机系统(例如,独立的客户端或服务器计算机系统)或计算机系统的一个或多个硬件引擎(例如,处理器或一组处理器)可以由软件(例如,应用程序或应用程序部分)配置成硬件引擎,用于执行本文描述的某些操作。

在各种实施例中,可以机械地或电子地实现硬件引擎。例如,硬件引擎可以包括永久配置的专用电路或逻辑(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))以执行某些操作。硬件引擎还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路(例如,包括在通用处理器或另一可编程处理器内)。将理解,以机械方式、在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中实现硬件引擎的决定可能由成本和时间注意事项所驱动。

本文描述的示例方法的各种操作可以至少部分地由一个或多个处理器(例如,处理器702)执行,这些处理器被临时配置(例如,通过软件)或永久配置成执行相关操作。无论是临时配置还是永久配置,此类处理器都可以构成处理器实现的引擎,其操作以执行一个或多个操作或功能。在一些示例实施例中,本文所指的引擎可以包括处理器实现的引擎。

某些操作的执行可以被分布在一个或多个处理器之间,不仅驻留在单个机器内,而且还跨多个机器部署。在一些示例实施例中,一个或多个处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施例中,一个或多个处理器或处理器实现的模块可以被分布在多个地理位置上。

在阅读本发明后,本领域技术人员将通过本文公开的原理理解用于类似系统或过程的另外的替代结构和功能设计。因此,虽然已经示出和描述了特定实施例和应用程序,但是应当理解,所公开的实施例不限于本文公开的精确构造和组件。在不脱离所附权利要求限定的精神和范围的情况下,可以对本文公开的方法和设备的布置、操作和细节进行对本领域技术人员而言显而易见的各种修改、改变和变更。

本领域技术人员将理解,在不脱离本发明的广泛一般范围的情况下,可以对上述实施例进行多种变更和/或修改。因此,本实施例在所有方面都被视为说明性的而非限制性的。

34页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于为分布式账本实现基于别名的寻址的计算机实现的系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!