精通EOS:EOS 源码编译、连接主网与单节点网络

当前位置:首页 > 币圈百科 > 精通EOS:EOS 源码编译、连接主网与单节点网络

精通EOS:EOS 源码编译、连接主网与单节点网络

2023-01-13币圈百科241

1。从上一章源代码编译安装

中,我们解释了EOS在Docker环境中的简单使用。作为一个码农,我们个人并不从源代码编译来看待“至少是农民”这个词。本章从源代码的获取开始依次讲解编译、启动、插件系统。

现在EOS的编译已经有了很大的提高,可以从源代码开始顺利编译,没有任何麻烦。从本章开始,假设你的系统是Mac OS,如果不是,请遵守你各自系统的规定。

首先,我们来安装相关的信任。对于Mac系统,当然是安装神器brew。在Shell下输入以下命令,安装所有必需的依赖项:

brew?安装?automakebrew?安装?libtoolbrew?安装?llvmbrew?安装?cmakebrew?安装?gmpbrew?安装?mongodbbrew?安装?doxygenbrew?安装?graphvizbrew?安装?Lcov

如果gettext已经安装在系统中,您需要执行下面的命令来重新生成连接。

brew?取消链接?gettext?酿造?链接?-武力?在Mongodb中安装gettext

后,我们可以使用以下两个命令中的一个来启动它

brew?服务?开始?mongodbmongod?-配置?/usr/local/etc/mongod.conf

接下来github会下载EOS源代码,在Shell中输入以下命令:

git?克隆?https://github.com/EOSIO/eos?递归

确切的下载时间取决于您的网络。代码下载后,就可以编译了。命令如下:

cd?Eos。/eosio_build.sh

如果不出意外,一段时间后,你会看到下图:

eos-build

如果你能看到上面和图片,那么恭喜你,你的EOS已经编译成功了。

编译成功后,我们将开始安装eos,输入以下命令:

sudo?/eosio_install.sh

几分钟后,你会看到下图

eos-install在上图中,我们注意到EOS相关的可执行命令被放到了/usr/local/eosio/bin目录中。我们将这个目录添加到系统PATH变量中,然后就可以在Shell中执行相关的命令了。

二、启动EOS节点

对于同步主网和测试网,添加自己的单节点测试,可以不执行上述安装,而是单独执行build目录下的程序。

cd?构建/程序/节点操作系统。/nodeos?-e?-p?eosio?-插件?eosio:chain_api_plugin?-插件?eosio:history_api_plugin?

,其中参数-e的作用是开始生成块,-p eosio是指定节点的名称,- plugin指定了两个插件,第一个插件可以获取链上的信息,提交交易信息,提供以/v1/chain开头的各种RPC,第二个插件提供指定账户的交易历史。这些API以/v1/history开头,而-hard-replay-区块链参数用于

注意:

如果在启动过程中出现类似dirty-flag的错误,就需要添加-hard-replay-区块链参数。

如果启动时出现3190003 block _ log _ not _ found:block log找不到错误,则需要删除-hard-replay-区块链参数。

执行上面的命令可以看到如下图所示的内容:

eos-start注意红色框中的内容,表示节点已经在生成块了。

现在本地节点已经运行并开始生成块,我们再启动另一个终端,执行cleos检查当前网络信息:

cd?构建/程序/cleos。/cleos?得到?Info

执行上面的命令会显示网络的信息:

eos-getinfo我们注意到上图中的chain_id等于cf 057 bbbf 72640471 FD 910 bbcb 67639 c 22 df 92470936 CD C1 ade 0e 2e 7 DC 4f,表示我们运行的是本地测试网络。公测网络的网络id为038 f 4 b 0 fc 8 ff 18 a 4 f 0842 a 8 f 0564611 f 6 e 96 e 8535901 DD 45 e 43 AC 8691 a 1c 4 ddca。

连接主网

默认情况下,我们用单个节点连接到自己的私有网络。如何连接EOS主网?在回答这个问题之前,我们首先要思考为什么要连接主网。因为,只有连接到主网,才能注册成为生产区块的节点,拉票成为超级节点,获得区块出局的实权。 既然连接到主网这么重要,那么怎么样才能连接到主网呢,下面我们就来研究这个问题

怎么样连接到主网,其实非常简单,只需要主网的一份创世区块和主网的节点列表就可以了

为了方便大家,这里我们提供一份主网的创世区块。x]{?initial _ timestamp '2018-06-08t 08:08:08.888 '' initial _ key 'EOS 7 earnuhcyqmdnpon 8 RM 7 MBC TN boot 6蓑衣网小编2022 o 7 Fe 2 ZJ vex 2 tdg gbl 3 '初始配置'{?' max_block_net_usage '1048576,''目标块净使用百分比'1000,'' max _ transaction _ net _ usage '524288,'' base _ per _ transaction _ net _ usage '12,' net _ usage _ leeway '500,' context _ free _ discount _ net _ usage _ num '20,context _ free _ discount _ net _ usage _ den '100,' max_block_cpu_usage '200000,'目标块中央处理器使用百分比'1000,' max _ transaction _ CPU _ usage '150000,'最小事务处理中央处理器使用'100,' max_transaction_lifetime '3600,"延期_交易_到期_窗口":600,' max_transaction_delay '3888000,' max_inline_action_size '4096,' max_inline_action_depth '4,' max_authority_depth '6?}}

我们在当前目录,即构建/程序/cleos目录下,新建一个文件genesis.json,内容为上面的JSON内容

接下来,我们蓑衣网小编2022要在配置文件config.ini中增加主网的节点列表,这个文件位于~/Library/Application \ Support/EOS io/node OS/config目录下,打开这个文件,增加如下节点列表:

p2p-peer-address?=?P2P。生产。EOS重力。com:80 P2P-peer-address?=?欧盟-西方-荷兰。黎明的女神阿姆斯特丹。net:9876p2p-peer-address?=?P2P。mainnet。EOS德国。在线:9876 P2P-peer-address?=?19878p2p对等地址?=?P2P。genereos。io:9876 P2P-peer-address?=?mainnet。EOS pay。主机:19876 P2P-peer-address?=?130 .211 .59 .178:9876 P2P-对等-地址?=?54 .153 .59 .31:9999 P2P-对等-地址?=?94 .130 .250 .22:9806 P2P-对等-地址?=?同行。主要的。你好。com:9876 P2P-peer-address?=?同行。伊森。io:9876 P2P-peer-address?=?生产。mainnet。EOS。cybex。io:9888 P2P-peer-address?=?P2P-1。EOS网络。io:9876 P2P-peer-address?=?佩杰达。一:3322 P2P-peer-address?=?EOS战斗。com:9877 P2P-peer-address?=?34 .226 .76 .22:9876 P2P-对等体-地址?=?mainnet。EOS绿洲。io:9876 P2P-peer-address?=?节点。EOS耀斑。io:1883 P2P-peer-address?=?P2P。EOS io。Cr:1976 P2P-peer-address?=?P2P。EOS 蓑衣网小编2022 io。Cr:5418 P2P-peer-address?=?eno.eosvan.io:19866

然后,执行下面的命令:

./nodeos-egenesis-JSON ./创世纪。JSON插件EOS io:chain _ API _ plugin插件EOS io:history _ API _ plugin

注意:

1、如果出现不正确的插件配置起源状态只能在新的区块链上设置。这个错误,请在命令行上加入-删除所有块参数,或者删除~/Library/Application \ Support/EOS io/nodeos/data这个目录

2,如果出现不生成块,因为我没有EOS 7 earnuhcyqmdnpon 8 RM 7 mbctnboot 6 o 7 Fe 2 ZJ vex 2 tdg gbl 3的私钥这个错误,请把命令上的-p eosio参数去掉

3,为了本地开发,不建议直接修改config.ini文件,而是应该通过增加- p2p对等地址参数来指定主网的节点。 以上节点转化为-P2P-Peer-Address P2P . prod . EOS gravity . com:80-P2P-Peer-Address eu-west-nl . EOS Amsterdam . net:9876-P2P-Peer-Address P2P。mainnet.eosgermany .在线:9876-P2P-peer-address 54.38.250.15:19878-P2P-peer-address P2P . genereos . io:9876-P2P-peer-address mainnet . EOS . host:19876-P2P-peer-address 130.211.59.178:9876-P2P-peer-address 54.153.59.31:9999-P2P-peer-address 94.130.250.22:9806-P2P-peer-address peer.main.alohaeos.com:9876--P2P-P2P-peer-address peer . eosn . io:9876-P2P-peer-address prod . mainnet . EOS . cybex . io:9888-P2P-peer-addressEOS flare . io:1883-P2P-Peer-address P2P . EOS io . Cr:1976-P2P-Peer-address P2P . EOS io . Cr:5418-P2P-Peer-address no . EOS van . io:19866

[

如果一切正常,在另一个Shell中执行命令:

。/cleos?得到?Info

可以看到下面类似的图,也是类似的,因为截屏时间不一样,显示的块头数量和上一块不一样。

我们这次看到的网络id是ACA 376 f 2068 b 8 fc 25 a 6 ed 44 dbdc 6547 c 36 c 33 e 3 a 119 ffbeef 943642 e 06,是主网。

eos-mainnet三。单节点网络

当我们启动一个本地节点进行开发和调用时,实际上是启动了一个本地单节点网络,它包括四个不同的部分,分别承担不同的任务,下面简单介绍一下。

nodeos可以通过配置不同的插件,启动节点,同步eos网络数据或者自己生成块,作为调用的API节点。Keosd管理wallet,包含eos公私钥对信息cleos命令行交互接口,连接wallet与EOS网络,检查网络信件。息,推送交易信息,部署智能合约等eosiocpp编译智能合约,生成wasm文件及abi文件

它们构成的网络如下图所示:

四、后记eos-singlenet

由于本人水平所限,文中错误在所难免,欢迎您踊跃指出错误,在下感激不尽。我的微信联系方式:joepeak。

原创不易,尤其寒冬,欢迎赞助我一杯咖啡,本人比特币地址如下:3C1gyc2tsVudvVNQCZfrwHviDQeUpPeT95

精通EOS:EOS 源码编译、连接主网与单节点网络 | 分享给朋友: