EOS入门指南-PART1 环境搭建

本文作为系列第一篇文章,主要介绍了如何搭建EOS本地环境、运行节点并并进行简单的交互:如创建钱包。

note:笔者用的是macOS系统。

EOS主网正式上线,想必大家都很激动吧。我的第一感觉是,虽然EOS离自己的目标仍然还有一段路要走,但是它依然是被寄予厚望的公链项目。现在似乎是更加深入了解EOS的好时候,一开始,我们会学习一些和EOS平台交互的简单操作。

在正式开始之前,有一点需要提醒大家,你需要掌握下面这些基本知识:

  • 命令行的简单操作(会切换目录就行啦)
  • git的简单使用(会git clone就行啦)

即使你还没有接触过这些,百度一下,十分钟搞定。

1. git clone

进入一个你想要放置eos项目的目录,把下面这行命令复制到终端里,然后按下enter:

(对我来说,我想把eos放在目录/Users/hammer/blockchain中)

cd /Users/hammer/blockchain 
git clone https://github.com/EOSIO/eos --recursive 

这会帮你安装一大堆“东西”,--recursive可以确保你安装了属于这个项目的所有“东西”。它会层级式地复制这个目录,一直复制到目录树的最底层(大家可以想象一下俄罗斯套娃🌝)。关于git的使用解释到这儿就可以啦。

现在,让我们进入这个目录里看看:

cd eos
ls

输入上面的命令就会显示如下界面:

eos项目内容

真的有好多东西!你肯定想,如果有其他更轻量级的方法来和EOS主网交互,该是一件多棒的事情。不过,既然你都读到这儿了,我猜你可能也是蛮拼(认真)的。

做到这儿,我们的主要目的就是在本地搭建EOS。就在你刚刚下载的目录里,有一个脚本可以实现这个功能。比较逊的就是,整个安装工程太浩大了,大概1G多,里面有超级多的依赖包。

并且它需要你提前安装有xcode,mongodb,homebrew还有一堆其他的东西。因为我事先已经装好这些了,所以可能会更省心一些。如果你还没装,估计就要耗时更久了。尽管其实,其中的某些依赖,EOS也并不是非要不可(但是你就要装啊。。🌚)。

对于一个 getting_start 文章来说,上面这些对于小白的杀伤力依然太强了。咱们就拿MongoDB来举个例子,mongodb简而言之就是一个数据库。那么为什么一个数据库会跟区块链项目扯上关系?是不是区块链就是个数据库?看上去EOS似乎使用mongodb作为主要数据的辅助支撑。这样的话就能理解,为什么大家都说从区块链上查数据是件很痛苦的事情了。我们进一步猜mongodb复制了区块链的部分数据并且支持标准化的查询语法进行访问。(不得不说想象力对理解一个陌生又复杂的系统,确实是个好东西。)

2. build

为了搭建EOS,我们要使用刚刚下载的文件夹里的一个文件:eosio_build.sh。以.sh结尾说明这是一个shell脚本。一句话概括就是,这是一个可以直接通过命令行执行的文件。

./eosio_build.sh

执行这个脚本需要花一段时间,并且它很有可能失败一两次,告诉你你还需要安装其他的软件。对我来说,安装软件最折磨人的地方,永远是那些【为了安装要再安装】的环节。如果你也遇到了这些问题,深呼吸试试?😅

不过能读到这儿的基本就剩下程序员了吧,那对这种问题估计也见怪不怪了。

如果你是一个为了区块链,连英语和计算机都敢自学的小白,那这些问题对你还算问题么。(为你打call👏)

【我自己遇到的问题和解决办法都贴在了下面的附录1里,希望能对大家有所帮助】

这个命令成功完成的画面是:

eos_build_success

3. make install

一旦eosio_build完成之后,你需要在之前下载的eos文件夹中继续找一个叫build的文件夹:

cd build
sudo make install

然后继续等它完成。完成之后,你就可以继续往下走了:

cd programs/nodeos
./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin

运气好的话,EOS本地安装就完成啦。它会产生block并且记录下来,打印在命令行中。COOL !(虽然有点复杂)

而且我还要很负责地告诉你,现在还没到抱怨复杂的时候,我们离深入了解EOS还差得早呢。

顺便贴一下成功运行的样子:

runnodesuccess

4. 创建钱包

到这里,我们的安装工作就告一段落了,下面就到了真正开始操作EOS的时候了。

我们先来补充一点背景知识。下面这张图展示了,EOS开发系统里主要部分是如何交互的:

eos_main_pieces

你现在就是图中那个小人。现在有三个可用的EOS服务。你正在使用的是cleos服务。cleos = cli + eos,简单来说,这是一个用命令行和EOS进行交互并且管理钱包的工具。这个服务同时也会使用nodeos(后台运行的eos主程序)和keosd(保证钱包中密钥安全的组件)。

下面就到了激动人心的创建钱包环节🤩:

cleos wallet create
wallet_create

如果看到了这个画面,JUST CELEBRATE!

(在创建钱包大家通常也会遇到一个问题,在附录2中我贴出了解决办法)

除了像刚才那样创建默认钱包外,还可以创建自己命名的钱包。比如就叫mywallet记住打印出来的密码哦

cloes wallet create -n mywallet

创建的钱包文件在~/eosio-wallet/文件夹中,安全起见的话,也可以备份该文件到硬盘再删除,需要用了再拷贝回来。

总结

该篇我们学习了:

  • EOS环境搭建

  • 简单EOS钱包创建

结束语

今天简单介绍了如何入门EOS,下一章将手把手教会你如何连接EOS主网。


附录1 - 在build过程中遇到的问题

我自己在./eosio_build.sh的过程中,遇到了2个error,这里贴出来供大家参考:

1. LLVM_DIR UNSET

详细错误如下:

CMake Error at libraries/wasm-jit/Source/Runtime/CMakeLists.txt:26 (find_package):
  Could not find a package configuration file provided by "LLVM" (requested
  version 4.0) with any of the following names:

    LLVMConfig.cmake
    llvm-config.cmake

  Add the installation prefix of "LLVM" to CMAKE_PREFIX_PATH or set
  "LLVM_DIR" to a directory containing one of the above files.  If "LLVM"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!
See also "/Users/hammer/blockchain/eos/build/CMakeFiles/CMakeOutput.log".

    >>>>>>>>>>>>>>>>>>>> CMAKE building EOSIO has exited with the above error

【解决办法】:

指定LLVM_DIR的值。我自己用的是zsh,所以修改的是~/.zshrc文件,使用bash的小伙伴修改~/.bash_profile即可。

~/.zshrc文件中追加一行:

(记得先检查下你的/usr/local/Cellar/里到底有没有llvm@4以及相应版本的文件夹)

export LLVM_DIR=/usr/local/Cellar/llvm@4/4.0.1

最后别忘记source生效:

source ~/.zshrc

2. WRONG WITH GETTEXT

详细错误如下:

Undefined symbols for architecture x86_64:
  "_libintl_bindtextdomain", referenced from:
      _main in main.cpp.o
  "_libintl_gettext", referenced from:
      eosio::client::localize::localized_with_variant(char const*, fc::variant_object const&) in main.cpp.o
      eosio::client::localize::localized_with_variant(char const*, fc::variant_object const&) in help_text.cpp.o
  "_libintl_textdomain", referenced from:
      _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation

【解决办法】

在命令行中输入:

brew unlink gettext && brew link --force gettext

然后重新进入eos文件夹中执行./eosio_build.sh即可。

附录2 - 在创建钱包时遇到的问题

在执行cleos wallet create的时候,会遇到一个很常见的问题,提示你要kill keosd。详细错误如下:

"/usr/local/bin/keosd" launched
Unable to connect to keosd, if keosd is running please kill the process and try again.

多半是因为端口配置的问题。(虽然官网中说cleos运行时会自动启动keosd,我也没遇到这个问题,但是有小伙伴反映了有这个问题,现在贴一下解决办法)。

在之前说的eos钱包的目录~/eosio-wallet中有一个config.ini文件,在里面找到http-server-address那一行,替换成如下端口号:

http-server-address = 127.0.0.1:8900

将keosd监听端口改为8900,然后再执行如下命令启动keosd:

keosd&

之后我们再来创建钱包:

cleos wallet create -n test

TADA!成功!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,009评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,808评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,891评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,283评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,285评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,409评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,809评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,487评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,680评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,499评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,548评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,268评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,815评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,872评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,102评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,683评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,253评论 2 341

推荐阅读更多精彩内容