(一)eos开发实战dapp+游戏--环境搭建

     开言:此教材只是个人学习过程记录自己理解和各种坑如有问题可提出修正,个人注重是开发动手,小白,写也是为了重复加深印象,目标此教学习实现开发一个EOS小游戏,坚持.......
    为什么:技术本身就是为产品服务,有需求(游戏)才学习,进步才快,动手打个helloWorkd比你看一百遍强。选择EOS原因就是被坑了(说笑),真是原因,看了EOS的白皮书和我们需求吻合,一个字快!但是总觉EOS并非正真正的去中心化,21个超级节点,暂时先这样吧。

    环境: VMware + Ubuntu+EOS-1.3.0
    废话不多说,做过开发都知道环境搭建是第一环节。
    (1).使用EOS源码进行编译。这个网上已经有很多,我也编译过成功了但是不要小看就两个命令,估计不熟悉的搞你几天都未必成功。遇到各种坑不过只要你肯百度多问基本都能解决都是配置缺少lib。

         1.git clone https://github.com/eosio/eos --recursive

         2.cd eos

           ./build.sh ubuntu

    (2).(推荐)个人推荐使用第二种环境docker开发环境。原因简单早已经帮你配置好了镜像,快速,少踩坑。

        0.所有操作都是在超级权限下sudo su 

       1.docker pull eosio/eos-dev 或者docker pull eosio/eos 。这两者区别就是eos-dev里面带有一些编译好的工具个人使用时eos-dev.

        2.docker images 查看是否已经成功下载完成(之前需要等待)。

        

      (3)启动节点。eos官方有教程如何启动百度下总会。

              我的启动方式:./start_ubuntu.sh     (一个命令能解决的问题就不要多事,哈哈,多想想如何简化开发流程)

              

       说明:上面的红点,黄点忽略吧不影响学习,也会遇到启动问题,后说。

       下面就是start_ubuntu.sh的代码自己根据自己需求修改:

#!/bin/bash
echo "start nodeos !"

/usr/bin/docker run --rm --name nodeos -v /home/xing/Desktop/eos-master/Docker/path-to-data-dir:/opt/eosio/bin/data-dir -p 8888:8888 -p 9876:9876 -t eosio/eos-dev nodeosd.sh --max-transaction-time=1000 -e --http-alias=nodeos:8888 --http-alias=127.0.0.1:8888 --http-alias=localhost:8888 arg1 arg2

大概说下吧。

#!/bin/bash 这句不能删除,大概意思就是使用shell来解释执行,深挖的人可以自己去看下shell编程。

echo 相当于print输出

最后就是重点。其实就是使用docker运行eos, run不多说跑起来,--rm 就是使用docker stop 停止容器后会自动删除数据(按需),--name指定容器的名称 ,-v映射位置(这个不知道对其它人来说重要但是我觉最后映射下可以看到config.ini文件),-p 映射端口 , -t 执行容器名称就是上面docker images里面的容器, nodeosd.sh 执行eos-master/Docker/nodeosd.sh 这个文件稍微看下就知道其实就是复制config.ini,和合约到/data-dir 最后执行 nodeos命令启动节点(eos三大命令之一),--max-transaction-time...后面就是启动参数。

     启动遇到问题:

                                      1.Error 3080006: transaction took too long。解决:nodeos程序启动时添加max-transaction-time即可解决这个问题,也就是上面我sh里面添加的。

 2. Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::unknown_option> >
std::exception::what: unrecognised option 'wallet-dir'。解决:这个巨坑坑我一天。去看eos的release的说明,居然去了。好吧,得出一个结论有时候遇到不可解决的bug去看官方给出的改动。问题来了如何去掉wallet-dir呢,方法第一进入容器,我选第二种启动一次nodes把config.ini映射到了自己目录下就是上-v。一个命令sudo getdit config.ini (注意必须是sudo 超级权限下不然修改不了)

            

   3.enable-stale-production = true  修改config.ini

   4.database dirty flag set (likely due to unclean shutdown): replay required
    解决:删除 /opt/eosio/bin/data-dir 下多余的块 启动时候添加--replay-blockchain

很好这样就算修改完了,再次运行。 当然过程中还会遇到其它我问题,多问,看找就能解决。enjoy,看到这估计你也入坑了。

猜你喜欢

转载自blog.csdn.net/u010665359/article/details/82906497