一种基于公链的子链业务系统
本申请要求在2019年2月26日提交中国专利局、申请号为201910141900.0、发明名称为“基于公链的子链搭建及应用部署方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及区块链技术领域,特别涉及一种基于公链的子链业务系统。
背景技术
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
然而,区块链作为一种有可能根本性改变现有生产关系的基础技术体系,传统的业务系统都有着向区块链转型的需要。而由于区块链涉及的技术并不是大部分研发人员能够快速掌握的,因此,直接开发和部署一个新的区块链网络,并把该区块链网络应用在传统的业务系统中,显然将花费大量的研发成本和时间成本。
基于此,目前亟需一种基于公链的子链业务系统,用于解决现有技术中开发新的区块链网络所需的成本较高的问题。
发明内容
本申请提供了一种基于公链的子链业务系统,用于解决现有技术中开发新的区块链网络所需的成本较高的技术问题。
本申请实施例提供一种基于公链的子链业务系统,所述系统包括公链和接入公链的至少一个子链,其中,所述子链包括公链的部分节点,所述子链中的节点被配置为能够按照公链标准和子链标准生成区块链数据,以及被配置为:
A.接收交易数据,以及根据所述交易数据定位交易发起节点;如果所述交易发起节点是所述子链中的节点,根据所述交易数据生成子链区块链数据,以及存储所述子链区块链数据;根据所述子链区块链数据生成交易数据对应的摘要信息,根据所述交易数据对应的摘要信息生成公链区块链数据,以及存储所述公链区块链数据。
在一种可能的实施方式中,所述子链中的节点进一步被配置为:
B.如果所述交易发起节点不是所述子链中的节点,从所述交易发起节点处获取交易数据对应的摘要信息,根据所述摘要信息生成公链区块链数据,以及存储所述公链区块链数据。
在一种可能的实施方式中,所述子链中的节点进一步被配置为:
C.接收所述交易发起节点或所述子链中节点对应的邻近节点发送的交易数据。
在一种可能的实施方式中,所述子链中的节点进一步被配置为:
D.接收数据查询交易,所述数据查询交易包括待查询的目标交易数据;从所述公链区块链数据中查询目标交易数据对应的摘要信息;根据所述目标交易数据对应的摘要信息,如果确定所述目标交易数据存储于所述子链区块链数据中,则从所述子链区块链数据中查询并返回所述目标交易数据。
在一种可能的实施方式中,所述子链中的节点进一步被配置为:
E.如果确定所述目标交易数据未存储于所述子链区块链数据中,则在所述公链中广播所述数据查询交易。
在一种可能的实施方式中,所述子链中的节点进一步被配置为:
F.根据所述数据查询交易定位交易发起节点;判断所述交易发起节点是否是所述子链中的节点,如果所述交易发起节点是所述子链中的节点,则从所述子链区块链数据中查询并返回所述目标交易数据;如果所述交易发起节点不是所述子链中的节点,则对所述交易发起节点进行校验。
在一种可能的实施方式中,所述子链中的节点进一步被配置为:
G.在发送交易时,如果所述交易请求中未携带有所述交易目标节点的地址信息,则根据所述交易请求中携带的交易内容,判断自身是否满足所述交易内容,如果自身满足所述交易内容,则向所述交易发起节点返回所述交易请求的响应消息。
在一种可能的实施方式中,所述子链中的节点进一步被配置为:
H.如果自身不满足所述交易内容,则在所述子链和所述公链中广播所述交易请求。
在一种可能的实施方式中,所述子链中的节点进一步被配置为:
I.接收交易发起节点或所述子链中的节点对应的邻近节点发送的地址查询交易;以及根据所述地址查询交易向所述交易发起节点发送交易目标节点对应的地址数据。
在一种可能的实施方式中,所述子链中的节点进一步被配置为能够按照公链智能合约和子链智能合约生成区块数据。
如此,上述子链业务系统中,子链中的节点可以接收交易发起节点发送的交易数据,如果交易发起节点是子链中的节点,那么,就可以根据交易数据生成子链区块链数据,以及存储子链区块链数据;以及,根据子链区块链数据生成交易数据对应的摘要信息,根据交易数据对应的摘要信息生成公链区块链数据,以及存储公链区块链数据。上述子链业务系统可以依托于公链的软件架构,复用公链的数据网络,共享数据存储,同时,本申请可以通过创建子链的方式,快速建立自有区块链网络,大大降低了研发成本和时间成本。该子链业务无论是在实施和部署成本,还是时间上,都能有效地节省相应的投入,在某些情况下,也可以作为方案测试和验证的一种方式,用于快速检验系统方案,测试系统能力,验证业务需求。进一步地,子链中的节点可以继承公链的基础能力,使得开发者和服务提供商能快速搭建自有区块链网络,验证业务的有效性和可行性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于公链的子链业务系统的结构示意图;
图2是本申请实施例提供一种基于公链的子链业务系统进行交易的流程示意图;
图3是本申请实施例提供的一种子链业务系统存储方式的示例图;
图4是本申请实施例提供一种基于公链的子链业务系统进行交易的流程示意图;
图5是本申请实施例提供另一种基于公链的子链业务系统进行交易的流程示意图;
图6是本申请实施例提供的一种子链业务系统中地址查询交易的流程示意图;
图7是本申请实施例提供的一种子链业务系统的生态模型示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本申请提供的技术方案中,所述区块链一方面指网络系统中交易产生的记账数据,另一方面指运行区块链技术的网络,即区块链网络。其中,区块链网络是指具有去中心化应用架构的点对点(P2P)网络,所述区块链网络能够进行分布式存储、公共共识、数字加密、交易记账以及验证。即涵盖了分布式技术、密码学、P2P网络架构以及各种可能被应用的共识算法的交易平台。
区块链或区块链信息是在区块链网络中发生交易时,根据交易数据生成的记账信息,即多笔具体的交易组成一个区块,多个区块形成一条区块链。区块链网络中,包括相互建立点对点网络连接的节点,每一个节点都配置有相应的共识机制,如智能合约,并且具有足够的运算能力,以进行交易验证和记账程序。节点上还具有符合某种统一标准的接口规范,以实现通过接口规范接入更多的节点或者其他类型的区块链网络。
下面首先结合图1对本申请实施例适用的可能的系统架构进行介绍。
请参考图1,其示例性示出了本申请实施例提供的一种基于公链的子链业务系统的结构示意图。由图1可知,本申请提供的子链业务系统包括公链和接入公链的至少一个子链。
其中,所述子链包括公链的部分节点。一个示例中,子链的节点可以全部位于公链中,如图1中示出的子链1。另一个示例中,子链的节点可以部分位于公链中,如图1中示出的子链2。
进一步地,子链中的节点可以被配置为能够按照公链标准和子链标准生成区块链数据。
其中,公链标准包括公链共识机制、公链证通机制、公链交易机制和公链智能合约;子链标准包括子链共识机制、子链证通机制、子链交易机制和子链智能合约。
共识机制可以包括打包机制,周期,区块支持的交易数等内容,共识方式可以包括POW、POS或者其他的共识方式。对于上述内容,子链均可以灵活定义。
子链可以灵活定义自主证通机制,甚至可以定义无证通子链,具体不做限定。
交易机制可以包括对于交易的策略,方式,费用,以及验证,多重签名等内容,子链均可以灵活自主定义。
智能合约可以包括选定是否支持智能合约,缺省智能合约类型,智能合约运行环境,语言等内容。对于上述内容,子链均可以灵活定义。也就是说,子链中的节点可以进一步被配置为能够按照公链智能合约和子链智能合约生成区块数据。
实际应用中,公链和子链均为点对点形式的P2P网络,P2P网络由多个节点组成,每个节点具有独立的运算能力、应用运行能力、存储能力以及提供人机交互的能力。P2P网络中的节点不仅是提供网络信息传递的网关设备,而且可以是被区块链网络认证的任何计算机设备,如个人计算机、计算机机组、服务器以及智能终端设备等。
在子链业务系统中,公链是提供基础平台的区块链网络,即通过设定一个统一的交易标准,以在此交易标准下,各个接入公链的区块链网络可以通过公链,将交易数据进行传递和统一验证,以实现跨链交易。
实际应用中,接入公链的子链可以是与公链具有相同交易标准的区块链网络,即基于公链网络形式而建立的私链、行业链、联盟链等;也可以是第三方区块链,即不一定基于公链网络形式建立,由第三方独立开发的区块链。
基于图1所示的系统架构,图2示例性示出了本申请实施例提供一种基于公链的子链业务系统进行交易的流程示意图。
如图2所示,子链中的节点可以进一步地被配置为:接收交易数据,以及根据交易数据定位交易发起节点。
如果交易发起节点是子链中的节点,可以根据交易数据生成子链区块链数据,以及存储子链区块链数据;还可以根据子链区块链数据生成交易数据对应的摘要信息,根据交易数据对应的摘要信息生成公链区块链数据,以及存储公链区块链数据。
如果交易发起节点不是子链中的节点,可以从交易发起节点处获取交易数据对应的摘要信息,还可以根据摘要信息生成公链区块链数据,以及存储公链区块链数据。
如此,上述子链业务系统中,子链中的节点可以接收交易发起节点发送的交易数据,如果交易发起节点是子链中的节点,那么,就可以根据交易数据生成子链区块链数据,以及存储子链区块链数据;以及,根据子链区块链数据生成交易数据对应的摘要信息,根据交易数据对应的摘要信息生成公链区块链数据,以及存储公链区块链数据。上述子链业务系统可以依托于公链的软件架构,复用公链的数据网络,共享数据存储,同时,本申请可以通过创建子链的方式,快速建立自有区块链网络,大大降低了研发成本和时间成本。该子链业务无论是在实施和部署成本,还是时间上,都能有效地节省相应的投入,在某些情况下,也可以作为方案测试和验证的一种方式,用于快速检验系统方案,测试系统能力,验证业务需求。进一步地,子链中的节点可以继承公链的基础能力,使得开发者和服务提供商能快速搭建自有区块链网络,验证业务的有效性和可行性。
需要说明的是,本申请实施例中涉及到的子链中的节点可以是指子链中的任意一个节点。为了表达地更加清楚,本文所提及的子链中的节点可以是指同一个节点。
本申请实施例中,子链中的节点接收到的交易数据的来源可能有两种,一种是来源于交易发起节点,另一种是来源于该子链中的节点所对应的邻近节点。也就是说,子链中的节点可以进一步地被配置为:接收交易发起节点或子链中节点对应的邻近节点发送的交易数据。
实际应用中,交易发起节点可以是子链网络中的节点,也可以是公链网络中的节点。
根据实际应用环境的不同,交易发起点与子链中的节点之间的交易形式也不同。子链中的节点接收交易发起节点发送的交易数据的情形可能有以下两种。
一种情形是,如果交易发起节点可以与子链中的节点之间直接进行交易或信息交互,则可以直接通过交易发起节点向子链中的节点发送交易数据。这种方式最适合于交易发起节点与子链中的节点处于同一个区块链网络内的交易,即交易发起节点也是公链网络范围内的节点。
另一种情形是,如果交易发起节点不能直接与子链中的节点之间进行交易或信息交互,则可以通过交易发起节点广播交易数据,具体可以为先向邻近节点广播该交易数据,邻近节点再结合自身的角色,确定是完成交易还是继续广播,直到子链中的节点接收到该交易数据。
子链中的节点接收子链中节点对应的邻近节点发送的交易数据对应的情形可以是,交易发起节点未知子链中的节点的位置信息,通过广播的形式在区块链中发送交易数据,如此,随着信息的扩散,子链中的节点可以通过其邻近节点接受到交易数据。
需要说明的是,上述两种情形仅为示例性说明,在其他可能的示例中,如果交易发起节点是子链中的节点对应的邻近节点,那么,子链中的节点也可以看做是直接接收到交易发起节点发送的交易数据。
进一步地,从图2中可以看出,子链中的节点既可以存储子链区块数据,又可以存储公链区块数据。为了更加清楚地描述子链业务系统的存储方式,下面通过图3来描述。如图3所示,为本申请实施例提供的一种子链业务系统存储方式的示例图。
从图3中可以看出,子链1中的节点可以存储子链1区块链数据,以及存储公链区块数据;子链2中的节点可以存储子链2区块链数据,以及存储公链区块数据。
本申请实施例中,子链中的节点还可以进一步被配置为:在发送交易时,如果交易请求中未携带有交易目标节点的地址信息,则根据交易请求中携带的交易内容,判断自身是否满足交易内容。以及,如果自身满足交易内容,则向交易发起节点返回交易请求的响应消息;如果自身不满足交易内容,则在子链和公链中广播交易请求。
对于采用上述技术方案进行存储的交易数据,子链中的节点后期可能接收到对交易数据进行查询的请求。针对数据查询交易,可以采用以下技术方案。
一种可能的实施方式为,如图4所示,为本申请实施例提供一种基于公链的子链业务系统进行交易的流程示意图。
参考图4,子链中的节点可以进一步地被配置为:接收数据查询交易,数据查询交易包括待查询的目标交易数据;以及从公链区块链数据中查询目标交易数据对应的摘要信息。
此时,根据目标交易数据对应的摘要信息,如果确定目标交易数据存储于子链区块链数据中,则从子链区块链数据中查询并返回目标交易数据。
如果确定目标交易数据未存储于子链区块链数据中,则在公链中广播数据查询交易。
具体地,子链中的节点在接收到数据查询交易之后,可以提取数据查询交易中携带的目标交易数据。
由于交易数据在存储的过程中,子链中的节点可以根据交易数据对应的摘要信息生成并存储公链区块链数据,因此,子链中的节点在接收到数据查询交易之后,可以从公链区块链数据中获取目标交易数据对应的摘要信息,并根据该摘要信息判断目标交易数据存储于子链区块链数据中。
需要说明的是,本申请提供的技术方案中,数据查询交易本质上是一种与正式交易相同的交易过程,即通过公链网络内置的共识机制和智能合约,完成的一种无证通或指定证通数量的交易过程。
通过上文对数据查询交易过程的描述,可知,交易发起节点中不必存储交易目标节点的地址信息,甚至任何地址信息都无需存储,就可以通过在公链网络中广播的方式进行数据查询交易。如此,本申请提供的子链业务系统可以减小对节点存储性能的要求。
另一种可能的实施方式为,如图5所示,为本申请实施例提供另一种基于公链的子链业务系统进行交易的流程示意图。
参见图5,子链中的节点可以进一步被配置为:接收数据查询交易,数据查询交易包括待查询的目标交易数据;以及,根据数据查询交易定位交易发起节点。
进而,判断交易发起节点是否是子链中的节点,如果交易发起节点是子链中的节点,则从子链区块链数据中查询并返回目标交易数据。
如果交易发起节点不是子链中的节点,则对交易发起节点进行校验。如果交易发起节点通过校验,则从公链区块链数据中查询目标交易数据对应的摘要信息。如果交易发起节点未通过校验,则结束流程。
以及,根据所述目标交易数据对应的摘要信息,如果确定目标交易数据存储于子链区块链数据中,则从子链区块链数据中查询并返回目标交易数据。
如果确定目标交易数据未存储于子链区块链数据中,则在公链中广播数据查询交易。
如此,如果交易发起节点不是子链中的节点,就可以对其进行验证,从而可以提高交易的安全性。
本申请实施例中,交易发起节点如果需要向交易目标节点发送数据,那么,交易发起节点需要获取交易目标节点对应的地址数据。具体实施过程中,交易发起节点可以通过发送地址查询交易,来获取交易目标节点对应的地址数据。
如图6所示,为本申请实施例提供的一种子链业务系统中地址查询交易的流程示意图。
参考图6,子链中的节点还可以进一步被配置为:接收交易发起节点或子链中的节点对应的邻近节点发送的地址查询交易;以及根据地址查询交易向交易发起节点发送交易目标节点对应的地址数据。
具体地,子链业务系统在进行交易前,由交易发起节点向子链中的节点发起地址查询交易,地址查询交易可以包括预发起跨链交易的交易摘要。
进一步地,子链中的节点可以进一步被配置为:根据地址查询交易遍历存储地址数据;如果查询到交易目标节点对应的地址数据,则提取与交易摘要对应的交易目标节点对应的地址数据,并发送交易目标节点对应的地址数据至交易发起点;如果没有查询到交易目标节点对应的地址数据,则在子链和公链中广播交易请求。
实际应用中,交易发起节点可以是子链网络中的节点,也可以是公链网络中的节点。在交易发起节点发起正式的交易之前,可以根据实际交易信息的内容,向子链中的节点发起一个地址查询交易,这个地址查询交易中,需要包含预发起的正式交易中的交易内容信息或描述正式交易的信息,例如,以交易摘要的方式将正式交易的交易内容进行压缩打包,发送给地址查询交易。
子链中的节点在接收到地址查询交易以后,可以提取查询交易中的交易摘要,确定查询交易中指定的交易目标功能,再通过从存储的地址信息表中匹配该功能所对应的交易目标节点,并将其对应的地址数据打包成交易结果发送给交易发起节点,以使交易发起节点获得地址数据。在后续正式交易时,可以直接指定对应的交易目标节点对应的地址数据,以直接完成交易。
如此,在交易过程中,仅需在正式交易前进行地址查询即可获得交易目标节点的地址信息,而交易也需要前置查询交易,因此可以将地址查询交易与前置查询交易合并为同一个交易进行广播,无需额外进行数据传输,避免实际应用时占用过多的网络带宽,提高交易效率。
图7示例性示出了本申请实施例提供的一种子链业务系统的生态模型示意图。如图7所示,为了使不同的第三方区块链网络与公链之间能够通信以及完成跨链交易,子链业务系统还可以包括由公链和/或第三方区块链组成的平行链。其中,平行链中的节点可以被配置为能够执行公链中的节点的全部数据操作,具有公链中的节点的全部功能和信息;还可以被配置为能够执行第三方区块链节点的全部数据操作,具有第三方区块链节点的全部功能和信息。实际应用中,平行链节点可以在交易时对交易数据进行传递,并将交易进行桥接。
例如,子链中的节点需要跨链进行交易时,可先在子链范围内完成交易数据的广播,再通过平行链节点将交易在公链范围内广播,即同时在子链和公链网络中完成对于同一个交易数据的区块链数据创建、验证、存储等,以形成区块链数据,对交易数据进行分布存储后,完成跨链交易。这种通过平行链进行桥接的跨链交易方式,可以通过最小的节点改造量,实现跨链交易的目的。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序或智能合约,所述计算机程序或智能合约被节点加载并执行以实现上述实施例提供的事务处理方法。可选地,上述计算机可读存储介质可以是只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。