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,以使合约调用者通过异步消息接收向合约容器发起合约调用、以及返回执行结果;根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行。可选地,所述根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行包括:获取合约开发场景;根据合约开发场景判断合约是否为安全程度高的受信任合约;如果合约为安全程度高的受信任合约, ...
【技术保护点】
1.一种兼顾安全与性能的区块链合约建立方法,其特征在于,包括:将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor,以使合约调用者通过异步消息接收向合约容器发起合约调用、以及返回执行结果;根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行。
【技术特征摘要】
1.一种兼顾安全与性能的区块链合约建立方法,其特征在于,包括:将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor,以使合约调用者通过异步消息接收向合约容器发起合约调用、以及返回执行结果;根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行。2.根据权利要求1所述的方法,其特征在于,所述根据合约安全程度,选择将合约部署至区块链节点进程运行、或单独的合约执行进程运行包括:获取合约开发场景;根据合约开发场景判断合约是否为安全程度高的受信任合约;如果合约为安全程度高的受信任合约,则将合约部署至区块链节点进程运行;如果合约为安全程度低的不受信任合约,则将合约部署至单独的合约执行进程运行,其中,所述单独的合约执行进程隔离在区块链节点进程外。3.根据权利要求2所述的方法,其特征在于,所述根据合约开发场景判断合约是否为安全程度高的受信任合约包括:如果合约开发场景为平台内置的基础合约,则所述基础合约安全性高,并将其作为受信任合约;如果合约开发环境为第三方开发的合约,则所述第三方开发的合约安全性低,并将其作为不受信任合约。4.根据权利要求1-3任一所述的方法,其特征在于,在所述将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容器封装为Actor之后,所述方法还包括:将共识策略封装为Actor;由封装为Actor的共识策略通过异步消息调用由Actor封装在区块链节点进程运行合约的第一合约容器;由封装为Actor的共识策略通过异步消息调用由Actor封装在单独的合约执行进程运行合约的第二合约容器。5.根据权利要求4所述的方法,其特征在于,所述通过异步消息发起第一合约容器和第二合约容器传入传出格式均一致。6.根据权利要求4所述的方法,其特征在于,在所述将部署至区块链节点进程、或单独的合约执行进程运行的合约对应合约容...
【专利技术属性】
技术研发人员:陈胜,蒋步云,
申请(专利权)人:北京连琪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。