如何创建Aeternity节点
为何要运行一个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节点
如果你已准备好开始设置自己的本地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测试网或主网络。节点用户通过修改配置文件更改参数,配置文件可用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/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社区将会帮助你。
下一篇: 3分钟部署属于您自己的aex-9代币
刘少:你好!
我是一名刚进入币圈的菜鸟小白,各种机缘下持有了一点ae代币,并被套在了高位!
然后对ae进行了更进一步的了解,虽不明,仍觉厉!总感觉很有前(钱)途的样子!
但目前ae的表象价格,并未体现出来他的价值,这说明目前还未能取得大家的认知!由于一部分玩币圈的人,并不具备对区块链的认知达到极高的专业水平!因此,这部分人或许就是通过价格来判断价值,锦上添花也好,墙倒人推也摆,都是金融手法的体现!
如何能取得更多人的认知?我觉得,首先,应从逐步上升的价格来体现!其次,技术小白如何为社区作贡献的同时还可以有不菲的回报?太复杂太专业的东西搞不懂,就如这个教材,看了几遍,仍觉得难以完成!因此,还需要技术大咖们的进一步科谱!
1