【技术实现步骤摘要】
一种对节点资源的访问控制方法
本专利技术涉及区块链
,特别是涉及一种对节点资源的访问控制方法。
技术介绍
区块链起源于中本聪的比特币,本质上是通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。它依靠密码学和数学巧妙的分布式算法,在无法建立信任关系的互联网上、无需任何信任中心的情况下,使得参与者达成共识,完成信任与价值的可靠传递。而运行于区块链上的程序,即智能合约,正是通过一种冗余计算的方式提供了可信计算的服务。典型的提供可信计算的区块链平台都是面向金融场景,包括以太坊、超级账本等。可信计算一般包括四个维度:可用性、可靠性、效率和安全性。这些典型的面向金融场景的区块链着重解决了可用性、可靠性和对数字货币交易的安全性。随着云计算、大数据的普及,大多数的企业、单位甚至个人都有着大量的、多维的数据。通过大数据技术去发挥这些数据的价值的时代已经到来。然而,当数据的产生、数据的存储和数据的使用涉及到不同的实体时,数据的接入和使用就面临着信任的问题。例如,当前大量的个人的数据产生于移动应用的使用过程中。这些数据的生产者,是个人和应用提供商,而存储则分布于个人手机和云端服务器。对于一个普通用户而言,他的数据分散在各个不同的应用提供商之间。当有一个特定的大数据应用需要用到同一个用户的多维的、分散的数据时,就会遇到各个参与者之间的可信问题:大数据应用如何向用户和数据提供方证明自己的行为是符合预期,不会泄漏数据或将数据二次转手。要解决大数据场景下的可信计算问题我们必须应对以下挑战:即分布式环境下多种资源的访 ...
【技术保护点】
1.一种对节点资源的访问控制方法,其特征在于,所述方法包括:/n预先构建的P2P网络中的第一节点向第二节点发起针对智能合约的调用任务,以使所述第二节点执行所述智能合约;所述第一节点为所述P2P网络中的任意节点,所述第二节点为所述P2P网络中事先启动了所述智能合约的节点;/n所述第二节点在执行所述智能合约前,针对该调用任务,判断所述第一节点是否有所述调用任务的访问权限,以及所述访问权限的授权步状态;/n当所述第一节点有所述调用任务的访问权限时,所述第二节点根据所述访问权限的授权步状态,执行或不执行所述智能合约。/n
【技术特征摘要】
1.一种对节点资源的访问控制方法,其特征在于,所述方法包括:
预先构建的P2P网络中的第一节点向第二节点发起针对智能合约的调用任务,以使所述第二节点执行所述智能合约;所述第一节点为所述P2P网络中的任意节点,所述第二节点为所述P2P网络中事先启动了所述智能合约的节点;
所述第二节点在执行所述智能合约前,针对该调用任务,判断所述第一节点是否有所述调用任务的访问权限,以及所述访问权限的授权步状态;
当所述第一节点有所述调用任务的访问权限时,所述第二节点根据所述访问权限的授权步状态,执行或不执行所述智能合约。
2.根据权利要求1所述的方法,其特征在于,所述第二节点在执行所述智能合约时会占用本地的资源,所述资源包括CPU资源、内存资源、网络资源或输入输出资源;所述方法还包括:
在所述智能合约的开发过程中,在所述智能合约的合约代码被编译为字节码时,所述P2P网络中的用户端将针对所述资源消耗的监测逻辑插桩到跳转指令和函数调用指令的位置,并以两个插桩点之间的所有指令作为一个基本块,确定所述基本块占用所述资源的单位消耗量以及所述智能合约占用所述资源的消耗上限;
在所述智能合约的执行过程中,所述第二节点遇到跳转指令或函数调用指令时,执行针对所述资源消耗的监测逻辑,根据所述基本块占用所述资源的单位消耗量,计算所述智能合约在本地执行时占用所述资源的总消耗量;
所述第二节点从所述调取任务中获取所述智能合约占用所述资源的消耗上限,并将所述智能合约在本地执行时占用所述资源的总消耗量与所述智能合约占用所述资源的消耗上限进行比较;
当所述智能合约在本地执行时占用所述资源的总消耗量大于所述智能合约占用所述资源的消耗上限时,改变所述访问权限的授权步状态。
3.根据权利要求2所述的方法,其特征在于,所述用户端以两个插桩点之间的所有指令作为一个基本块,确定所述基本块占用所述资源的单位消耗量以及所述智能合约占用所述资源的消耗上限,包括:
所述用户端确定所述跳转指令和所述函数调用指令两个插桩点之间的指令类型和指令数量,并定义每种指令类型占用所述资源的消耗量;
所述用户端根据所述指令数量和每种指令类型占用所述资源的消耗量,以两个插桩点之间的所有指令作为一个基本块,确定所述基本块占用所述资源的单位消耗量以及所述智能合约占用所述资源的消耗上限;
所述第二节点遇到跳转指令或函数调用指令时,执行针对所述资源消耗的监测逻辑,根据所述基本块占用所述资源的单位消耗量,计算所述智能合约在本地执行时占用所述资源的总消耗量,包括:
所述第二节点遇到跳转指令或函数调用指令时,执行针对所述资源消耗的监测逻辑,根据所计数的所述基本块的数量和所述基本块占用所述资源的单位消耗量,计算所述智能合约在本地执行时占用所述资源的总消耗量。
4.根据权利要求2所述的方法,其特征在于,所述输入输出资源具有多种类型,所述方法还包括:
在所述智能合约的开发过程中,针对所述输入输出资源的多种类型,用户端在所述智能合约的合约代码上方添加相应访问权限的注解,并显示所述注解,以将所述输入输出资源的多种类型一一提前声明。
5.根据权利要求1或2所述的方法,其特征在于,所述访问权限的授权步状态包括:
1)睡眠状态,表示授权步还未生成;
2)激活状态:表示授权步被请求激活,此时授权步已经生成;
3)有效状态,表示授权步开始执行,随着权限的使用,它的保护态发生变化;
4)挂起状态:表示授权步被管理员或因执行条件不足而强制处于挂起状态,它可以被恢复成有效状态,可能因生命周期用完或被管理员强制为无效状态;
5)无效状态:表示授权步已经没有存在的必要,可以在任务流程中删除。
6.根据权利要求1所述的方法,其特征在于,在所述第一节点向所述第二节点发起针对智能合约的调用任务前,所述方法还包括:
所述P2P网络中的任一节点在接收到用户端发送的合约启动请求时,该节点作为主节点启动所述智能合约,并在所述P2P网络中随机选择多个从节点,以使所述从节点启动所述智能合约,其中,所述智能合约存储于预先设置的可信分布式账本中;
所述主节点和所述从节点在启动所述智能合约后,生成一组公私钥;其中,所述从节点将所述公私钥中的公钥返回给所述主节点,将所述公私钥中的私钥存储在本地;
所述主节点将所有从节点返回的公钥与所述智能合约的元信息存证到所述可信分布式账本中,并将所述可信分布式账本返回的哈希值作为合约校验地址返回给所...
【专利技术属性】
技术研发人员:蔡华谦,朱晓旻,张舒汇,郭京申,舒俊宜,
申请(专利权)人:北京智融云河科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。