用于优化向区块链进行数据写入的系统和方法与流程

文档序号:25599773发布日期:2021-06-22 17:20阅读:97来源:国知局
用于优化向区块链进行数据写入的系统和方法与流程

本发明一般地涉及区块链技术,并且更具体地涉及根据各种实施例在区块链系统中自动地重新分配矿机的内存池数据的优先级等级。



背景技术:

在过去的几十年中,已在计算机技术和电信领域中做出了快速进步,并且企业和终端用户现在比以往更多地参与电子活动。最近,已引入了区块链技术以提高电子交易(transaction)的安全性。区块链系统可以包括不断增长的记录(也称作区块)的列表,这些记录使用密码术链接在一起。与常规系统相比,区块链系统更能抵抗对存储在区块中的数据的修改,因此提供防止黑客的保护。然而,现有的区块链系统可能仍然具有各种缺点。例如,现有的区块链系统不考虑看似单独的交易是否实际上彼此相关。结果,彼此相关的多个交易可能作为单独的交易被写入到区块链系统中,并占据单独的区块,这可能浪费资源和/或使区块链的效率降级。需要一种系统和方法来自动地确定看似不同的交易是否实际上彼此相关并相应地执行区块链写入。

附图说明

图1是根据本公开的各个方面的联网系统的框图。

图2-图4是根据本公开的各个方面的区块链系统的框图。

图5-图6是图示根据本公开的各个方面的涉及区块链的方法的流程图。

图7是根据本公开的各个方面的示例性计算机系统。

图8是根据本公开的各个方面的基于云的计算架构的简化示例。

通过参考下面的详细描述,最好地理解本公开的实施例及其优点。应该领会,相似的附图标记用于标识在一个或多个图中图示的相似的元件,其中本文的图示是为了图示本公开的实施例,而不是为了限制本公开的实施例。

具体实施方式

应当理解,以下公开内容提供了用于实现本公开的不同特征的许多不同的实施例或示例。在下面描述部件和布置的特定示例以简化本公开。当然,这些仅仅是示例,而不旨在为限制性的。为了简单和清楚,各种特征可能以不同比例任意地绘制。

本公开涉及确定看似单独的交易的“相关性”并且根据所确定的相关性来合并待写入到区块链系统的数据的系统和方法。例如,区块链系统中的矿机可以具有内存池,该内存池包含已被挖掘但是仍然尚未被写入到主区块链系统的交易的列表。换句话说,内存池可以用作挖掘的交易的临时存储地方。最终,存储在内存池中的交易将被写入到区块链系统中。内存池中的交易可以具有优先级等级,这些优先级等级规定应该何时(或多久)将交易写入到区块链系统中。然而,在常规区块链方案下,可以按自组织顺序布置内存池中的交易。在这样的方案中,实际上相关的两个交易仍可以被视为两个不同的交易并且可以具有不同的优先级等级。因此,尽管交易是相关的,但是它们仍可能作为两个不同的交易被写入到区块链系统中,并且很可能时间也不同。这导致资源浪费且效率低下。例如,更多的计算资源用于执行单独的区块链写入,并且区块链长度也不必要地增加。

本公开涉及一种改进的区块链系统,其中多个交易的相关性被确定。作为非限制性示例,可以确定多个交易是相关的,例如如果它们由同一当事方/多个当事方与同一商户进行,由同一支付工具支付,由同一支付处理器处理,和/或源于同一位置或在相对彼此的预定时间帧内。一旦确定多个交易是相关的,与它们相关联的数据就可以被聚合,使得聚合数据被写入到区块链系统的单个区块中。为了便于将聚合数据写入到单个区块中,还重新分配这些交易的优先级等级。例如,如果先前这些交易具有不同的优先级等级,则可以为它们分配相同的优先级等级,以便于将聚合数据一起写入到区块链系统的同一区块中。在一些实施例中,重新优先级排序还可以涉及增加交易的优先级等级。例如,交易a最初可能具有优先级等级2,并且交易b最初可能具有优先级等级3。在确定交易a和交易b相关后,可以将它们各自重新优先级排序为优先级等级1,以便加快将其聚合数据写入到区块链系统中。在一些实施例中,如果不同的交易数据被写入到区块链系统的不同的区块中,则这些区块可以是连续的区块。在下面参考图1至图8更详细地讨论本公开的各个方面。

图1是根据实施例的适合于进行电子在线交易的联网系统或架构的框图。联网系统100可以包括或实现多个服务器和/或软件部件,该多个服务器和/或软件部件操作以执行各种支付交易或处理。示例性服务器可以包括例如操作诸如microsofttmos、unixtmos、linuxtmos之类的服务器os或其他合适的基于服务器的os等的独立和企业级服务器。可以领会,图1所图示的服务器可以被以其他方式部署,并且由此类服务器执行的操作和/或由此类服务器提供的服务可以针对给定实现方式被组合或分离,并且可以由更多数量或更少数量的服务器来执行。一个或多个服务器可以由相同或不同的实体操作和/或维护。

系统100可以包括通过网络160彼此通信的用户设备110、商户服务器140、支付供应商服务器170、收单方主机165、发行方主机168和支付网络172。支付供应商服务器170可以由诸如加利福尼亚州圣何塞的paypal公司等的支付服务供应商维护。诸如消费者的用户105可以利用用户设备110来使用支付供应商服务器170来执行电子交易。例如,用户105可以利用用户设备110来访问由商户服务器140提供的商户网站或商户的实体商店以浏览由商户提供的产品。此外,用户105可以利用用户设备110来发起支付交易,接收交易批准请求,或者答复该请求。注意,如本文所使用的交易是指使用用户设备来执行的任何合适的动作,包括支付、信息的传送和信息的显示等。尽管示出了仅一个商户服务器,但是如果用户正在从多个商户购买产品,则可以利用多个商户服务器。

用户设备110、商户服务器140、支付供应商服务器170、收单方主机165、发行方主机168和支付网络172可以各自包括用于执行诸如存储在一个或多个计算机可读介质上的程序代码和/或数据等的指令以实现本文所述的各种应用、数据和步骤的一个或多个电子处理器、电子存储器和其他适当的电子部件。例如,此类指令可以被存储在诸如在系统100的各个组件内部和/或外部和/或可通过网络160访问的存储器或数据存储装置的一个或多个计算机可读介质中。可以将网络160实现为单个网络或多个网络的组合。例如,在各种实施例中,网络160可以包括因特网或一个或多个内部网、陆线网络、无线网络和/或其他适当类型的网络。

可以使用被配置用于通过网络160进行有线和/或无线通信的任何适当的硬件和软件来实现用户设备110。例如,在一个实施例中,用户设备可以作为个人计算机(pc)、智能电话、具有诸如nfc芯片、ble硬件等的附加硬件的智能电话、具有诸如游戏装置、虚拟现实头戴式耳机的类似硬件配置或者与具有独特硬件配置并运行适当软件的智能电话谈话的可穿戴装置、膝上型计算机和/或能够传送和/或接收数据的其他类型的计算设备,诸如来自appletm的ipadtm

用户设备110可以包括一个或多个浏览器应用115,该浏览器应用115可以例如用于提供方便的界面以允许用户105浏览通过网络160可获得的信息。例如,在一个实施例中,可以将浏览器应用115实现为被配置为查看通过因特网可获得的信息的web浏览器,所述信息诸如用于在线购物的用户账户和/或用于查看和购买商品和服务的商户站点。用户设备110还可以包括一个或多个工具栏应用120,该工具栏应用120可以例如用于提供用于响应于由用户105选择的操作而执行期望任务的客户端侧处理。在一个实施例中,工具栏应用120可以显示与浏览器应用115相关的用户界面。

用户设备110还可以包括执行功能的其他应用,例如允许用户105通过网络160发送和接收电子邮件、呼叫和文本的电子邮件、短信、语音和im应用,以及使得用户能够通信、传送信息、进行支付以及如本文所讨论以其他方式通过支付供应商利用数字钱包的应用。

用户设备110可以包括一个或多个用户标识符130,该一个或多个用户标识符130可以例如被实现为操作系统注册表条目、与浏览器应用115相关联的cookies、与用户设备110的硬件相关联的标识符或例如用于支付/用户/装置认证的其他适当的标识符。在一个实施例中,用户标识符130可以由支付服务供应商使用来使用户105与由支付供应商维护的特定账户相关联。具有关联界面的通信应用122使得用户设备110能够在系统100内通信。

结合用户标识符130,用户设备110还可以包括由支付服务供应商在与设备制造商达成协议下拥有或提供的可信区135。可信区135也可以是电信供应商sim的一部分,该电信供应商sim用于由支付服务供应商存储适当的软件,该支付服务供应商能够作为用户支付凭证的代理而基于用户105的在支付供应商系统中的凭证/状态/年龄/风险级别和其他类似参数来生成安全的行业标准支付凭证。

用户设备110可以安装并执行从支付服务供应商接收到的支付应用以促进支付过程。支付应用可以允许用户向支付服务供应商发送支付交易请求,该请求包括完成该请求所需的数据或信息(例如资金来源信息)的通信。

仍然参考图1,商户服务器140可以例如由提供各种产品和/或服务的商户或卖方维护。商户可以具有实体销售点(pos)店面。商户可以是参与商户,该参与商户在支付服务供应商处具有商户账户。商户服务器140可以被用于pos或在线购买和交易。通常,商户服务器140可以由接收钱的任何人或任何实体维护,所述任何人或任何实体包括慈善机构以及零售商和饭店。例如,购买交易可以是对个人的支付或赠送。商户服务器140可以包括数据库145,该数据库145标识可用的产品和/或服务(例如,统称为项目),这些产品和/或服务可以被用户105查看和购买。因此,商户服务器140也可以包括市场应用150,该市场应用150可以被配置为通过网络160向用户设备110的浏览器115提供信息。在一个实施例中,用户105可以通过网络160经由浏览器应用与市场应用150交互,以便查看数据库145中标识的各种产品、食品项目或服务。

商户服务器140还可以包括结账应用155,该结账应用155可以被配置为促进用户105在线或在物理pos或店面处购买商品或服务。结账应用155可以被配置为通过网络160经由支付供应商服务器170从用户105或代表用户105接受支付信息。例如,结账应用155可以接收和处理来自支付提供商服务器170的支付确认,以及将交易信息传送到支付供应商,以及从支付供应商接收信息(例如,交易id)。结账应用155可以被配置为经由包括现金、信用卡、借记卡、支票、汇票等的多种支付方法来接收支付。

支付供应商服务器170可以例如由在线支付服务供应商维护,该在线支付服务供应商可以在用户105与商户服务器140的运营商之间提供支付。在这方面,支付供应商服务器170可以包括一个或多个支付应用175,该一个或多个支付应用175可以被配置为通过网络160与用户设备110和/或商户服务器140交互,以促进商品或服务的购买、传达/显示信息、以及由用户设备110的用户105发送支付。

支付供应商服务器170还维护多个用户账户180,其中的每一个可以包括与消费者、商户和诸如信用卡公司等的资金来源相关联的账户信息185。例如,账户信息185可以包括装置的用户的私人财务信息,诸如可以用于促进由用户105进行的在线交易的账号、密码、装置标识符、用户名、电话号码、信用卡信息、银行信息或其他财务信息。有利地,支付应用175可以被配置为在与结账应用155进行交易期间代表用户105与商户服务器140交互,以跟踪和管理由用户进行的购买以及使用哪些资金来源和何时使用资金来源。

交易处理应用190可以是支付应用175的一部分或可以是单独的,可以被配置为从用户设备和/或商户服务器140接收信息以供进行处理和在支付数据库195中进行存储。交易处理应用190可以包括处理来自用户105的信息以便使用各种选择的资金工具来处理订单和支付的一个或多个应用,如本文所述。这样,交易处理应用190可以存储来自各个用户的订单的细节,包括所使用的资金来源和可用的信贷选项等。支付应用175还可以被配置为确定用户105的存在并管理用户105的账户,以及必要时创建新账户。

根据本公开的各个方面,区块链管理应用200还可以被实现在支付供应商服务器170上或可由支付供应商服务器170以其他方式访问。区块链管理应用200可以包括一个或多个软件应用或软件程序,该一个或多个软件应用或软件程序能够被自动地执行(例如,在没有来自人类用户的显式指令的情况下)以执行某些任务。例如,区块链管理应用200可以评价挖掘的区块链交易以确定它们的“相关性”。可以基于包括但不限于以下项的因素建立看似单独的交易的相关性:交易是否由同一当事方或多个当事方与同一商户进行,是否由同一支付工具支付,是否由同一支付处理器处理,是否源自同一位置或是否在相对彼此的预定时间帧内,是否共享租户等,但是多个交易不需要满足上面列出的被认为相关的所有因素。

在一些实施例中,区块链管理应用200可以使用评分系统来确定看似单独的交易是否的确相关。例如,两个看似单独的交易可能最初以0的相关性分数开始。如果区块链管理应用200确定两个交易具有相同的当事方(例如,相同的付款人和相同的收款人),则它将相关性分数提高预定义量。如果区块链管理应用200确定两个交易共享同一商户(例如,餐馆),则它将相关性分数提高预定义量。如果区块链管理应用200确定两个交易使用同一支付处理器(例如,两者都使用)来处理,则它将相关性分数提高预定义量。如果区块链管理应用200确定两个交易发生在相同位置(例如,相同的gps坐标),则它将相关性分数提高预定义量。如果区块链管理应用200确定两个交易在相对彼此的预定时间帧内发生(例如,少于2分钟),则它将相关性分数提高预定义量。以上是如何能够使用元数据或关于交易的数据来计算相关性分数的非限制性实施例。当相关性分数超过预定义阈值时,区块链管理应用200可以确定交易是相关的或已经源自相同的底层事件。否则,区块链管理应用200可以将交易视为彼此不相关。

一旦确定交易是相关的,就将其交易数据聚合并写入到区块链的单个区块。例如,假设3个用户a、b和c(可能是朋友)在位置d彼此进行交易,这可能是他们一起吃午饭,然后分开地支付午餐费。这些用户之间的交易、关联的元数据和交易处理器的名称(例如,)可以在预定时间帧(例如2分钟)期间被聚合。元数据可以包括诸如交易的位置、交易票据、社交引擎模式(如果涉及共享)等的数据。根据本公开,不是将每个交易的数据馈送到区块链系统的不同区块,而是这些相关交易的数据可以被聚合并馈送到区块链的单个区块,其可以被认为是上下文区块。结果,减少了区块链系统的长度,因为聚合数据现在仅占据一个区块,这与在常规区块链方案下使来自多个交易的数据占据多个区块相反。

应理解,数据聚合可以涉及在内存池中重新分配交易的优先级等级。在这方面,区块链系统中的内存池是用于尚未被写入到区块链系统中的挖掘的区块链交易的临时存储空间。每个交易可以具有它自己的初始优先级等级。例如,在以上涉及用户a、b和c的示例交易中,涉及用户a支付其午餐的交易可以具有优先级等级1,涉及用户b支付其午餐的交易可以具有优先级等级3,并且涉及用户c支付其午餐的交易可以具有优先级等级2。由于这些不同的优先级等级,涉及用户a、b和c的交易将在不同的时间被写入到区块链系统中(例如,首先涉及用户a的交易,其次涉及c的交易,以及最后涉及用户b的交易),并写入到单独的区块链区块中。然而,在确定这三个交易实际上彼此相关(例如,源自相同的底层事件)时,本文的区块链管理应用200可以重新分配这三个交易的优先级等级以便促进在一些实施例中将它们写入到的同一区块链区块中,或者在其他实施例中将它们写入到连续的区块中。在一些实施例中,重新优先级排序可以涉及调整这三个交易的优先级等级,使得它们全部具有相同的优先级等级(例如,全部具有优先级等级2,或者全部具有优先级等级1)。在一些实施例中,调整交易的优先级等级还可以涉及对于此组中的至少一些交易增加优先级等级(例如,将涉及b和c的交易向上移动至优先级等级1)。

可以理解,矿机可能没有同时挖掘相关交易。例如,矿机可能已经首先挖掘了涉及用户a的交易,并且将该交易放置在内存池中。在以后的某个时间,矿机可能正在挖掘涉及用户b的交易。随着涉及用户b的交易正在被挖掘(或刚刚已完成挖掘),矿机可以将涉及用户b的交易的数据与已保存在内存池中涉及用户a的交易的数据进行比较。基于一组预定义的规则(例如,这些交易是否共享公共参与者、公共位置、公共商户,是否在预定义的时间帧内发生等等),矿机可以确定这些交易是相关的。预定义的规则可以基于交易数据等同地或不同地权衡各种因素。然后,该确定然后可以产生一数字(例如,0到1的数字,或等同物),其中该数字超过用于要被认为相关的交易的预定阈值。阈值可以是诸如.5的数字,或大于.5的任何数字或它们的等同值。与这些因素一样,阈值可以根据系统和/或交易数据而变化,例如,对于较大的交易量(例如,高于一定的美元金额),阈值可以高于对于较低交易量的阈值。结果,可以以上面讨论的方式调整这些交易的优先级等级。可以由区块链管理应用200来执行上述步骤中的一个或多个步骤。

在一些实施例中,区块链管理应用200引入关于何时应当将交易写入到区块链系统中的人为延迟。例如,假设在第一时间点挖掘了交易a,而在第一时间点之后的第二时间点挖掘了交易b。交易a和交易b的数据可以最初保存在内存池中。在第二时间点之后的第三时间点,应根据交易a在内存池中的优先级等级将交易a写入到区块链系统中。假设在第三时间点,区块链管理应用200可能已经确定交易a和交易b彼此相关,或者它们可能彼此相关,但是需要更多时间来验证/确认该确定。然而,由于区块链管理应用200可能仍在确定(或刚刚已经结束确定)它们的相关性的过程中,因此尚未对交易a和交易b的优先级等级进行重新调整以考虑到它们潜在的“相关性”。

为了避免不必要地将交易a和交易b作为两个单独的交易写入到区块链系统的单独区块中,区块链管理应用200引入了何时应当将交易a写入到区块链系统中的延迟。在一些实施例中,该延迟可以是预定的时间量,例如,x分钟、小时或天数。在其他实施例中,该延迟可以是用于将数据写入到区块链系统中的下一个可用的调度时隙(可以是预定的)。例如,代替在第三时间点将交易a写入到区块链系统中,可以在第三时间点之后的第四时间点安排将交易a写入到区块链系统中。如果确实确定交易b与交易a相关,则可以调整交易a和交易b两者的优先级等级,使得它们能够在第四时间点一起写入到区块链系统中。

在一些实施例中,与多个交易相关联的挖掘费可以高于常规的区块链挖掘的交易。例如,支付供应商服务器170(经由区块链管理应用200)可以向挖掘相关交易的矿机奖励额外的挖掘费,以作为挖掘相关交易的激励。作为另一示例,假设存在与挖掘的交易a相关联的第一挖掘费和与挖掘的交易b相关联的第二挖掘费。支付供应商服务器170(经由区块链管理应用200)可以确定用于不同交易a和b的数据应结合/合并并写入到同一区块链区块中。响应于该确定,可以计算用于合并交易数据的新挖掘费,其中新挖掘费大于第一挖掘费或第二挖掘费。

尽管在图1的实施例中,区块链管理应用200被示为在支付供应商服务器170上实现,但是应当领会,它也可以通过网络160(例如,周期性地或在需要时)发送到用户设备110或商户服务器140以便在其上执行。在一些实施例中,代替区块链管理应用200在支付供应商服务器170上实现或除此之外,区块链管理应用200(或类似于区块链管理应用200的应用)可能已经在用户设备110上或在商户服务器140上实现。此外,尽管在图1所示的实施例中,区块链管理应用200被图示为与交易处理应用190分离,但是在其他实施例中交易处理应用190可以实现区块链管理应用200的功能中的一些或全部。换句话说,在一些实施例中,区块链管理应用200可以被集成在交易处理应用190内。

仍然参考图1,支付网络172可以由支付卡服务供应商或卡协会(诸如american和chinaunion等)来操作。支付卡服务供应商可以提供用于发行各种支付卡的服务、标准、规则和/或策略。还可以建立通信装置和服务器等的网络,以在支付交易的不同当事方之间中继与支付有关的信息。

收单方主机165可以是由收单行操作的服务器。收单行是代表商户接受付款的金融机构。例如,商户可以在收单行建立账户,以接收经由各种支付卡进行的付款。当用户出示支付卡作为对商户的付款时,商户可以将交易提交给收单行。收单行可以向发卡行验证支付卡号、交易类型和金额,并且为商户保留该用户的信用额度。授权机构将生成批准代码,商户将其与交易一起存储。

发行方主机168可以是由支付卡的发卡行或发行组织操作的服务器。发卡行可以与各种商户达成协议,以接受使用支付卡进行的付款。在用户已经在发卡行建立了卡账户之后,该发卡行可以向用户发行支付卡。用户然后可以使用支付卡在同意接受支付卡的各种商户处或与之进行支付。

图2图示根据本公开的各个方面的涉及区块链管理应用200和区块链系统300的示例使用场景。区块链系统300包括主区块链310,如图所示,该主区块链是可能是大得多的链的简化段。主区块链310包括区块0、区块1和区块n。区块0是供应链区块,区块1是原材料渲染区块,而区块n是农作物生产区块。主区块链310中的每一个区块均包括各自的报头.哈希值(header.hash)、现时值(nonce)和时间戳。报头.哈希值可以用作该区块的标识符。每个区块的报头.哈希值也会根据前一个区块的哈希值进行计算。例如,如图2所示,区块0将区块0的哈希值发送到区块1,使得区块1根据区块0的哈希值计算其报头.哈希值。区块1将区块1的哈希值发送到区块n,使得区块n根据区块1的哈希值计算其报头.哈希值。现时值可以是在密码通信中仅使用一次的随机数或伪随机数和任意数。随机数给该区块增加了更多的变化,并使得为给定的区块生成有效的哈希值变得更加困难。时间戳跟踪区块的交易的创建和修改。每个区块均可以具有其自己适当的内容,例如,区块0中的交易数据或下一个交付日期(为简单起见,此处未具体图示区块1和区块n的内容)。

区块链系统300还包括矿机的内存池320。如上所讨论,内存池320可以被视为用于存储尚未写入到主区块链310中的挖掘的交易的临时存储空间。上面讨论的区块链管理应用200或其功能可以在内存池320中实现。例如,内存池320包括核心功能模块330,该核心功能模块330被配置为确定看似独立的交易的相关性,对内存池320中的交易进行优先级排序/重新优先级排序,聚合来自相关交易的数据,以及管理或路由所聚合的数据(例如,引入延迟)以馈送到主区块链310。

内存池还包括多租户/子租户模块340,该多租户/子租户模块340可以用于在多租户或子租户上下文中分隔交易。更详细地,可以将与不同金融实体(例如,)相关联的区块链挖掘数据保存在不同的隔间中。这些不同的金融实体可以被视为独立的租户。但是,某些租户可能是其他租户的子租户。例如,可以是单独的金融实体,但是拥有,因此其被视为的子租户。模块340可以将涉及子租户的交易存储在与涉及主租户的交易相同的隔间中,和/或在主隔间内创建其他子隔间以便存储涉及子租户的交易。

作为非限制性示例,图2图示了内存池320的隔间350,在这种情况下,其属于换句话说,是内存池320的隔间350的主要租户。隔间350还可以包含与相关联的交易,在这种情况下,是子租户。隔间350包含三个示例挖掘的区块链交易。在挖掘的区块链交易t1中,用户a向用户b支付20美元。在挖掘的区块链交易t2中,用户a向用户b支付5美元。在挖掘的区块链交易t3中,用户c向用户d支付30美元。用户a、用户b、用户c和用户d不仅是的用户,而且还是的用户。

依照租户/子租户将挖掘的区块链交易的存储在内存池320中划分可能是有利的。例如,处理隔间内的该组交易可能更容易,因为它们可能共享某些公共的属性。另一个优点是,可以以指示划分的交易数据均共享公共租户的方式将它们写入主区块链310中的一个或多个区块。例如,与相关联的所有交易均可以在内存池320中划分。当涉及的划分的内存池数据被写入主区块链310时,该区块的报头可以被更新,以指示它们包含涉及的交易数据。例如,区块的报头可以指定承租人=paypal,这表示该区块包含使用paypal服务的各当事方之间由paypal发起或最终达成的交易。以这种方式,可以根据租户对主区块链310中的区块进行“品牌化”,这不仅使区块中的数据更容易搜索/访问,而且提供了广告机会。

根据本公开的各个方面,隔间内的交易中的一些也可以被链接(例如,相关)。在图2所示的实施例中,交易t1和交易t2可以至少部分基于其公共租户()被确定为相链接。例如,t1和t2可能源自同一潜在交易,其中t1可以是对购买价格的付款,而t2可以是对与购买相关的运费的付款。当然,在确定交易t1和交易t2是否应该链接在一起时,可以考虑上面讨论的其他因素。例如,这些因素中的一些可以包括与交易t1和交易t2进行交易的商户、用于交易t1和交易t2的支付工具或支付处理器以及进行交易t1和交易t2所在的位置或时间帧等等。

可以为链接的交易分配更高的优先级等级。例如,交易t1和交易t2最初可能被分配了比交易t3低的优先级等级,但是在t1和t2链接在一起之后,它们的优先级等级可以提高,例如两者均提高到优先级等级1。在一些实施例中,可以实际降低交易t3的优先级等级(其已经确定与任何其他交易无关)(例如,从优先级等级1降低到优先级等级2),以便适应对交易t1和交易t2的优先级等级的向上调整。与链接的交易t1和交易t2相关联的数据可以被聚合在一起,并且被推送到主区块链310,并且进入相同的区块。与交易t3相关联的数据可以在稍后的时间点被推送到主区块链310的不同区块。

根据本公开的各个方面,区块链矿机还可以优先考虑具有较高挖掘费的租户。例如,如上面所讨论,矿机可以挖掘来自不同租户的区块链交易,并将其存储在内存池320中。租户中的每一个均可以具有与其交易相关联的各自的挖掘费。例如,租户a(例如,)可以具有每交易2美元的挖掘费,而租户b(例如,)可具有每交易3美元的挖掘费。基于挖掘费的值,内存池320可以分配或重新分配来自租户a和租户b的交易的优先级等级。在该示例中,由于租户b具有比租户a更高的挖掘费,因此内存池320可以提升与租户b相关联的交易的优先级等级,使得这些交易将被更快地写入主区块链310中。这种基于挖掘费的优先级排序方案可以在内存池320的整个范围内进行互换。因此,当内存池存储两个以上租户的交易数据时,可以根据与租户关联的挖掘费对交易数据的优先级等级进行分类或排序。

本公开的另一方面涉及在满足挖掘的区块链交易的某些标准的情况下跳过/绕过内存池。图3是图示该场景的非限制性示例的框图。图3中的框图包括主区块链310以及被配置为挖掘区块链交易的矿机360。矿机360可以是用户的移动设备(例如,智能电话)、用户的台式或膝上型计算机或公司实体的服务器计算机。在各种实施例中,可以使用用户设备110、商户服务器140或支付供应商170来实现矿机360。上面讨论的区块链管理应用200可以实现为矿机360的一部分。

矿机360还包括内存池,例如以上讨论的内存池320。当前,内存池320具有存储在其中的两个交易:交易a和交易b。虽然交易a和交易b仍被存储在内存池320中,并且正等待其轮到写入到主区块链310中,但是矿机360挖掘另一交易c。假设交易c的挖掘的元数据指示它是从实体m向实体n支付的1000美元,其中租户名称为“irs”,交易类型为“即时资金取款/退款”,费用=5美元,内存池排除标志=“是”。所挖掘的元数据指示该交易c应跳过内存池存储,并且应直接写入主区块链310。例如,内存池排除标志为“是”,这可能表示此交易c是高优先级交易,应跳过内存池存储。指示交易c的高优先级的其他标准包括:租户名称(例如irs)、交易的价值(例如,大于或等于预定阈值,例如1000美元)和/或交易的性质(例如取款或退款)。可以理解,跳过内存池存储并不需要满足以上所有条件。在一些实施方式中,当仅满足标准中的一个(或多个)时,可以跳过内存池存储(并且将交易直接写入主区块链310)。此外,上面列出的标准仅是非限制性示例,并且在各种实施例中,它们可以是任何其他预定的标准。

在一些实施例中,不仅由于正进入的交易的高优先级而执行内存池存储的跳过,而且还由于在内存池320中缺少可用存储而执行内存池存储的跳过。例如,在一些实施例中,内存池320的存储容量限制是两个交易。在此情况下,内存池320已经充满了交易a和交易b,并且它没有可用空间来存储另一个交易c。结果,矿机360可能不会将交易c存储在内存池320中,而是将其直接写入主区块链310。

作为另一个示例,矿机360可以确定内存池320将很快变得不可用。内存池320的不可用可能是由于矿机360的电池电量不足,换句话说,矿机360的电池或电源可能已达到预定阈值(例如,等于或低于电池容量的2%),并且(例如,在接下来的5分钟内)即将马上关闭。矿机360的紧急预期关闭意味着内存池320不是存储交易c的良好候选者,因此矿机360应该将交易c直接写入主区块链310。

作为又一个示例,矿机360可以确定其在具有点状或其他可靠网络覆盖/连接的区域中。例如,矿机360可以基于所保存的历史地图或gps(全球定位系统)数据来确定其位于或将要进入已知具有较差网络覆盖的地理区域(例如山区或蜂窝信号接收不良且没有wi-fi的建筑物)。作为另一个示例,矿机360可以周期性地监视其网络信号的强度。基于监视,例如响应于确定网络信号强度变化太大或在延长的时间段内不可用,矿机360可以确定其正在进入具有不可靠的网络覆盖的区域。不管如何确定不可靠的网络覆盖/连接,一旦确定,矿机360就可以跳过将正进入的交易(例如交易c)保存到内存池320中,而是直接将其写入主区块链310中。

图4是图示另一种情形的框图,其中正进入的挖掘的区块链交易跳过挖掘该交易的矿机360的内存池存储。出于简单性和一致性的原因,图3和图4二者中出现的相似部件将被标记为相同。参考图4,假设矿机360具有存储在其内存池320中的交易a和交易b,该内存池320处于或接近存储在其中的交易a和交易b的存储容量。当矿机360挖掘交易c时,它可以确定内存池320不具有足够的存储容量来存储交易c。因此,矿机360向网络380广播消息,该网络380包括区块链的其他矿机,例如矿机a、矿机b、矿机c、矿机d、…和矿机n。在广播的消息中,矿机360可以请求租用或临时租用网络380中一个或多个矿机的内存池存储,使得交易c的数据可以被存储在同意该请求的矿机的租借/借用内存池中。作为交换,矿机360可以向同意租借其内存池的矿机支付佣金费。佣金费可以在该另一矿机将交易c从其内存池推入主区块链310后部分或全部支付。在一些实施例中,可以经由“智能合约”来创建两个(或多个)矿机之间的协议,该“智能合约”在没有人为干预的情况下(例如在区块链或分布式矿层环境中)被创建、执行和/或实施。

应当领会,除了内存池320的存储已满之外,矿机360还可以响应于内存池320将变得不可用的确定,例如由于矿机360的电池的低电量矿机360,或响应于矿机360正在或将进入具有差的网络覆盖/连接的区域的确定,而生成向网络380的广播消息。在这些情况下,同意的矿机可以同意将其内存池被矿机360租用以存储交易c的数据,该交易c的数据最终将由同意的矿机推到主区块链310上。

图5是图示根据本公开的各个方面的用于基于交易的相关性向区块链进行写入的方法400的流程图。方法400包括访问区块链系统的矿机的内存池的步骤410。内存池至少包括第一交易和第二交易。

方法400包括确定第一交易和第二交易彼此相关的步骤415。

方法400包括链接第一交易和第二交易的步骤420,该链接包括将与第一交易相关联的聚合数据和与第二交易相关联的聚合数据聚合到聚合数据集中。可以响应于步骤415中的确定来执行步骤420。

方法400包括将聚合数据集写入到区块链系统的单个区块中的步骤425。

在一些实施例中,第一交易和第二交易各自包括被写入到区块链系统中的相应优先级,并且步骤420中的链接包括重新分配至少第一交易或第二交易的优先级。在一些实施例中,重新分配优先级包括提高至少第一交易或第二交易的优先级。在一些实施例中,重新分配优先级包括向第一交易和第二交易二者分配相同的优先级。

在一些实施例中,步骤415的确定包括:确定第一交易和第二交易共享公共用户、公共商户、公共支付处理器、公共位置,或者在相对彼此的预定时间段内执行。

在一些实施例中,步骤415的确定包括:确定第一交易和第二交易源自相同的底层事件。

应当领会,可以在上面讨论的步骤410-步骤425之前、期间或之后执行附加的方法步骤。例如,方法400可以包括以下步骤:对于将第一交易或第二交易写入到区块链系统中引入延迟,直到确定已经完成。作为另一实施例,方法400可以包括将来自不同租户的交易数据存储在内存池的不同隔间中的步骤。作为又一实施例,方法400可以包括以下步骤:将第一租户的名称写入到区块链系统的选定区块的报头中;以及将仅与第一租户相关联的交易数据写入到选定区块中。作为另外的实施例,内存池还包含第三交易和第四交易,并且其中方法400还包括以下步骤:确定与挖掘第三交易相关联的第一挖掘费和与挖掘第四交易相关联的第二挖掘费;以及响应于确定第一挖掘费大于第二挖掘费,为第三交易分配更高的优先级;或响应于确定第二挖掘费大于第一挖掘费,为第四交易分配更高的优先级。为了简单起见,本文不详细讨论其他附加步骤。

图6是图示根据本公开的各个方面的用于通过跳过内存池来向区块链进行写入的方法450的流程图。方法450包括步骤460:访问与由区块链系统的矿机执行的挖掘的交易相关联的挖掘数据。

方法450包括步骤465:做出挖掘的交易满足一个或多个预定义标准的第一确定。基于挖掘数据执行步骤465。

方法450包括步骤470:做出矿机的内存池的可用存储空间低于预定阈值或该内存池将变得不可用的第二确定。

方法450包括步骤475:响应于第一确定或第二确定,绕过将挖掘数据存储到区块链系统中,而使得挖掘数据被写入到区块链系统中。

在一些实施例中,步骤475包括:将挖掘数据直接写入区块链系统,而无需首先将挖掘数据存储在矿机的内存池中。

方法450包括步骤475,该步骤475包括:向包括区块链系统的多个矿机的网络广播从矿机中的至少一个租用内存池的请求;从网络的一个或多个矿机接收以租借该一个或多个矿机的内存池的同意;以及将挖掘数据发送给该一个或多个矿机以存储在该一个或多个矿机内存池中。

在一些实施例中,通过确定所挖掘的交易与预定租户相关联或具有超过预定金额的值来做出第一确定。

在一些实施例中,通过以下来进行第二确定:确定矿机正在使用一装置来执行挖掘操作,该装置的电池已下降到预定百分比以下,或者确定该装置位于或将进入具有不可靠网络覆盖或不可靠连接的区域。

基于以上讨论,能够看出,本公开提供了优于常规方法和系统的多个显著优点。然而,应理解,并非必须在本文中详细讨论所有优点,不同的实施例可以提供不同的优点,并且对于所有实施例均不要求特定的优点。一个优点是计算机的改进的功能。例如,通过实现如上面讨论的区块链管理应用200,可以将来自看起来独立但实际上相关的交易的数据写入区块链的同一区块中。结果,可以减少区块链的长度。结果,由于存在较少的区块,因此本公开节省了计算机资源(例如,更少的区块),并提高了管理和/或遍历区块链的效率。本公开通过提高可以在区块链中保存交易的速度来进一步改善计算机的功能,因为区块链管理应用200是自动执行的并且不依赖于人工的用户输入(可能很慢)来完成。其他优点包括与现有区块链系统的兼容性以及实施的简便性和低成本。

图7是适合于实现本文描述的各种方法和装置(例如,区块链管理应用200以及方法400和450的各种方法步骤或者用户设备110、商户服务器140或支付供应商服务器170)的计算机系统500的框图。在各种实现方式中,能够执行这些步骤的装置可以包括网络通信装置(例如,移动蜂窝电话、膝上型计算机、个人计算机和平板电脑等)、网络计算装置(例如,网络服务器、计算机处理器、电子通讯接口等)或其他合适的设备。因此,应当领会,能够实现区块链管理应用200的装置(或者用户设备110、商户服务器140或支付供应商服务器170)以及方法400和450的各种方法步骤可以以下方式实现为计算机系统500。

依照本公开的各个实施方式,诸如网络服务器或移动通信装置的计算机系统500包括总线部件502或用于传送信息的其他通信机制,其互连子系统和部件,诸如计算机处理部件504(例如,处理器、微控制器和数字信号处理器(dsp)等)、系统存储器部件506(例如,ram)、静态存储部件508(例如,rom)、盘驱动部件510(例如,磁性的或光学的)、网络接口部件512(例如,调制解调器或以太网卡)、显示部件514(例如,阴极射线管(crt)或液晶显示器(lcd))、输入部件516(例如,键盘)、光标控制部件518(例如,鼠标或轨迹球)和图像捕获部件520(例如,模拟或数字相机)。在一个实现方式中,盘驱动部件510可以包括具有一个或多个盘驱动部件的数据库。在一些实施例中,可以使用系统存储器部件506或盘驱动部件510来实现上面讨论的内存池。在一些实施方式中,区块链管理应用200还可以至少部分地在系统存储器部件506或盘驱动部件510内实现。

依照本公开的实施方式,计算机系统500通过处理器504执行包含在系统存储器部件506中的一个或多个指令的一个或多个序列来执行特定操作。可以从诸如静态存储部件508或盘驱动部件510的另一计算机可读介质将此类指令读入系统存储器部件506中。在其他实施方式中,可以使用硬连线电路代替(或与之结合)软件指令以实现本公开。在一些实施方式中,区块链管理应用200的各种部件(例如,执行引擎230)可以采取能够由处理器504执行以代表用户自动地执行适合于上下文的任务的软件指令的形式。

逻辑可以被编码在计算机可读介质中,该计算机可读介质可以指参与向处理器504提供指令以供执行的任何介质。此类介质可以采取许多形式,包括但不限于非易失性介质和易失性介质。在一个实施例中,计算机可读介质是非暂态的。在各种实现方式中,非易失性介质包括光盘或磁盘,诸如盘驱动部件510,而易失性介质包括动态存储器,诸如系统存储器部件506。在一个方面中,与执行指令相关的数据和信息可以经由诸如采取声波或光波的形式的传输介质,包括在无线电波和红外数据通信期间生成的那些,被传输至计算机系统500。在各种实现方式中,传输介质可以包括同轴电缆、铜线和光纤,包括具有总线502的电线。

因此,计算机可读介质的常见形式例如包括软盘、软磁盘、硬盘、磁带、任何其他磁介质、cd-rom、任何其他光学介质、打孔卡纸磁带、带孔图案的任何其他物理存储介质、ram、prom、eprom、flash-eprom、任何其他存储芯片或盒带、载波、或计算机适于以从中读取的任何其他介质。这些计算机可读介质还可以用于存储挖掘的区块链交易数据。

在本公开的各种实施例中,可以通过计算机系统500来执行用于实践本公开的指令序列的执行。在本公开的各种其他实现方式中,通过通信链路530(例如,诸如lan、wlan、ptsn的通信网络和/或各种其他有线或无线网络,包括电信、移动网络以及蜂窝电话网络)耦合的多个计算机系统500可以执行指令序列,以相互协作地实践本公开。

计算机系统500可以通过通信链路530和通信接口512发送和接收消息、数据、信息和指令,包括一个或多个程序(即应用程序代码)。接收到的程序代码可以在接收到和/或存储在盘驱动部件510或一些其他非易失性存储部件中用于执行时由计算机处理器504执行。通信链路530和/或通信接口512可以用于在区块链管理应用200与外部设备之间进行电子通信,例如与用户设备110、与商户服务器140或与支付供应商服务器170进行电子通信,这恰是取决于实现区块链管理应用200的位置。

在适用的情况下,可以使用硬件、软件或硬件和软件的组合来实现由本公开提供的各种实施例。而且,在适用的情况下,在不脱离本公开的精神的情况下,本文阐述的各种硬件部件和/或软件部件均可以被组合成包括软件、硬件和/或两者的复合部件。在适用的情况下,在不脱离本公开的范围的情况下,本文阐述的各种硬件部件和/或软件部件均可以被分成包括软件、硬件或两者的子部件。另外,在适用的情况下,可以预期的是,软件部件可以被实现为硬件部件,反之亦然。

根据本公开的软件,诸如计算机程序代码和/或数据,可以被存储在一个或多个计算机可读介质上。还预期可以使用联网的和/或以其他方式的一个或多个通用或专用计算机和/或计算机系统来实现本文中标识的软件。在适用的情况下,本文描述的各个步骤的顺序可以改变、组合成复合步骤和/或分成子步骤以提供本文描述的特征。应当领会,区块链管理应用200的至少一部分可以被实现为此类软件代码。

图7图示了示例性的基于云的计算架构600,其也可以用于实现本公开的各个方面。基于云的计算架构600包括均连接至计算机网络606(例如,因特网或内联网)的移动设备604(例如,图1的用户设备110)和计算机602(例如,商户服务器140或支付供应商服务器170)。在一个示例中,消费者具有与基于云的资源608通信的移动设备604,该基于云的资源608可以包括一台或多台计算机,例如服务器计算机,具有足够的存储器资源来处理来自各种用户的请求。给定的实施例可以以任何适当的方式在移动设备604与基于云的资源608之间划分功能。例如,移动设备604上的应用程序可以执行与用户的基本输入/输出交互,但是大多数处理和缓存可以由基于云的资源608执行。然而,在各种实施例中,其他责任划分也是可能的。在一些实施例中,通过使用该云架构,区块链管理应用200可以驻留在用户设备110上,但是其功能可以由商户服务器140或支付供应商服务器170访问或利用。类似地,区块链管理应用200可以驻留在商户服务器140上或在支付供应商服务器170上,但是其功能可以由用户设备110访问或利用。

基于云的计算体系架构600还包括与基于云的资源608通信的个人计算机602。在一个实施例中,参与的商户或消费者/用户可以通过在计算机602上登录到商户账户或用户账户来访问来自基于云的资源608的信息。可以至少部分地基于基于云的计算架构600来实现涉及上面讨论的区块链的系统和方法。

应当领会,基于云的计算架构600的各个部件仅被示出作为示例。例如,给定的用户可以通过多个装置来访问基于云的资源608,而不是所有的设备都是移动设备。类似地,商户或另一用户可以从任何数量的合适的移动或非移动设备访问基于云的资源608。此外,在各个实施例中,基于云的资源608可以容纳许多商户和用户。

应当领会,相同的附图标记用于标识在一个或多个附图中图示的相似的元件,其中这些标记的附图是用于图示本公开的实施例的目的,而不是用于限制本公开的实施例的目的。

本公开的一个方面涉及方法,该方法包括以下步骤:访问区块链系统的矿机的内存池,该内存池至少包括第一交易和第二交易;确定第一交易与第二交易彼此相关;响应于该确定,链接第一交易和第二交易,其中该链接包括将与第一交易相关联的数据和与第二交易相关联的数据聚合到聚合数据集中;以及将聚合数据集写入到区块链系统的单个区块中。

本公开的另一方面涉及系统,该系统包括非暂态存储器和一个或多个硬件处理器,该硬件处理器耦合到该非暂态存储器,并且被配置为从非暂态存储器读取指令,以使该系统执行包括以下内容的操作:访问区块链系统的矿机的内存池,该内存池至少包括具有第一优先级的第一交易和具有第二优先级的第二交易;基于一个或多个因素,确定第一交易和第二交易是否彼此相关,该一个或多个因素包括:第一交易和第二交易是否共享公共用户、公共商户、公共支付处理器或公共位置,或第一交易和第二交易是否是在相对彼此的预定时间段内执行;响应于确定指示第一交易和第二交易相关,将第一交易和第二交易链接,其中该链接包括将与第一交易相关联的数据和与第二交易相关联的数据聚合到聚合数据集中,并提升第一优先级和第二优先级中的至少一个优先级;以及将聚合数据集写入到区块链系统的单个区块中。

本公开的另一方面涉及方法,该方法包括以下步骤:访问与由区块链系统的矿机执行的挖掘的交易相关联的挖掘数据;基于挖掘数据,做出挖掘的交易满足一个或多个预定义标准的第一确定;做出矿机的内存池的可用存储空间低于预定阈值或内存池将不可用的第二确定;并响应于第一确定或第二确定,绕过将挖掘数据存储到矿机的内存池中,而将挖掘数据写入到区块链系统中。

前述公开不旨在将本公开限制为所公开的精确形式或特定使用领域。这样,可以预期,根据本公开,无论是否在此明确描述或暗示,对本公开的各种替代实施例和/或修改都是可能的。通过已经如此描述了本公开的实施例,本领域普通技术人员将认识到,可以在形式和细节上进行改变而不背离本公开的范围。因此,本公开仅由权利要求书限制。

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