本技术涉及区块链,尤其涉及一种基于区块链的跨通道数据访问方法、系统及存储介质。
背景技术:
1、联盟链对跨链技术方案中, hyperledger fabric是企业级区块链开源架构方案,fabric通过定义通道的方式来构建多条链完成业务数据的隔离,每个通道代表一条业务链,目前是不支持跨通道数据访问的,比如ca身份数据业务是一个独立的通道,数据交换业务是一个独立的通道,因此,业务系统可能需要在一笔交易中访问两个通道的数据,例如数据交换中需要查询到ca身份数据。
2、现有的联盟链方案中,完成交易的跨通道数据访问共享,一般会选择两种方式,一种方式是以一个节点的方式申请加入这个通道里,作为通道的成员进行数据共享和访问,还有一种方式是通过跨链协议完成具体跨链后数据访问。
3、但是,通过以一个节点的方式申请加入通道里,作为通道的成员进行数据共享和访问的这种方式会产生很高的成本以及访问业务程序很繁杂;跨链协议中选择公证人机制时会存在中心化问题,并且公证人可以监听链上的所有交易从而会产生隐私泄露风险的问题,而且访问效率较低。
技术实现思路
1、本技术实施例提供了一种基于区块链的跨通道数据访问方法、系统及存储介质,以解决现有的基于区块链的跨通道数据访问方法会产生很高的成本以及访问业务程序很繁杂、而且跨链协议中选择公证人机制时会存在中心化问题,公证人可以监听链上的所有交易从而会产生隐私泄露风险的技术问题。
2、本技术第一方面提供了一种基于区块链的跨通道数据访问方法,包括:
3、响应于第一节点的跨通道数据访问请求,获取第一节点所在通道上是否有对应通道的跨通道智能合约;若否,则向设置有第一角色身份的第二节点发送安装智能合约的请求;
4、接收来自第一节点发送的安装智能合约的请求并生成第一交易发送至集群中所有节点,所述第一交易中包含第二节点的签名;
5、获取集群中所有节点对应所述第一交易的反馈结果,所述反馈结果包括接受所述第一交易或拒绝所述第一交易,若接受第一交易的节点数量大于或等于共识规则要求中节点的数量,则在所有节点执行所述第一交易后,执行智能合约的安装操作,并将操作结果记录至区块链上;
6、若智能合约成功安装,将所述智能合约发送至所述第一节点,以使所述第一节点通过所述智能合约读取对应通道的数据。
7、在一些实施例中,所述的一种基于区块链的跨通道数据访问方法,还包括:
8、响应于第一节点的跨通道数据访问请求,获取第一节点所在通道上是否有对应通道的跨通道智能合约;若有,则获取对应通道的跨通道智能合约;
9、基于所述对应通道的跨通道智能合约,以使所述第一节点通过所述智能合约读取对应通道的数据。
10、在一些实施例中,所述若智能合约成功安装,将所述智能合约发送至所述第一节点,以使所述第一节点通过所述智能合约读取对应通道的数据包括:
11、若智能合约成功安装,将所述智能合约发送至所述第一节点,所述第一节点发送跨通道数据访问请求;
12、接收来自第一节点发送的跨通道数据访问请求,并验证所述智能合约是否为所述第一节点跨通道数据访问请求对应的智能合约,以及,所述第一节点的第二角色身份是否拥有调用所述智能合约的权限;若所述智能合约为所述第一节点跨通道数据访问请求对应的智能合约,且所述第一节点的第二角色身份拥有调用所述智能合约的权限,则读取对应通道的数据。
13、在一些实施例中,所述的一种基于区块链的跨通道数据访问方法,还包括:
14、若接受第一交易的节点数量小于共识规则要求中节点的数量,则生成视为交易失败的反馈信息反馈至第二节点。
15、在一些实施例中,所述获取集群中所有节点对应所述第一交易的反馈结果之前,包括:
16、获取区块链上的所述操作结果记录,若存在,则获取所述操作结果;若所述操作结果为成功,校验所述第二节点的签名是否合法,若合法,则接收所述第一交易,若操作结果为失败,则不接收所述第一交易;若不存在,校验所述第二节点的签名是否合法,若合法,则接收所述第一交易。
17、在一些实施例中,所述第一节点的第二角色身份为业务跨通道应用成员负责智能合约的执行和读取操作;所述第二节点的第一角色身份为通道管理员成员负责安装、升级等智能合约管理操作。
18、本技术第二方面提供了一种基于区块链的跨通道数据访问系统,实现上述第一方面中任一项所述的一种基于区块链的跨通道数据访问方法,包括:
19、第一获取模块,被配置为响应于第一节点的跨通道数据访问请求,获取第一节点所在通道上是否有对应通道的跨通道智能合约;若否,则向设置有第一角色身份的第二节点发送安装智能合约的请求;
20、接收模块,被配置为接收来自第一节点发送的安装智能合约的请求并生成第一交易发送至集群中所有节点,所述第一交易中包含第二节点的签名;
21、第二获取模块,被配置为获取集群中所有节点对应所述第一交易的反馈结果,所述反馈结果包括接受所述第一交易或拒绝所述第一交易,若接受第一交易的节点数量大于或等于共识规则要求中节点的数量,则在所有节点执行所述第一交易后,执行智能合约的安装操作,并将操作结果记录至区块链上;
22、第三获取模块,被配置为若智能合约成功安装,将所述智能合约发送至所述第一节点,以使所述第一节点通过所述智能合约获取对应通道的数据。
23、在一些实施例中,所述的一种基于区块链的跨通道数据访问系统,还包括:
24、第四获取模块,被配置为响应于第一节点的跨通道数据访问请求,获取第一节点所在通道上是否有对应通道的跨通道智能合约;若有,则获取对应通道的跨通道智能合约;
25、第五获取模块,被配置为基于所述对应通道的跨通道智能合约,以使所述第一节点通过所述智能合约获取对应通道的数据。
26、本技术第三方面提供了一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的一种基于区块链的跨通道数据访问方法的步骤。
27、本技术第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的一种基于区块链的跨通道数据访问方法的步骤。
28、本技术实施例提供一种基于区块链的跨通道数据访问方法、系统及存储介质,包括:响应于第一节点的跨通道数据访问请求,获取第一节点所在通道上是否有对应通道的跨通道智能合约;若否,则向设置有第一角色身份的第二节点发送安装智能合约的请求;接收来自第一节点发送的安装智能合约的请求并生成第一交易发送至集群中所有节点,所述第一交易中包含第二节点的签名;获取集群中所有节点对应所述第一交易的反馈结果,所述反馈结果包括接受所述第一交易或拒绝所述第一交易,若接受第一交易的节点数量大于或等于共识规则要求中节点的数量,则在所有节点执行所述第一交易后,执行智能合约的安装操作,并将操作结果记录至区块链上;若智能合约成功安装,将所述智能合约发送至所述第一节点,以使所述第一节点通过所述智能合约读取对应通道的数据,以解决目前的基于区块链的跨通道数据访问方法会产生很高的成本以及访问业务程序很繁杂、而且跨链协议中选择公证人机制时会存在中心化问题,并且公证人可以监听链上的所有交易从而会产生隐私泄露风险的问题。