(一) 用 JavaScript 写 DApp:谈谈 ETH、EOS、FIBOS
一个普通开发者对 ETH、EOS、FIBOS的看法
一直保持着如儿童般的好奇心和技术的热情,挺早就关注区块链和加密货币。当然并没有发财,这可能跟自己知识结构和本身比较穷有关。
在读大学的时候第一次听到了比特币,那时候可能几美元吧记不清了。后来接触到了以太坊,第一次听到了 DApp 这个词。可能当时各种资料比较少,只是看了看文档并没有真正尝试去写一个 DApp。
真正想着去编写一个 DApp 应该是在 2018 年,当时一句话感触至深:
你想真正了解一件事情最好的方法是参与其中。
于是乎在 2018 年花了一点点钱买了一点点加密币。大家不用猜也知道,买在了山顶上,哈哈哈。也就是从那时候开始,在 Udemy 买了课程 Ethereum and Solidity: The Complete Developer's Guide 和 参加了 LoomNetWork 的在线互动课程。这两个课程质量非常好,强烈推荐,算是我的 DApp 入门课程。但是但是,我并没有后续自己独立开发出一个 DApp。
再后来,通过一直在微博上关注的西祠胡同响马,了解到了 FIBOS,也把自己为数不多的 EOS 兑换成了 FO。
为什么会关注 FIBOS 呢?经历了 Solidity 写 DApp 的确发现 Solidity 其实也有一定的学习成本,虽然说 Solidity 跟 Javascript 类似,但是还是有自己不同的语法。另外 DApp 编程,跟中心化应用你的大脑回路需要不一样。另外 ETH 一个缺点就是性能比较差,而且跑你的 DApp 非常贵。大家应该也听说过一个云养猫的 DApp 就让 ETH 拥堵不堪了。
当然 ETH 的开发团度肯定也意识到了这些问题,但是有号称区块链 3.0 的 EOS 出来想要解决这些问题。更快的运行速度,更大的通量,更便宜的运行成本,但是似乎并没有解决开发门槛的问题。目前 EOS 仅仅支持 C 和 C ++ 编写合约。EOS 比 ETH 开发门槛更高了。
想必无数个开发工程师都会在咆哮,就不能来一个热门语言例如 Javascript 就能开发的智能合约呀!毕竟:
一个凡是真理:凡是能用 Javascript 写的,终将被 Javascript 改写。
最终历史重任似乎落到了 FIBOS 身上,一个结合 FIBJS 以及 EOS 的 JavaScript 的运行平台,它使得 EOS 提供可编程性,并允许使用 JavaScript 编写智能合约。JavaScript 开发 + BANCOR 协议智能通证 + 开发者服务,FIBOS 平台实现了快速开发、快速部署和稳定且流动的通证体系,帮助开发者一步进入区块链时代。
官方文档中仔细罗列了其与 EOS 相比的优势:
1 目前 EOS 的环境部署困难
EOS 的编译环境依赖性强,编译过程时常遇到很多问题,对于普通一个开发者来说,大多数面对 CMake 的情况是束手无策的。
而 FIBOS 提供一套预编译开发环境,开发者可以快速实现部署,把更多的时间用在编写智能合约上。
2 开发门槛高
编写 EOS 智能合约需要掌握 C++ 语言,这对于一名开发者来说学习成本非常高,并且我们认为正确的写出编译合约的 CMAKELISTS.TXT 才是刚刚开始!
而对于 FIBOS 来说,开发者可以使用 JavaScript 脚本语言进行编写智能合约,而这门语言学习成本很低。
对于一名开发者来说,如果一件事情简单容易,我们认为他们会更容易接受,并渴望了解 FIBOS。
3 测试套件原始
EOS 的测试用例编写也必须使用 C++,高难度的语言学习,高难度的编译,使得测试这件事在 EOS 上面变得复杂、困难。
FIBOS 集成 FIBJS 服务端开发平台,拥有成熟的测试套件,在 FIBOS 平台上编写的用例,开发者可以使用 JavaScript 编写测试用例,这一切看起来非常的灵活、轻松!
4. EOS 迭代周期长
一个 EOS 智能合约要想成功部署发布,需要经过编写、编译、部署、测试、调试、修复,漫长的等待过程。
FIBOS 支持本地合约模式,随时修改随时测试,结合一些 IDE 工具可以做到一键研发测试。
5. 开发生态原始
EOS 使用 C++ 参与编写研发,并不能做到 NPM 这样的生态环境,而 FIBOS 支持 NPM 包管理,与庞大的 NPM 生态紧密连接。
6. 部署发布合约成本高
EOS 编写合约需要让 C++ 代码编译到 WASM,而 WASM 编译文件非常庞大,让发布部署运行合约成本非常高昂。
FIBOS 编写的合约可以通过打包脚本,压缩文件极大的降低部署发布成本。
7. 合约不可审计
EOS 合约编译成 WASM 后,对审计阅读合约代码带来了极大的困难,开发者无法评估合约的安全性。
FIBOS 的合约使用 JavaScript 编写并且全部开源,方便社区审计,迅速形成共识。
FIBOS 应该是我目前最好的选择
还是那句话,根据 FIBOS 的文档,FIBOS 在技术上优势明显。当然劣势也很显然,目前社区远小于 ETH 和 EOS,质量高、热闹的 DApp 也没有。
还是那句话,你想真正了解一件事情最好的方法是参与其中。我想要了解 FIBOS 是不是真的如此优秀,就是自己动手写一个 DApp。
那选哪个方向呢,我的想法是选一个业务代码不是很多的,但是需要区块链解决中心化 APP 无法解决的信任问题的场景去实现。这里先卖一个关子。
基本上技术架构:
上链部分:FIBOS # 需要学习,但是门槛应该不高 前 端:Vue.js # 比较擅长 后 端:SpingBoot # 最近正在学习,正好实践一下
计划
目前暂时是有空就去做,还没有具体的计划。后续的进度和一些开发中的有趣的点应该也会在后续文章中分享。
大家也可以关注我的知乎,知乎更新会及时一点。https://www.zhihu.com/people/...