【技术实现步骤摘要】
一种实现数据可信的自适应执行方法
本专利技术涉及区块链
,特别是涉及一种实现数据可信的自适应执行方法。
技术介绍
数据资源,是驱动数字经济发展的核心力量,也是提升信息社会智能水平和运行效率的关键要素,被视为决定未来竞争能力的战略资产。如何将政府、企事业单位在运行过程中形成的庞大数据资源资产化,使之成为支撑数字经济崛起的“新石油”,是数字经济发展的关键挑战。大数据的价值在于数据为人所用,在大数据场景下,多种参与者面向各自的需求,在一个去中心的网络中提供数据、分析数据、发挥数据的价值、获得数据的收益。在这个场景下去实现可信计算,会面临着以下两个基本问题:1)数据的安全性。与金融场景的数字货币不同,大数据场景下的数据价值在于数据本身。一旦数据脱离所有者控制,数据使用方就可以任意地复制、处理、传播这些数据,发挥数据的价值,然而数据所有者也就失去了对数据的管控,无法保障自己获得数据的收益。2)执行效率低。当前的区块链平台智能合约的调用和执行的效率依赖于底层账本的同步效率。由于当前的区块链大多采用全网共识的同步机制,这也使 ...
【技术保护点】
1.一种实现数据可信的自适应执行方法,其特征在于,所述方法包括:/n预先构建的P2P网络中的任一节点在接收到用户端发送的合约启动请求时,该节点作为主节点启动所述智能合约,并在所述P2P网络中随机选择多个从节点,以使所述从节点启动所述智能合约,其中,所述智能合约存储于预先设置的可信分布式账本中;/n所述主节点和所述从节点在启动所述智能合约后,生成一组公私钥;其中,所述从节点将所述公私钥中的公钥返回给所述主节点,将所述公私钥中的私钥存储在本地;/n所述主节点将所有从节点返回的公钥与所述智能合约的元信息存证到所述可信分布式账本中,并将所述可信分布式账本返回的哈希值作为合约校验地址 ...
【技术特征摘要】
1.一种实现数据可信的自适应执行方法,其特征在于,所述方法包括:
预先构建的P2P网络中的任一节点在接收到用户端发送的合约启动请求时,该节点作为主节点启动所述智能合约,并在所述P2P网络中随机选择多个从节点,以使所述从节点启动所述智能合约,其中,所述智能合约存储于预先设置的可信分布式账本中;
所述主节点和所述从节点在启动所述智能合约后,生成一组公私钥;其中,所述从节点将所述公私钥中的公钥返回给所述主节点,将所述公私钥中的私钥存储在本地;
所述主节点将所有从节点返回的公钥与所述智能合约的元信息存证到所述可信分布式账本中,并将所述可信分布式账本返回的哈希值作为合约校验地址返回给所述用户端;
所述P2P网络中的任一节点在接收到用户端发送的针对所述智能合约的执行请求时,该节点作为请求节点发起对所述主节点和所有从节点的调用;
所述主节点和所有从节点针对该调用同步执行所述执行请求时,保持相互之间的合约状态的同步、合约执行顺序的同步、合约输入数据的同步以及合约输出数据的同步,并向所述请求节点返回相应的执行结果,所述执行结果包括所述主节点和所述从节点的基于自身私钥的签名;
所述请求节点依据预先设置的结果统计策略,将所接收到的执行结果返回给所述用户端;
所述用户端从所述合约校验地址获取所述公钥,并根据公钥对所述执行结果中的签名进行验证。
2.根据权利要求1所述的方法,其特征在于,所述合约启动请求包括所述智能合约在所述可信分布式账本中的合约代码地址和执行模式,所述执行模式包括单点执行模式或多点执行模式,所述方法还包括:
所述用户端在开发完所述智能合约时,将所述智能合约保存至所述可信分布式账本上,并将所述可信分布式账本返回的哈希值作为所述合约代码地址;
所述用户端针对所述合约代码地址,生成所述合约启动请求,并采用自身私钥对所述合约启动请求进行签名;
预先构建的P2P网络中的任一节点在接收到用户端发送的合约启动请求时,该节点作为主节点启动所述智能合约,并在所述P2P网络中随机选择多个从节点,以使所述从节点启动所述智能合约,其中,所述智能合约存储于预先设置的可信分布式账本中,包括:
所述主节点和所述从节点根据所述合约代码地址,按所述执行模式启动所述智能合约。
3.根据权利要求1所述的方法,其特征在于,针对所述合约状态的同步,所述方法还包括:
所述主节点和所有从节点中的每个节点在执行所述执行请求的过程中,依据预先确定的合约执行记录策略,对所述智能合约的执行进行记录;
当所述主节点和所有从节点中的任一节点故障或不能同步调用所述智能合约时,确定所述主节点和所有从节点中当前处于最新状态的目标节点,并获取所述目标节点对所述智能合约的执行记录;
将所述目标节点对所述智能合约的执行记录在新的节点或不能同步调用所述智能合约的节点中进行回放,所述新的节点是在所述P2P网络中随机选择的一个节点。
4.根据权利要求3所述的方法,其特征在于,当所述合约执行记录策略为基于事务的合约执行记录策略时,每个节点中设置有事务记录文件;
所述主节点和所有从节点中的每个节点在执行所述执行请求的过程中,依据预先确定的合约执行记录策略,对所述智能合约的执行进行记录,包括:
所述主节点和所有从节点中的每个节点在执行所述执行请求的过程中,判断是否有新的事务请求;
当有新的事务请求时,所述节点将所述事务请求对应的事务进行标号,并将该项事务执行时传入的参数和所用输入输出I/O数据作为事务记录写入所述事务记录文件;
将所述目标节点对所述智能合约的执行记录在新的节点或不能同步调用所述智能合约的节点中进行回放,所述新的节点是在所述P2P网络中随机选择的一个节点,包括:
所述新的节点或所述不能同步调用所述智能合约的节点接收所述目标节点的事务记录文件,判断所述目标节点的事务记录文件中是否有下一条事务记录;
当有下一条事务记录时,所述新的节点或所述不能同步调用所述智能合约的节点判断是否有将该条事务记录写入本地的事务记录文件中,并依据该条事务记录执行该项事务。
5.根据权利要求3所述的方法,其特征在于,当所述合约执行记录策略为基于堆操作的合约执行记录策略时,每个节点中设置有堆操作记录文件;
所述主节点和所有从节点中的每个节点在执行所述执行请求的过程中,依据预先确定的合约执行记录策略,对所述智能合约的执行进行记录,包括:
所述主节点和所有从节点中的每个节点在所述智能合约调用的过程中,判断是否有新的事务请求;
当没有新的事务请求时,所述节点将所记录的堆操作中重复赋值的操作进行删除,再将剩余所记录的堆操作写入所述堆操作记录文件;
当有新的事务请求时,所述节点执行以下步骤:
判断是否产生新的堆操作;
当产生新的堆操作时,判断该堆操作是否是对局部变量的操作;
当该堆操作不是对局部变量的操作时,对所述堆操作进行记录,并继续判断是否产生新...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。