【技术实现步骤摘要】
区块链中智能合约的执行方法、节点和区块链系统
[0001]本公开涉及计算机
,特别涉及一种区块链中智能合约的执行方法、节点和区块链系统。
技术介绍
[0002]区块链上的数据具有公开透明和不可篡改等特性,提高了数据存储的安全性。智能合约是存储在区块链上并能够自动执行的程序。
[0003]目前,大部分区块链网络执行一笔智能合约交易,区块链网络所有节点或大部分都需同时对智能合约进行执行。
技术实现思路
[0004]专利技术人发现:如果智能合约代码有问题,或存在恶意代码,那么执行智能合约的节点将都会受到影响。可能出现过多节点同时处于阻塞状态或不可控状态,这会导致区块链网络瘫痪,还可能会导致交易结果错误,降低交易过程的安全性。
[0005]本公开所要解决的一个技术问题是:如何提高智能合约执行的安全性和区块链系统的容错性。
[0006]根据本公开的一些实施例,提供的一种区块链中智能合约的执行方法,包括:多个控制节点中的每一个,接收服务节点发送的合约调用交易请求,合约调用交易请求包括:合约执行的预期结果;将合约调用交易请求发送至各个非控制节点,其中,非控制节点的数量小于最大容许作恶节点数;接收各个非控制节点返回的合约调用交易的结果,并验证各个非控制节点返回的合约调用交易的结果与合约执行的预期结果是否匹配;在各个非控制节点返回的合约调用交易的结果与合约执行的预期结果匹配的情况下,将合约调用交易请求广播至其他节点执行合约调用交易。
[0007]在一些实施例中,将合约调用交易请求发 ...
【技术保护点】
【技术特征摘要】
1.一种区块链中智能合约的执行方法,包括:多个控制节点中的每一个,接收服务节点发送的合约调用交易请求,所述合约调用交易请求包括:合约执行的预期结果;将所述合约调用交易请求发送至各个非控制节点,其中,所述非控制节点的数量小于最大容许作恶节点数;接收各个非控制节点返回的合约调用交易的结果,并验证各个非控制节点返回的合约调用交易的结果与所述合约执行的预期结果是否匹配;在各个非控制节点返回的合约调用交易的结果与所述合约执行的预期结果匹配的情况下,将所述合约调用交易请求广播至其他节点执行合约调用交易。2.根据权利要求1中所述的执行方法,其中,所述将所述合约调用交易请求发送至各个非控制节点包括:将所述合约调用交易请求和非控制节点指示标识发送至各个非控制节点,其中,所述非控制节点指示标识用于指示各个非控制节点执行合约调用交易。3.根据权利要求1中所述的执行方法,其中,所述接收各个非控制节点返回的合约调用交易的结果包括:在预设时间内接收各个非控制节点返回的合约调用交易的结果。4.根据权利要求1中所述的执行方法,其中,所述接收服务节点发送的合约调用交易请求包括:接收服务节点发送的合约调用交易请求、控制节点指示标识和各个控制节点的标识;根据各个控制节点的标识确定非控制节点的标识;所述将所述合约调用交易请求发送至各个非控制节点包括:根据所述控制节点指示标识和非控制节点的标识将所述合约调用交易请求发送至各个非控制节点。5.根据权利要求1中所述的执行方法,还包括:在各个非控制节点返回的合约调用交易的结果与所述合约执行的预期结果的不匹配的情况下,将所述合约调用交易请求丢弃。6.根据权利要求1中所述的执行方法,还包括:服务节点接收用户发起的交易请求;所述服务节点在接收到的交易请求中包括合约调用交易请求的情况下,将本节点作为一个控制节点,并随机选取预设数量的节点作为控制节点,其中,所述预设数量大于或等于最大容许作恶节点数;所述服务节点将所述合约调用交易请求发送至各个控制节点。7.根据权利要求1中所述的执行方法,还包括:多个所述非控制节点中的每一个,接收所述控制节点发送的所述合约调用交易请求;根据所述合约调用交易请求执行合约调用交易,得到合约调用交易的结果并返回至所述控制节点;将所述合约调用交易的结果进行存储。8.根据权利要求7所述的执行方法,还包括:多个所述非控制节点中的每一个,响应于再次接收到所述合约调用交易请求,查询是否存储所述合约调用交易请求对应
的合约调用交易的结果;在已存储所述合约调用交易请求对应的合约调用交易的结果的情况下,将所述合约调用交易的结果进行同步广播。9.根据权利要求8所述的执行方法,还包括:具有出块权的节点接收各个节点广播的所述合约调用交易的结果,对各个节点广播的所述合约调用交易的结果完成共识验证之后,生成区块,并将所述区块同步至其他节点,由其他节点验证区块后写入本地账本。10.一种区块链中的节点,其中,在所述节点被选作控制节点的情况下,包括:接收模块,用于接收服务节点发送的合约调用交易请求,所述合...
【专利技术属性】
技术研发人员:刘岩,梁伟,赵君,梁燕,
申请(专利权)人:中国电信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。