StepByStep 在AWS上搭建NEO私有链
博客园
发表于 2022-12-2 15:03:09
153
0
0
( [2 D4 g7 [ C3 u& V4 q; R
“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash3 p# `4 y3 i# r% g
步骤1:从AWS启动EC2实例1 m! n# ^9 }/ Z6 G& K
登录您的AWS账户,单击服务> EC2>启动实例8 a Y) F$ {4 C/ L
选择Amazon Linux 2 AMI5 O/ T( Z9 H, ^/ K
选择t2.micro(免费!如果这是您的第一个也是唯一的实例)
8 e- a3 h& B. A, L, j+ b
点击查看并启动>启动! 然后,你将遇到以下弹出窗口:
) y7 G+ G# F5 `2 W( a) p, V
如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!
步骤2:为SSH准备密钥对: ]7 h. O( ]. _5 s
如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html8 E- t" @7 ]4 E) g
我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。. l1 d I$ A0 `
打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。
单击“保存私钥”。
你确定要在没有密码的情况下保存此密钥吗? 是+ e8 Q1 R5 Y+ N/ D1 y. ]
步骤3:找到您的公共实例的IP' f7 }; @% E1 M k, P7 O: v6 O7 h
你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:* j6 R# [' F8 W8 h0 M6 a1 w; g+ S1 _
( a t8 F6 E/ X
记下公共DNS(IPv4)和IPv4公共IP。
步骤4:SSH时间!; P& L% |4 L7 p, s* [% c
启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!
* d" y2 \1 J+ i- y. |/ y/ N( n8 w
点击打开!用户名:ec2-user
我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!6 d5 s: S2 y* ?- J
上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。/ A; D* {! P) z8 Z
下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。
Citizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker)
通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。
步骤1: 安装Docker
sudo yum update -y
sudo yum install -y docker/ H4 P7 R4 Y! V) S6 A; b4 T
sudo service docker start, E, J r& ?) ^$ t5 L T; j
sudo usermod -a -G docker ec2-user- d; v: z+ L; r7 ~* q0 y
步骤2: 查看并部署Docker NEO网络镜像+ d1 ^3 }8 v3 V4 z. t. a* K
docker info #just a check4 Q4 S2 h) S+ x; @1 J* |
docker pull cityofzion/neo-privatenet4 C& [2 g6 C; f8 P- f
docker run --rm -d --name neo-privatenet --expose=20331-20334 --expose=30333-30336 -p 20333-20336:20333-20336/tcp -p 30333-30336:30333-30336/tcp cityofzion/neo-privatenet, P' m( k" z$ C3 q; a
查看一下镜像程序是否在运行。docker ps* r" e+ z' K' m' J& `3 ?% J
1 t4 b* B5 P5 t ?- s6 |/ e5 _
步骤3: 将端口范围30331–30334添加到安全组
登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:
8 I& P* E2 V# s
*这些规则立即生效
步骤4: 使用neo-prompt连接) m2 g% k p& b8 p! p
打开本地终端,输入:
ubuntu Z4 _6 w8 v: T) z5 l6 b2 @
sudo -i% s# ?5 x5 ~* i8 Z
cd7 \- W: e( N. `4 O
source venv/bin/activate
还记得之前文章提过的公网IP吗,将它填写到这里:
np-prompt -p0 s/ F. X* o; j8 T9 a; n
很好,这些都做好了。" H$ Y; I; u+ P- o! n J" n
额外命令:重启NEO区块链网络0 v) U7 c/ e+ P" ~
根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:% V7 X. G" g% c& q
docker stop neo-privatenet
然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:$ Q$ e. T( U& j7 x9 K
rm -rf /root/.neopython/Chains/
成为第一个吐槽的人