今天介绍两个项目,分别是用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文件。
作者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面临如下的问题:
目前 EOS 的环境部署困难
开发门槛高
测试套件原始
EOS 迭代周期长
开发生态原始
部署发布合约成本高
合约不可审计
而FIBOS致力于解决这些问题。
进展
目前部分源代码仍然没有公开,应该是处于项目开发期,考虑到避免抄袭的原因。
在网站上发布了路线图:
结语
EOS 正处于高速开发之中,迭代速度很快,而相关的一些文档或者文章,很容易会落后于实际的项目进度。我自己的经验是,可以加入到社区之中去了解项目的一些更新进度,比如EOS相关社群,或者本文所提到的项目的社群。
当然,更重要的是沉下心来,花多一些时间自己去实践一遍,光从文档或者文章中得到的认知,与自己实际动手去做的认知是非常不同的。
有许多人会因为当前EOS的行情而沮丧失望,这完全没必要。尽量学会让自己的眼光看的更远一点,这个生态圈内有踏实做事的人们,这才是支撑价值的力量。