【一五一十】想基于EOS开发DAPP, C++之外的其他选择是什么?

今天介绍两个项目,分别是用Python和JS语言,在EOS上构建智能合约。感兴趣的同学可以了解一下。

BM选择了C++来构建EOSIO软件,一来是因为这是他熟练掌握的语言,并且,可以借助于C++的高级特性,尽量保障区块链项目运行的高性能和高安全性。不过,C++的学习曲线以及复杂的特性,常常让许多开发者望之却步。

这时候开发者就面临两种选择: 要么开始去学习C++,尽快入门学会用C++来构建智能合约;要么,等着官方的开发进度,毕竟,也有其他的语言支持WASM虚拟机,在EOS白皮书中也曾经提到过会后续支持JAVA等语言。

C++从入门到精通的路子走得艰难,从入门到放弃会更加容易。而对于其他语言背景的同学们来说,如何用自己所熟悉的技能栈,应用到EOS的开发之中,是个有吸引力的方向。

程序员喜欢发明轮子,也喜欢造轮子给别人用,现在EOS社区中也有多个项目提供了在C++之外的其他的选择,想象一下,你也可以直接用更熟练的语言来创建DAPP,效率会提升很多。

本文会介绍两个项目,分别是PyEOS,使用python语言开发EOS智能合约;以及西祠胡同创始人响马大叔的新项目FIBOS,将fibjs与EOS结合,实现用Javascript写EOS智能合约。

当然,社区中还有许多其他的优秀开发者也正在根据自己的理念来创建EOS相关的开发SDK,包括go语言等,也欢迎各位留言补充。

We are all EOS.

PyEOS

github地址:https://github.com/learnforpractice/pyeos

相应文档:见readme文件。

【一五一十】想基于EOS开发DAPP, C++之外的其他选择是什么?_第1张图片
image.png

作者id为Learnforpractice,是个低调做事的人,如果有对这个项目很感兴趣的EOS开发者,可以加我微信(shuke0327), 拉你到相应的微信群中,一起交流。

该项目的简介为:A Self Evolving Universal Smart Contract Platform, 自进化的通用智能合约平台。

基本资料

在文档之中,作者介绍了必备的核心知识,并介绍如何用pyeos来开发第一个智能合约。

安装

git clone https://www.github.com/learnforpractice/pyeos
cd pyeos
git submodule update --init --recursive

在Ubuntu安装依赖环境:

sudo apt-get install libleveldb-dev
sudo apt-get install libreadline-dev

在Mac下安装依赖环境:

brew install leveldb
brew install readline

然后运行脚本:

./eosio_build.sh

实现第一个智能合约

简略摘要一下项目中的内容。

运行pyeos:

./pyeos/pyeos --manual-gen-block --debug -i  --contracts-console

如果是第一次运行项目,会为你创建钱包,导入几个私钥用作测试。

创建智能合约时候,

sketch.create('hello', 'helloworld', 'py')

会创建如下的三个文件:

helloworld.py
helloworld.abi
t.py

helloworld.py 是 Python 智能合约源代码, helloworld.abi 是 ABI(Application Binary Interface) 文件, t.py 则包含了测试代码。

具体的情形,可以见github repo的说明。不过作者只写了英文版,回头翻译下写个具体的教程。

FIBOS

FIBOS项目由响马发起,是将FIJS跟EOS结合起来的项目。不过,根据网站上的介绍,所开发的智能合约是运行在FIBOS 自己的公链上,这是因为,源代码并不是编译为 WASM 的。

用v8实现的SJ虚拟机,直接jit(just in time)成机器码,然后在链上运行。

根据目前的理解,FIBOS实际上是相对独立于EOS的一个项目,基于EOS,可以粗略理解为EOS的一条侧链,使用JS开发,并且,值得注意的是还发了自己的token:FO.

官方网站:

https://fibos.io/

根据官网的介绍,FIBOS结合了"JavaScript 开发 + BANCOR 协议智能通证 + 开发者服务,FIBOS 平台实现了快速开发、快速部署和稳定且流动的通证体系,帮助开发者一步进入区块链时代。"

开发指南:

https://fibos.io/docs/guide/readme.md.html

FIBOS提供了详细的开发文档,包括:

  • 如何搭建FIBOS的开发环境
  • 如何使用 fibos.js 与 FIBOS 交互,获取区块/区块链信息,发布智能合约
  • 如何使用FIBOS的测试套件,对智能合约进行测试
  • 如何加入到测试网络之中

当然,这些内容也只作为基础的入门资料,随着FIBOS继续的开发,也会有更多的资料和开发实例出来,感兴趣的可以加入到FIBOS的社区进行了解。感兴趣的可以加我,拉你到他们的群里。

更多的社区信息:

  • website: https://fibos.io

  • telegram: https://t.me/FIBOSIO

  • twitter: https://twitter.com/fibos_io

  • medium: https://medium.com/@fibosio

  • issue: https://github.com/fibosio/fibos/issues

github账号地址:
https://github.com/fibosio

项目解决的问题

按照响马的介绍,创建FIBOS项目,是考虑到EOS面临如下的问题:

  1. 目前 EOS 的环境部署困难

  2. 开发门槛高

  3. 测试套件原始

  4. EOS 迭代周期长

  5. 开发生态原始

  6. 部署发布合约成本高

  7. 合约不可审计

而FIBOS致力于解决这些问题。

进展

目前部分源代码仍然没有公开,应该是处于项目开发期,考虑到避免抄袭的原因。

在网站上发布了路线图:

【一五一十】想基于EOS开发DAPP, C++之外的其他选择是什么?_第2张图片
image.png

结语

EOS 正处于高速开发之中,迭代速度很快,而相关的一些文档或者文章,很容易会落后于实际的项目进度。我自己的经验是,可以加入到社区之中去了解项目的一些更新进度,比如EOS相关社群,或者本文所提到的项目的社群。

当然,更重要的是沉下心来,花多一些时间自己去实践一遍,光从文档或者文章中得到的认知,与自己实际动手去做的认知是非常不同的。

有许多人会因为当前EOS的行情而沮丧失望,这完全没必要。尽量学会让自己的眼光看的更远一点,这个生态圈内有踏实做事的人们,这才是支撑价值的力量。

你可能感兴趣的:(【一五一十】想基于EOS开发DAPP, C++之外的其他选择是什么?)