在这一系列文章里面,我将努力达成我今年的一个夙愿: 写一本关于EOS技术的入门书籍.
这一篇,先从构建EOS源代码开始,写到如何让本地的出块节点跑起来.
官方文档: [[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的.也欢迎各路大牛来留言指教.
网友评论