BVM会减少CPU资源的消耗 在Bottos中设置能支持以太坊合约

2019-11-13 15:00:01
来源: 腾讯

  【摘要】 编者话:Bottos研究院在BVM研究中投入了很多精力和成本,为了把最新的研究成果与进展报告给开发者社区的朋友,也方便后期有开发者团队接入提供方便。连载二对BVM在智能合

编者话:Bottos研究院在BVM研究中投入了很多精力和成本,为了把最新的研究成果与进展报告给开发者社区的朋友,也方便后期有开发者团队接入提供方便。连载二对BVM在智能合约实际应用层面实现“开发者友好”的优势和特性。连载三我们来谈一谈虚拟机对于Bottos公链生态的整体加持和赋能。

4.BVM 对于Bottos 生态的影响

Bottos 基础公有链以服务人工智能产业而设计,其性能优势集中体现在数据流转,以及算力、存储共享等方面,具有极强的产业属性。其原创技术特性包括智能货币设计、抽签式DPOS算法和引入 AI算法的分布式存储等,在数据隐私保护、超大数据存储等方面具有领先的竞争优势,而本次BVM的设计更是可以使得所有基于Bottos的技术底层受益。

从现有的情况来看,BVM更是大大增强了Bottos 主链本身的安全性、稳定性、可拓展性,以及效能。未来一段时间内,基于Bottos链的公链开发者可以集成BVM到链中,同时保持原有链上API的支持。

引入BVM对于Bottos生态有众多影响。

4.1 优化用户在Bottos主链上的资源消耗

前面的两个连载已经对BVM可以提升主链性能做了论述,用户在使用基于BVM运行的智能合约可以节省大量链上资源的损耗。

目前在Bottos链上主要有三类资源:CPU、NET 和 RAM:

· CPU 计算资源(CPU):当用户发起调用智能合约这个动作时,区块生产者需要根据智能合约地址查找合约代码,然后将代码加载到内存中执行,这个过程需要消耗一定的 CPU 算力。

· 网络带宽资源(NET):当用户发送一笔交易信息后,区块生产者需要将这笔交易打包生成区块,然后将区块通过网络同步给其它生产者,这个过程需要消耗一定网络带宽资源。

· 运行内存资源(RAM):Bottos 系统中的帐号信息、智能合约执行信息的当前的状态都是存储在内存中的,这些信息的储存就需要长期占用内存资源。

当前,CPU 主要由合约运行消耗的实际时间来结算,NET 主要与交易的大小相关,而 RAM 主要是基于合约带来的状态变换所使用的内存大小来决定的。

其中,BVM的出现会优化并减少用户对于CPU资源的消耗,现阶段这部分资源也是Bottos主链设施上比较稀缺的一种资源,从硬件的角度来说,目前的服务器性能所支持的 RAM 升级空间还是非常宽裕的,但是对于 CPU,目前的限制很大。

提升虚拟机效率,对基于 Bottos 主链生态的资源优化有着重大的意义。

4.2 使得Bottos生态更具有兼容性

前面的两篇连载我们都讲得是BVM的可拓展性,今天我们主要来讲讲Bottos生态在BVM的可拓展性下的兼容性。

作为一个去中心化的操作系统,当出现分歧时能否达成共识,在避免硬分叉的前提下保持迭代,将成为一个至关重要的问题。之前的BTC和ETH都曾出现过分叉问题,BTC因为速率扩容以及网络拥堵,社区无法达成共识,至今已经出现了多种分叉币。而ETH则主要因为DAO黑客事件,造成社区内激烈争论,最终分叉为ETH和ETC两条链。

为了实现更好的兼容性,Bottos 中设计了跨链交互和虚拟机独立架构机制。例如,在Bottos系统中设置了合约虚拟机 ( BVM )。它能够支持现有的以太坊合约。也就是说,现有的以太坊平台上的应用,只需要稍加配置,未来就能够在Bottos上面运行。

另外一点是,想要在公链生态上开发自己的Dapp很不容易,有很多基础模块需要书写,而Bottos公链通过BVM集成了很多底层开发模块,这样大大降低了开发者门槛,再加上Bottos并发处理速度快,开发不消耗Gas,将会吸引更多的普通开发者,有助于Bottos平台上涌现大量的商业级应用,快速形成平台生态系统。

4.3 保证主链生态的稳定和安全

BVM虚拟机的引入大大增强了主链生态的稳定性和安全性。越是功能强大的智能合约,在实现逻辑上也就更加复杂,也就越容易出现逻辑漏洞(Bug)。虚拟机从安全性、稳定性方面,不但阻断了程序员在编写智能合约代码错误而影响到整个主链,而且还防止不法分子运行恶意智能合约程序对于主链的攻击,如果直接运行在设备系统上,可能会有安全隐患。

因为每个节点都要运行智能合约进行验证,但如果不用虚拟机,而是在机器上直接运行,当智能合约开发者疏忽或测试不充分,而造成智能合约的代码有漏洞的话,就非常容易被黑客利用并攻击,这与上文中服务器虚拟机安全性有着共通性。

5. Bottos 引领区块链虚拟机VM的新标准

我们先来看下互联网的发展历程,互联网栈层自身的演化:一种像多层蛋糕一样的协议和语言,迄今仍在不断发展(虽然现在演化速度很慢了),组成了文件传输、email、网站等等服务,并提供了真正让人惊叹、动态变化而又无缝转换的用户体验。

这意味着多样的架构趋向专业化并产生出动态、有用的栈层的历程。长久以来,任何一个软件的细分领域都在谋求技术标准的整合和统一,这样的统一并非是由中心化组织去强制推行,而是通过软件本身逐渐得到主流市场的认可,最后成为事实上的技术标准。

对BVM进行划分并创建自包含的组件让BVM系统可以有高度可拓展性。此外,通过一些简单的编程工具,用户可以相对轻松地构建新的延展,这样,当有需要的时候,我们就可以推出一系列强大的工具进行配置、调试等。

BVM内置的分配器足够模块化满足应用具体的需求,而不需要创建高内存的结构支持,因为分配器本身不“拥有”它们使用的内存。同步这些分配器的生命周期就不需要复制它们,这就允许了用户可根据需要进行独立于内容的WebAssembly模块集成而不会遭受任何性能上的损失。

以上种种都表明BVM具有所有成为智能合约运行环境标准的素质。 目前,BVM的性能在不断优化提高,我们研究员以及我们的社区都在不断创建更多强大的工具包和库,不断努力帮助开发者实现更大的目标。

我们相信当终端用户和企业能够通过应用感受到区块链带来的好处的时候,区块链技术的应用终将被带动。

BVM我们会不断和社区一起工作,改进和开发BVM来支持这些努力。(Bottos)