前言
eos代码更新很快,在4月初已经升级到3.0版本,随着版本的更迭,在各个操作系统下的编译、节点的运行都越来越集成化,不需要自己再一步步的下载依赖,如果感兴趣可以直接按照官方wiki进行编译。官方wiki地址:https://github.com/EOSIO/eos/wiki
一般不会出现什么错误,当然如果出现编译、测试节点运行出错的情况可以添加我个人微信(见本文最下方),我会尝试着去解答一下。有鉴于eos代码更新的速度,我们现在也大可不必关注一些具体的实现,而是作出一些调整,通过更深层次的探讨去观察整个eos代码的架构。
自代码更新至3.0版本之后,eosioc也变成了cleos,通过代码的注释,我们可以看出cleos是一个:基于命令行对eos进行一些简单的交易、获取nodeos的状态等功能,如果想要使用这个命令行去进行相应的操作,需要本地有一个nodeos在运行,且chain_api_plugin需要加载成功。
图1 cleos代码功能简介
cleos有很多参数可以配置选用,具体到每一个点官方wiki也都有介绍,在下一篇文章中我们也将继续进行详细分析。这些功能的实现都需要通过http请求来完成,今天我们来谈谈一些细节的东西,如cleos是如何搭建一个httpserver的。
Boost::asio简介
首先我们来看cleos的main.cpp中,不管是交易还是获取钱包、获取账户的状态等功能都会调用一个函数do_http_call,在5月5日eos-master中最新的更新记录中,Daniel Larimer也将cleos中的::call全部替换成了do_http_call,那么