Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
78 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!
+ ?' V9 V# c1 I% j' B) ~6 Y
; D4 }" s: n& N* A) Z# p, j“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash
) C; v3 D$ W4 E* }; ]& F6 d* O步骤1:从AWS启动EC2实例
9 g/ b; Y4 q; ]6 Y+ o; }登录您的AWS账户,单击服务> EC2>启动实例, i2 S) ^% r0 ^% b3 [
& }% K6 E/ ?' @! T% L
选择Amazon Linux 2 AMI
# w; I8 M/ S' x9 q. ]选择t2.micro(免费!如果这是您的第一个也是唯一的实例)
7 s, N& }. U. W/ l
9 U' b* }% h/ T9 j( k: M! Q: y* H点击查看并启动>启动! 然后,你将遇到以下弹出窗口:" y+ F5 v/ v/ r& e4 Q& }6 g( E9 `

% a+ j5 M0 ^9 K- T如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!
0 [: Y5 u2 b0 C: B9 c4 @& s步骤2:为SSH准备密钥对
; m/ j) c& s; d/ T; x9 M" B4 B. }如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
, K: R% S& g5 D4 A' W我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。
" B! i7 }$ W8 C1 k, S: R) a, j6 w ( i9 L* n! ~' d5 W$ d: k
打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。$ Q4 k( T; S" ^: y" V6 @/ S% M8 H
单击“保存私钥”。
) n- T2 D0 x  s: }1 r你确定要在没有密码的情况下保存此密钥吗? 是! }, X- x$ Q5 n% [
步骤3:找到您的公共实例的IP
7 A0 y$ |+ s; c你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:" T: e+ x& T/ I) G, R# K
6 V# k/ R' h' Z; I( w; M7 s
记下公共DNS(IPv4)和IPv4公共IP。6 {; U3 i: |0 K% P/ m4 X( u
步骤4:SSH时间!. J" f1 R8 D8 _+ ]
启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。
9 d" H' J0 o/ x 5 F" J9 q: G, h/ t
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!7 Q" u+ B1 x# `8 D, }8 A

6 \) Z4 I6 @6 A+ t- q点击打开!用户名:ec2-user9 @& X+ [& i9 D9 G# ]
我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!0 x0 Y* _; V9 ~# y8 N* `
  Z; e  z4 L0 R$ b
上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。* B! G- S  `2 h2 K/ c
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。
0 O( L5 `$ @( Q2 k下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。7 N6 p( ?3 _7 l; @4 d9 G
Citizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker7 R, D$ l/ @0 Q) Y: o$ [2 D5 u
通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。6 v9 J  P1 _& @8 r+ j9 q/ ~
步骤1: 安装Docker
+ K6 E0 Y! ?4 `; n$ z6 \sudo yum update -y
4 Y; _" j& ?% B9 ^& Y4 ]sudo yum install -y docker
# a7 _, b: A4 V8 H0 Dsudo service docker start) a- q9 t" o3 ]$ D8 x- z2 G  A
sudo usermod -a -G docker ec2-user- c' Z* D2 e& R
步骤2: 查看并部署Docker NEO网络镜像
7 `+ F# M4 q4 V- Y' I1 bdocker info #just a check# X+ t/ _; b. C8 \1 A
docker pull cityofzion/neo-privatenet, t# O) |. K8 c# O  u9 A
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-privatenet6 \8 V: U; ^: G2 h6 I: Q' |) d- q
查看一下镜像程序是否在运行。docker ps
$ O! R$ p, O) B+ w) S
# Q/ X9 I1 g3 I) S2 h步骤3: 将端口范围30331–30334添加到安全组
  _: N' |$ l& K5 A8 b登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:
" Z: s0 x/ X" N. F/ n  P
+ ^( B) l8 z$ p9 {*这些规则立即生效7 }# g" C! L, N' _" y
步骤4: 使用neo-prompt连接. l; W' z% t6 L7 ]8 ~
打开本地终端,输入:# W& L  [% A* Z  y+ a5 F# l3 }1 d
ubuntu1 f2 d5 P$ Q' n
sudo -i
( D* Q6 ~, G' scd
/ J. g7 ]. c  N8 zsource venv/bin/activate
& X( b* U5 i4 ^0 f5 g; ]还记得之前文章提过的公网IP吗,将它填写到这里:; a. \$ d) c, r& q8 Y6 @- }
np-prompt -p- R- X$ f' V* X1 X% h: @: B. U5 P
很好,这些都做好了。
) d1 M  s! i& q7 Y' X9 k额外命令:重启NEO区块链网络5 L/ ~8 Y; r% \1 G, u2 H; B8 z; Y% x
根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:% f$ U& n: P+ `9 U
docker stop neo-privatenet
9 n% ?7 Y6 q/ P1 F然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:" @3 Z9 x; j: x* R* {
rm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10