python智能合约编程-如何编译pyeos

pyeos的编译和eos类似,只是为了支持python,需要安装一些额外的库和工具,下面来介绍下具体过程。

1. 下载pyeos代码

2. checkout python代码

3. ubuntu下pyeos的编译

安装编译pyeos所需的工具cython以及库readline

3.1 编译python

这里要编译的python在目录libraries/python,是用来在调用eos api的。 首先切换到libraries/python目录,然后执行下面的命令:

请将make -j2中的2改成CPU的核心的数量,以加快编译速度

编译tinypy

这里的tinypy是精简版的python,在libraries/tinypy下,用于运行python智能合约,编译过程和编译libraries/python下的python一样,依次执行下面的命令:

3.2 编译pyeos

下面就可以开始编译pyeos了 转到主目录,执行下面的命令:

过程中要你输入密码,接下来就是等待了,如果没有error之类的提示,编译就成功了 如果代码有改动,不必再执行./build.sh ubuntu,只要cd到build目录执行下面的命令就可以了:

请将2改成CPU的核心的个数,以加快编译的速度。

4. mac OS X 平台下pyeos的编译

安装编译pyeos所需的工具cython

4.1 编译python

mac OS X下的编译和ubuntu下一致,这里不再复述,请参考

4.2 编译pyeos

转到主目录,执行下面的命令:

过程中要你输入密码,接下来就是等待了,如果没有error之类的提示,编译就成功了 如果代码有改动,不必再执行./build.sh darwin,只要cd到build目录执行下面的命令就可以了:

请将8改成CPU的核心的个数,以加快编译的速度。

5. 运行pyeos

先来了解几个运行参数:

-i 进入python的交互模式,在交互模式下可以输入任意的python代码.进入模式时行开头会有>>>提示符,表示等待命令输入。

--manual-gen-block 手动产生块,就是调用eosapi.produce_block()才会产生新块,这个参数在调试时非常有用。

--debug 进入调试模式,在这个模式下有许多针对调试的调整,如支持在智能合约代码里设置断点调试程序,如块产生不再有会产生超时异常,执行智能合约也不会有时间限制等等。

接下来看下如何执行命令:

执行下面的命令设置python环境变量,请将/dev/pyeos修改成正确的pyeos代码所在目录

cd 到build/programs,用下面的命令创建data-dir目录:

再在data-dir下创建config.ini,内容如下

几个要注意的参数如下:

genesis-json 指定的是创世块的配置文件

producer-name 用于指定producer账号,这些账号已经在genesis.ini中配置,如果是首次运行程序,程序会根据genesis.ini自动创建创世块

plugin 用于指定要加载的插件

接下来在build/programs目录执行下面的命令来启动应用程序

如果你看到类似下面的输出,那么程序就运行成功了

下篇来介绍下如何在python中调用钱包等api接口。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171220G02TR000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券