一种兼顾安全与性能的区块链合约建立方法及系统技术方案

技术编号:19549450 阅读:28 留言:0更新日期:2018-11-24 21:36
本发明专利技术提供一种兼顾安全与性能的区块链合约建立方法及系统,所述方法包括:将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor,以使合约调用者通过异步消息接收向合约容器发起合约调用、以及返回执行结果;根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行。本发明专利技术能够通过引入Actor模型,实现对合约部署策略自适应调整,提高合约部署策略的灵活性,更好的同时兼顾合约执行的安全性和合约执行性能。

A Block Chain Contract Establishment Method and System Considering Safety and Performance

The invention provides a method and system for building block chain contract, which takes into account both security and performance. The method includes encapsulating the contract corresponding contract container deployed to the block chain node process or the operation of a separate contract execution process as an Actor to enable the contract caller to initiate contract calls to the contract container through asynchronous message reception. And return the execution results; according to the degree of contract security, choose to deploy the contract to the block chain node process or run a separate contract execution process. By introducing the Actor model, the invention can adjust the contract deployment strategy adaptively, improve the flexibility of the contract deployment strategy, and better take into account the security of contract execution and the performance of contract execution.

【技术实现步骤摘要】
一种兼顾安全与性能的区块链合约建立方法及系统
本专利技术涉及区块链
,尤其涉及一种兼顾安全与性能的区块链合约建立方法及系统。
技术介绍
为了适应更多的应用场景,区块链引入了合约机制,允许第三方编写、签名部署、签名调用合约。由于合约的调用执行可能引发计算资源(包括CPU、内存和存储)的过度占用,区块链通常采用所谓的“安全沙箱”,将合约的执行隔离在一个合约容器内。合约容器采用进程隔离,监视和约束合约执行进程对计算资源的占用,一旦发现异常,将强制终止合约执行并释放计算资源。从而确保区块链节点本身的安全。由于合约的执行依赖区块链节点提供执行上下文并调用区块链节点提供的底层API,因此需要在合约容器与区块链节点之间进行跨进程通信和API调用,导致合约执行性能的下降。
技术实现思路
本专利技术提供的兼顾安全与性能的区块链合约建立方法及系统,能够通过引入Actor模型,实现对合约部署策略自适应调整,提高合约部署策略的灵活性,更好的同时兼顾合约执行的安全性和合约执行性能。第一方面,本专利技术提供一种兼顾安全与性能的区块链合约建立方法,包括:将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor,以使合约调用者通过异步消息接收向合约容器发起合约调用、以及返回执行结果;根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行。可选地,所述根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行包括:获取合约开发场景;根据合约开发场景判断合约是否为安全程度高的受信任合约;如果合约为安全程度高的受信任合约,则将合约部署至区块链节点进程运行;如果合约为安全程度低的不受信任合约,则将合约部署至单独的合约执行进程运行,其中,所述单独的合约执行进程隔离在区块链节点进程外。可选地,所述根据合约开发场景判断合约是否为安全程度高的受信任合约包括:如果合约开发场景为平台内置的基础合约,则所述基础合约安全性高,并将其作为受信任合约;如果合约开发环境为第三方开发的合约,则所述第三方开发的合约安全性低,并将其作为不受信任合约。可选地,在所述将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor之后,所述方法还包括:将共识策略封装为Actor;由封装为Actor的共识策略通过异步消息调用由Actor封装在区块链节点进程运行合约的第一合约容器;由封装为Actor的共识策略通过异步消息调用由Actor封装在单独的合约执行进程运行合约的第二合约容器。可选地,所述通过异步消息发起第一合约容器和第二合约容器传入传出格式均一致。可选地,在所述将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor之后,所述方法还包括:由封装为Actor的共识策略通过集群调用设置于其他主机上并由Actor封装在区块链节点进程运行合约的第三合约容器、或设置于其他主机上并由Actor封装在单独的合约执行进程运行合约的第四合约容器。可选地,所述选择部署模块包括:获取子模块,用于获取合约开发场景;判断子模块,用于根据合约开发场景判断合约是否为安全程度高的受信任合约;第一部署子模块,用于如果合约为安全程度高的受信任合约,则将合约部署至区块链节点进程运行;第二部署子模块,用于如果合约为安全程度低的不受信任合约,则将合约部署至单独的合约执行进程运行,其中,所述单独的合约执行进程隔离在区块链节点进程外。可选地,所述系统还包括:共识封装模块,用于将共识策略封装为Actor;第一调用模块,用于由封装为Actor的共识策略通过异步消息调用由Actor封装在区块链节点进程运行合约的第一合约容器;第二调用模块,用于由封装为Actor的共识策略通过异步消息调用由Actor封装在单独的合约执行进程运行合约的第二合约容器。可选地,所述系统还包括:集群调用模块,用于由封装为Actor的共识策略通过集群调用设置于其他主机上并由Actor封装在区块链节点进程运行合约的第三合约容器、或设置于其他主机上并由Actor封装在单独的合约执行进程运行合约的第四合约容器。本专利技术实施例提供的兼顾安全与性能的区块链合约建立方法及系统,所述方法主要是引入Actor模型,将合约容器封装为Actor,从而实现对合约的透明化调用,进而使得进程内、跨进程、或者跨主机、跨链合约调用的代码完全一致。所述方法还能够根据合约开发场景选择最佳的合约部署策略,同时最大化提高区块链合约机制的性能、以及安全性。本实施例所述方法主要是根据合约开发场景确定合约部署策略;例如,根据合约开发场景确定合约的可信任级别,然后按照合约的可信任级别,采用与之相应的合约部署策略,对可信任的合约性能优先,采用区块链节点进程内部署;对第三方合约安全优先,采用单独的合约执行进程隔离的部署;或者根据合约开发场景确定合约交易种类,采用与之相应的合约部署策略,通过自适应合约部署策略,提高合约部署策略的灵活性,更好的同时兼顾合约执行的安全性和合约执行性能。附图说明图1为本专利技术一实施例区块链合约建立方法的流程图;图2为本专利技术另一实施例区块链合约建立方法的流程图;图3为本专利技术一实施例区块链合约建立系统的结构示意图;图4为本专利技术另一实施例区块链合约建立系统的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供一种兼顾安全与性能的区块链合约建立方法,如图1所示,所述方法包括:S11、将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor,以使合约调用者通过异步消息接收向合约容器发起合约调用、以及返回执行结果;S12、根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行。本专利技术实施例提供的兼顾安全与性能的区块链合约建立方法主要是引入Actor模型,其中,所述Actor模型是著名的并发计算模型,目前其已成为研制并发面向对象语言的一种重要的基础模型,将合约容器封装为Actor,从而通过将合约容器Actor化实现对合约的透明化调用,进而使得进程内、跨进程、或者跨主机、跨链合约调用的代码完全一致。所述方法还能够根据合约开发场景选择最佳的合约部署策略,同时最大化提高区块链合约机制的性能、以及安全性。本实施例所述方法主要是根据合约开发场景确定合约部署策略;例如,根据合约开发场景确定合约的可信任级别,然后按照合约的可信任级别,采用与之相应的合约部署策略,对可信任的合约性能优先,采用区块链节点进程内部署;对第三方合约安全优先,采用单独的合约执行进程隔离的部署;或者根据合约开发场景确定合约交易种类,采用与之相应的合约部署策略,通过自适应合约部署策略,提高合约部署策略的灵活性,更好的同时兼顾合约执行的安全性和合约执行性能。另外,本实施例所述方法还对允许并发执行且存在瓶颈的合约,以Actor集群的方式部署,支持性能的弹性扩充,进一步提高区块链合约机本文档来自技高网...

【技术保护点】
1.一种兼顾安全与性能的区块链合约建立方法,其特征在于,包括:将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor,以使合约调用者通过异步消息接收向合约容器发起合约调用、以及返回执行结果;根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行。

【技术特征摘要】
1.一种兼顾安全与性能的区块链合约建立方法,其特征在于,包括:将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor,以使合约调用者通过异步消息接收向合约容器发起合约调用、以及返回执行结果;根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行。2.根据权利要求1所述的方法,其特征在于,所述根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行包括:获取合约开发场景;根据合约开发场景判断合约是否为安全程度高的受信任合约;如果合约为安全程度高的受信任合约,则将合约部署至区块链节点进程运行;如果合约为安全程度低的不受信任合约,则将合约部署至单独的合约执行进程运行,其中,所述单独的合约执行进程隔离在区块链节点进程外。3.根据权利要求2所述的方法,其特征在于,所述根据合约开发场景判断合约是否为安全程度高的受信任合约包括:如果合约开发场景为平台内置的基础合约,则所述基础合约安全性高,并将其作为受信任合约;如果合约开发环境为第三方开发的合约,则所述第三方开发的合约安全性低,并将其作为不受信任合约。4.根据权利要求1-3任一所述的方法,其特征在于,在所述将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor之后,所述方法还包括:将共识策略封装为Actor;由封装为Actor的共识策略通过异步消息调用由Actor封装在区块链节点进程运行合约的第一合约容器;由封装为Actor的共识策略通过异步消息调用由Actor封装在单独的合约执行进程运行合约的第二合约容器。5.根据权利要求4所述的方法,其特征在于,所述通过异步消息发起第一合约容器和第二合约容器传入传出格式均一致。6.根据权利要求4所述的方法,其特征在于,在所述将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容...

【专利技术属性】
技术研发人员:陈胜蒋步云
申请(专利权)人:北京连琪科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1