美文网首页区块链-EOS区块链研习社金马带你定投区块链
[EOS代码解读]Day1: 编译程序,让EOS在本地电脑跑起来

[EOS代码解读]Day1: 编译程序,让EOS在本地电脑跑起来

作者: 荆凯_EOS42 | 来源:发表于2018-03-23 19:12 被阅读235次

    在这一系列文章里面,我将努力达成我今年的一个夙愿: 写一本关于EOS技术的入门书籍.
    这一篇,先从构建EOS源代码开始,写到如何让本地的出块节点跑起来.

    image

    官方文档: [[https://github.com/eosio/eos#gettingstarted](](https://github.com/eosio/eos#gettingstarted]())
    我的本地环境是Ubuntu16.04,就主要写一下Ubuntu环境下的运行.

    1 构建编译/开发环境

    编译过程比较流畅,按照官方教程来即可.
    我在编译过程中没有遇到什么问题,如果需要帮助的话,可以留言.
    官方文档
    把最主要的部分列出如下; 注意,这里列出的是如何运行本地的节点,我们之后会探讨如何运行一个多节点的本地网络,以及,如何链接到测试主网.
    UBUNTU和Mac,这部分的运行代码都是一样的.

    假设你把eos放在主目录中.

       git clone https://github.com/eosio/eos --recursive 
       cd eos
       ./eosio_build.sh
    
    

    文档中,建议运行如下命令,以让合约开发更加便利:

    
    sudo make install
    
    

    编译完成之后,在eos的文件夹会多出来一个build的文件夹.编译好的文件位于其中.

    2 修改配置文件,运行节点

    在编译好的目录中,找到你的genesis.json的位置

      cd ~/eos/build
      cd etc/eosio/node_00
    
    

    这部分请注意,并没有在文档之中提到,而是我实际运行master分支时候找到的.
    在node_00里面,你会发现两个文件: config.ini, 和genesis.json

    前者是配置文件; 后者是链的创世信息,包含了一个私钥.

    在config.ini文件末尾,加上如下一行:

      producer-name = eosio
    
    

    增加这一行,是为了确保等下eosiod能够运行起来. eosiod是节点出块所运行的程序.
    另外,你会注意到,在config.ini之中,有如下的一行密钥对:

    private-key = ["EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]
    
    

    这是用于账户eosio的,供测试用.

    注意EOS开头的是公钥,而5KQ这一串,是私钥.

    现在master分支的文件中,在本地测试节点,并非像文档中所言那样,有21个出块人,而是本地测试网络之中,只用到了一个出块节点,账户就是eosio.

    这一点是我在遇到问题翻查issue时候发现的,文档之中还没有体现.我相信这一改动是暂时的,之后还会修改为inita…initu的设置,不过,为了先运行起来,我们暂时做一下修改.

    现在,可以启动eosiod了.

    cd ~/eos/build/programs/eosiod/ 
    ./eosiod
    
    

    命令行下,会有如下的信息:

    image

    表示, 节点运行已经正常了.

    由于我本地节点已经非第一次运行,我找了一张图,是首次运行时候的图:

    image

    这张图片来自王伟的一篇文章,也是讲关于eos构建的:
    https://www.jianshu.com/p/b26f198663bb

    至此,eosd可以顺利在你的本地机器运行了.

    运行客户端命令,与节点交互

    eos/build/programs/eosioc这个文件夹中,你会找到一个可执行文件: eosc.

    直接运行:

    cd ~/eos/build/programs/eosioc
    ./eosioc
    
    

    会看到:

    image

    列出来了一些常用的命令.简单介绍几个:

    version, 查看客户端编译的版本:

    ./eosioc version client
    
    

    运行结果是:

    Build version: b78ddd27
    
    

    wallet命令: 用于钱包操作,包括如下的操作:

    ## 创建一个新的本地钱包,默认是default
    ./eosioc wallet create 
    
    注意,创建钱包之后,会提供一串密码给你,请务必保存好,这个密码是用于钱包解锁的.
    
    ## 也可以通过传入参数,来创建一个自定义名称的钱包
    ./eosioc wallet create -n test_wallet
    
     ## 打开钱包,默认是default钱包
    ./eosioc wallet open
    
    ## lock, lock_all, unlock:
    对钱包的解锁和锁定操作
    
    ## import: 导入私钥,以eosio这个账户为例
    
    ./eosioc wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
    
    ## list: 列出来钱包列表
    ./eosioc wallet list
    
    

    关于eosioc更多的信息,可以查看wiki: https://github.com/EOSIO/eos/wiki/Programs-&-Tools#eosc

    明天,我会结合一个具体的例子,写一下如何使用eosc的命令,如何上传智能合约Currency到区块链上,并且,运行该合约进行转账操作.

    主要参考官方的文档,但是,有一点你需要注意到,如果运行master分支的话,我们所导入的账户,是eosio,而不是官方文档之中所写到的: inita. 误解了这一点,可能会让你花费很多时间.

    如果喜欢的话,请留言留下你的意见吧.
    这篇文章主要写给有一点编程经验想要体验一下eos的.也欢迎各路大牛来留言指教.

    相关文章

      网友评论

      • Winnie说说:老师,您好~我是电子工业出版社博文视点的编辑付睿,冒昧打扰,请勿介意。您是打算写EOS的入门书籍吗?有兴趣出版吗?:)如果有兴趣可以联系我,furui@phei.com.cn,谢谢~
        荆凯_EOS42:@Winnie说说 你好,我加了你微信哈. shuke0327.是有这个打算,不过至少要等书籍能够对得住读者,再考虑出版.谢谢您的关注.

      本文标题:[EOS代码解读]Day1: 编译程序,让EOS在本地电脑跑起来

      本文链接:https://www.haomeiwen.com/subject/nfaxcftx.html