AE中国

如何创建Aeternity节点

刘少 发布于 2021年02月19日 阅读 3,578 本文共7428个字,预计阅读时间需要19分钟。

为何要运行一个AE节点,以及如何运行?

什么是aeternity节点,以及为什么你需要运行aeternity节点?

第一,先理解aeternity节点的概念以及作用。在区块链网络中,比如aeternity,区块链都是去中心化的。由全世界各地的人共同维护区块链网络,参与网络并保证网络的安全,这些参与者便叫做节点。

不同的区块链网络,有不同类型的节点,但所有节点都有一个共同点——节点需要特定的硬件或软件才能运行或连接。

aeternity节点作为数据创建、接收或传递到网络中其他节点的一个据点,帮助维护aeternity网络。网络社区成员也可以通过运行挖矿节点,来确保区块链的安全。

运行节点需要一定的技术,正确地设置aeternity需经过一些复杂的步骤。运行节点也是一个硬件密集型的任务,如果你不想牺牲笔记本,可以在云平台上运行节点。

为什么要运行AE节点?

节点对于网络非常重要,例如AE交易就依靠节点广播。Aeterntiy社区运行节点的原因各异,一些爱好者运行节点是为了支持aeternity项目的发展,其他人运行节点是为了获得AE代币奖励。

运行AE节点有明显的安全优势。出于安全考虑的AE持有者通常会运行一个AE节点,并将其作为自己的钱包。运行一个AE节点是最佳也是最高效遵循网络规则的方法——AE节点能帮助AE持有者确保收到的AE代币是真实的,且经过确认的。

运行AE节点也拥有了高度隐私权,运行一个AE节点并用它来存储AE代币,可以确保没有人能找出你的IP和钱包地址之间的联系。例如,直接在Binance上存储AE代币,比建立一个AE节点要容易许多——但是你必须信任Binance来保证你的代币安全,并且你向Binance提供了自己的个人数据,才能在平台上存储AE代币。

Aeternity平台对开发人员具有强大的吸引力。Aeternity系统不仅结合了Sophia编程语言的灵活性与速度,并结合了即将上线的超链,aeternity是Dapp开发的不二选择。

如果你正在开发一款aepp,那么最好运行一个你的节点,这样你就能始终通过节点API连接aeternity区块链。作为一名aepp开发者,设置一个节点不仅能帮助aeternity的去中心化和安全性,同时,还能分担网络中去中心化应用的负载。

在某个地区运行一个节点还有其他好处。如果社区成员位于aeternity需要建立一个强大网络节点的地区,有机会从aeterntiy基金会获得一小笔资金支持。

需要哪些装置?

首先设置aeternity节点,需要合适的硬件和流畅的internet连接。如果你的计算机不是很强大,不用担心。在本指南中,我们会进一步介绍基于云的节点设置。

建立本地托管节点的基本硬件要求是:

· 一台装有Mac OS X或Ubuntu的台式机或笔记本电脑。

· 相当多的可用磁盘空间——40GB或以上

· 4 GB的RAM。

· 一个不计量的高速互联网连接,具有良好的下载速度,以及至少50KB/s的上传速度。

注意,理想情况下,你肯定希望每天24小时运行节点。但是在笔记本电脑上运行一个连接节点并不理想,因为需要让笔记本电脑一直处于打开并运行的状态。

如果你计划在Amazon AWS或类似的服务器上设置托管节点,可以跳过本指南的下节,因为这节主要介绍如何在你的计算机上设置节点。

介绍:设置本地AE节点

如何创建Aeternity节点 教程 第1张

如果你已准备好开始设置自己的本地AE节点,你还需要用到aeternitiy节点文档(https://docs.aeternity.io/en/stable/installation/#quick-install)。节点文档包含了设置节点的详细分步指导。

设置和运行网络节点的基本步骤是:

1.在你使用的操作系统中下载并安装相关的节点二进制文件(软件)

2.安装所有依赖项——运行节点可能需要额外的位元。分别是 Libsodium v1.0.16 以及Openssl。

3.配置节点

4.运行节点

如果你的计算机满足了基本要求,那么请访问aeternity节点文档并下载相关的二进制文件和依赖项。

设置本地AE节点:macOS

对于macOS High Sierra 10.13和macOS Mojave 10.14系统,都可以使用节点二进制文件。如果你是mac用户,可以打开macOS终端并粘贴以下内容来加速安装:

$ bash <(curl -s https://install.aeternity.io/install.sh)

或者,你也可以访问aeternity的GitHub,下载相关的二进制文件。

接下来,需要安装依赖项。在macOS上实现这一点最简单的方法是通过Homebrew,一个简化软件安装的包管理器。

要安装Homebrew,请访问Homebrew网站,并将“(install Homebrew(安装Homebrew)”一栏复制到macOS终端。一旦安装了Homebrew,你就可以使用macOS终端来安装节点的依赖项,如下所示:

$ brew update

$ brew install openssl libsodium

接下来,你需要部署节点。最好确保你的节点目录所在的分区至少有40GB的闲置存储空间,因为aeternity链和日志文件需要用到。

如果你已经下载二进制文件,请打开一个终端并使用以下命令。注意:最后一个命令需要调整为你下载的节点版本。

$ mkdir -p ~/aeternity/node

$ cd ~/aeternity/node

$ tar xf ~/Downloads/aeternity–macos-x86_64.tar.gz

完成上述步骤后,就可以配置节点了!

设置本地AE节点:Ubuntu

设置一个Ubuntu网络连接节点,你需要用到aeternity Github的二进制文件。Ubuntu的依赖项取决于你运行的版本而有所不同。

如果你运行的是Ubuntu 18.04,你可以通过apt包管理器通过以下命令安装 libsodium 1.0.16:

$ sudo apt-get install libsodium23

Ubuntu的二进制文件需要用libssl1.0.0构建,通过以下指令安装libssl1.0.0:

$ sudo apt-get install libssl1.0.0

如果你运行的是Ubuntu 16.04版本,则需要从源代码安装libsodium,因为源代码附带比要求更老的版本。从源代码安装libsodium,你还需要一个C编译器以及相关工具。完成安装,你需要运行以下指令

$ sudo apt-get install build-essential

接着输入指令:

$ curl -O https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz

$ tar -xf libsodium-1.0.16.tar.gz && cd libsodium-1.0.16

./configure && make && sudo make install && sudo ldconfig

进入下一步。

设置本地AE节点:Docker

Docker是一种打包和部署分发式应用程序的工具,适用于各种操作系统,比如Linux平台、macOS和Windows 10。要用Docker设置一个aeternity节点,替代前面的方法,首先需要在想要运行节点的计算机上安装Docker。

安装Docker,请查看Docker安装指南(https://docs.docker.com/engine/install/)。你可能还想了解docker的工作原理,以及docker应用程序的基础知识(https://docs.docker.com/)。

用Docker运行节点,你需要aeternity节点Docker镜像,可在Dockerhub上获取。在第一次运行节点容器时,请确保以前台模式运行,便于调试。

所有版本都有自己的Docker镜像标签。最新的节点版本发布在“latest”Docker镜像标签下面,源代码的主分支标记为“master”。提取最新的Docker镜像,请运行以下指令:

$ docker pull aeternity/aeternity

在运行任何命令之前,最好确保你拥有最新的Docker镜像。

有关用Docker配置节点的详细信息,请查看后面的“配置节点:Docker”一节。

注意:在运行节点时,需要使用Docker -P标志将所有公开的端口发布到主机接口。确保你已完成本指南的配置环节,这样就能将防火墙或端口映射到你的主机。

设置本地节点:配置节点

如何创建Aeternity节点 教程 第2张

安装好网络节点,你还需要配置节点,才能加入一个公共节点网络,例如aeternity测试网或主网络。节点用户通过修改配置文件更改参数,配置文件可用JSON或YAML格式化。

在哪里找到配置文件?

配置文件的位置取决于其格式。你可以通过几种方式找到配置文件:

1. OS环境变量AETERNITY_CONFIG包含一个文件名

2. Erlang/OTP环境变量-aecore config包含一个文件名

如果在这些位置找不到配置文件,则不应用用户配置。配置文件的内容用JSON-Schema验证,它的节点路径是path data/aeternity_config_schema.json。

注意,如果配置文件中的任何参数违反了模式,则无法启动节点。

配置节点:重要参数

配置节点时,要用到几个重要的参数。

配置节点:连接对等节点

配置最重要的步骤是确保你的节点能够与网络其他节点通信,你的节点不仅要能连接其他节点,还要接收传入的连接。你的节点与其他节点的入站和出站连接越多,节点的整体性能就越好。

默认情况下,你的节点将侦听TCP端口3015。如果你将此端口用于其他用途,则可以设置节点配置文件中的同步>端口参数来更改端口。

配置节点:防火墙

如果你在防火墙后面运行节点,则需要打开连接TCP的入站端口。如前所述,默认端口是3015。

需要确保节点使用的端口在运行该节点的计算机,以及将网络流量路由到该计算机的任何设备(如防火墙或路由器)上都是开放的。如果你确信已打开计算机上的相关端口,但不确定相关端口是否在你的路由器或防火墙上打开,请检查设备或软件的文档,了解关于“如何打开端口”的指南。

配置节点:NAT(家庭路由器)

如果你在NAT后面运行节点——比如家用路由器——请确保端口在设备上有被转发,这样计算机就能接收从互联网到节点的传入连接。

计算机有多种路由器配置。请查看家用路由器的文档,了解有关“如何转发端口”的指南。

通用即插即用或映射协议

你可能发现自己的路由器没有配置端口转发,但支持通用即插即用或映射协议。在这种情况下,你的节点会提供即插即用或映射协议服务,简化配置过程。

使用“通用即插即用”或“映射协议”服务之前,你需要检查路由器是否启动了“通用即插即用”或“映射协议”,然后打开节点配置文件,将同步> upnp_enabled参数设置为true。

根据此参数设置,你的aeternity节点会自动创建端口映射。

配置节点:运行端口检查

完成上述连接设置之后,可以运行节点并执行常规的安装验证和配置正确性检查。使用以下命令检查外部端口,如果你更改了默认端口3015,则命令需相应修改:

$ nc -zv $(curl -s https://api.ipify.org) 3015

如果正确配置节点,输出将是这样:

Connection to 203.0.113.27 3015 port [tcp/*] succeeded!

这个输出中显示的IP地址应该是被测试节点的外部IP地址。

配置节点:状态通道

Aeternity专门能在协议级别上适应各种状态通道,支持开发者创建大规模应用,例如去中心化交易所。

Aeternity节点有两种协议————WebSocket客户端和噪音编码使用状态通道,本指南主要介绍设置Websocket客户端来使用状态通道。

要将你的节点连接为WebSocket客户端,

要连接你的节点像WebSocket客户端一样,你需要设置一个端口和一个用于侦听服务的主机。这是私人节点设置,你需要保证访问安全。

将TCP端口配置参数设置为websocket > channel > port,服务将要侦听的地址根据参数websocket > channel > listen_address 定义,但是,这个默认值为127.0.0.1,防止WebSocket端点被暴露,只有让你的计算机能够访问你的节点的状态通道1。更改此更改的风险由你自己承担。

配置节点:网络ID

节点连接的网络很重要——比如,连接的是aeterntiy的测试网还是主网络。

节点连接的网络可以通过更改配置文件中的“fork management > network_id”来更改。默认情况下,你的节点将被预先配置为以网络ID“ae_mainnet”连接到主网络。

如果你想连接到testnet,即“ae_uat”,你需要在配置中修改网络ID设置:

fork_management:

network_id: ae_uat

配置节点:对等节点

对等节点是一个你的节点将尝试连接的节点列表。如果节点的配置文件中没有设置“peer”键,则根据上述步骤中的网络ID配置自动确定对等节点列表。这种自动确定对mainnet和testnet都有效。

如果你想阻止节点初始化任何外向连接的对等节点,你可以将对等节点设置为一个空列表:

peers: []

这并不妨碍节点接收传入的连接,因此,如果你的节点的地址在网络中为人所知,那么你的节点依然可以连接到这个网络。

配置节点:数据持久性

节点支持三种类型的数据库持久性后端:

· RocksDB,它只适用于与Unix兼容的系统,如OS X和WSL,这些系统默认使用RocksDB。注意,RocksDB不能与NTFS卷一起工作。

· Leveled是对RocksDB的改进,适用于所有操作系统,但目前只提供实验支持。

· Mnesia,它是Erlang/OTP分发的数据库后端。Mnesia比其他两个效率低,当RocksDB不可用时,Mnesia默认为数据库。

你可以根据chain.db_backend设置数据库后端,使用rocksdb、mnesia、level三个值。

如果你使用RocksDB,重点要确保chain.db不指向NTFS卷。不能切换现有数据库的后端,也不能让两个节点实例同时使用相同的数据库文件。但是,可以创建快照,加快新节点同步。

注意,升级节点将自动升级数据库结构。降级需要数据库为空和重新同步一个新区块链。

新节点初次同步区块链可能需要一定时间,其中算力和硬盘驱动器速度非常关键。同样,由于数据库做一致性检查,重新启动某个节点可能会在某些配置上花费一定时间。

配置节点:Docker

如果你通过Docker设置了节点,配置工作略有不同。默认的节点配置足以连接到主网络:

$ mkdir -p ~/.aeternity/maindb

$ docker pull aeternity/aeternity

$ docker run -p 3013:3013 -p 3015:3015

-v ~/.aeternity/maindb:/home/aeternity/node/data/mnesia

aeternity/aeternity

你的控制台会显示许多与网络同步相关的信息。

为了使Docker设置在后台运行,调整以上最后一条命令如下:

$ docker run -p 3013:3013 -p 3015:3015 -d

-v ~/.aeternity/maindb:/home/aeternity/node/data/mnesia

aeternity/aeternity

请注意,根据你的Docker设置,节点可能会在每次系统启动时自动启动。但是,你可以获得docker容器运行列表

$ docker ps

并使用Docker的stop命令停止容器。

要更改通过Docker运行的节点的节点配置,需要使用Docker绑定挂载来将配置文件挂载到容器上的一个特殊路径(/home/ aeterntiy/ aeterntiy/ aeterntiy.yaml)。

然后,你可以按照上面列出的配置步骤编辑配置文件。

默认情况下,区块链数据被持久化到Docker容器中的/home/ aeterntiy/node/data/mnesia。如果你想将区块链数据保存在主机上的另一个目录中,则需要使用Docker卷。

用你想要存储的数据目录代替~/.aeternity/myaedb,但要注意,你不能在使用同一数据库的时候,切换网络。

运行节点

如何创建Aeternity节点 教程 第3张
现在你的节点已安装,并完成了配置,可以启动了!假设你的节点:

· 部署在目录~/aeternity/node;

· 未指定自定义对等节点

· 确保可以在127.0.0.1端口3013连接到节点用户API的外部HTTP端点

如果没有完成以上设置,或者你不能确定,请重复检查前面讲解的配置设置环节。

运行节点:启动节点

在启动节点之前,建议你确保计算机至少有4GB可用内存。

启动节点时,节点会检查打开的文件的最大数量,并在参数低于推荐限制时警告你。足够的最大打开文件数对于管理网络连接至关重要——需要在以ulimit -n启动节点的会话中配置此参数。

要启动你的节点,请运行:

$ cd ~/aeternity/node

$ bin/aeternity start

To stop your node, run

$ bin/aeternity stop

来自同一目录。

要验证你的节点是否活跃,请检查节点当前区块链的顶部,如图所示:

$ curl http://127.0.0.1:3013/v2/blocks/top

如果节点没有响应,则需要检查日志目录是否有错误。

运行节点:检查主网络连接

要验证你的节点是否连接到主网络,要看你的节点上的区块链,是否与主网络上的区块链一样长。查看主网当前的区块链顶端:

curl https://mainnet.aeternity.io/v2/blocks/top

然后,检查节点当前区块链的顶端:

curl http://127.0.0.1:3013/v2/blocks/top

如果高度一致,恭喜你已连接到主网络!注意,节点可能需要一些时间才能赶上主网络区块链。

总结

如果你正确地执行了上述步骤,就会成功安装、配置并启动了你的远程节点。如果你遇到了任何困难,不要惊慌——访问aeternity论坛,aeternity社区将会帮助你。

如果你喜欢这篇文章,打赏AE钱包:aechina.chain

喜欢 7
or

相关文章

更多

发布评论

共2条评论
    WordPress › 错误