zoukankan      html  css  js  c++  java
  • 以太坊虚拟机EVM 和EOS 虚拟机的劣势!

     EVM:

    01 智能合约设计层面

    • 缺乏标准库支持:EVM缺少完善的标准库支持,甚至最基本的string类型支持,在EVM中都很鸡肋,例如字符串拼接、切割、查找等等都需要开发者自己实现。带来的后果就是开发者需要关注更多非本身业务的零碎细节,不能专注本身业务开发。同时自行实现的类库可能会因为时间、空间复杂度太高,消耗大量无谓的gas,又或者开发者从开源项目中借鉴相关类库代码,但也会引入更多安全性方面的问题,加重合约代码审计的复杂度,亦是得不偿失。

    • 难以调试和测试:EVM难以调试和测试,EVM除了能抛出OutOfGas异常之外,不会给开发者返回任何信息,无法打印日志、要做到断点、单步调试更是完全不可能。虽然event机制可以部分改善这个问题,但event机制的本身设计就决定了他不是一个优雅好用的调试工具。

    • 不支持浮点数:EVM不支持浮点数,以太坊以Wei为最小单位,只有整数,不支持其他粒度的计量,这种设计避免了引入浮点数导致的精度问题,但开发者在实际开发中,为了表示一个eth变量,就会在变量后面跟很多0,导致代码维护极度复杂。同时不可否认,浮点数在特定的场景下,还是有很大的利用价值的,不能一刀切直接放弃引入。

    • 合约不能升级:EVM不支持合约升级,合约升级是智能合约开发中的一个强需求,也是每一个合约开发者必须要考虑的问题,合约升级可以实现给现有合约打安全补丁、扩展现有合约功能等等。EVM完全不支持升级,开发者只能通过发布新合约来解决这个问题,费时费力。

    EOS VM:

    EOS是继以太坊之后,又一现象级的公链应用,有自己独立的一套基于WebAssembly的智能合约引擎,但目前EOS合约开发有如下几个明显问题:

    • 账户系统不友好:创建账户操作难度大,创建账户后才能发布合约,EOS需要使用已有账户去创建新账户,寻找一个拥有EOS账户的朋友或第三方,对任何人来说都不是一件很容易的事。创建账号需要购买RAM,就是需要花钱建账号,如果找第三方帮忙创建账号存在资金风险。创建账号后,还需要抵押EOS换取CPU使用时间和net带宽,才能在EOS网络做操作。这些操作对于开发者来说过于繁琐。

    • RAM价格:RAM价格昂贵,合约运行必须用到RAM,EOS开通了RAM市场,用于交易内存,虽然说RAM可以买卖,但依然存在很多人炒作,导致RAM价格昂贵。

    • 开发难度大:使用C++作为合约开发语言,极大的提高了合约开发门槛,C++本身就极为复杂,在其上还要去调用EOS.IO C++ API完成智能合约开发,对开发者的个人能力要求极高。

  • 相关阅读:
    关于研发核心团队建设的一些思考
    无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问。)” (Microsoft SQL Server,错误: 5120)的解决方法
    自适应网页设计(Responsive Web Design)
    css浮动与绝对定位小记
    WEB进度条控件
    GitHub上整理的一些工具
    雾里看花般的迷茫--货运APP
    揭秘史上最完美一步到位的搭建Andoriod开发环境
    我是如何在SQLServer中处理每天四亿三千万记录的
    货运APP产品魔力=卓越功能×情感诉求
  • 原文地址:https://www.cnblogs.com/x-poior/p/10256324.html
Copyright © 2011-2022 走看看