Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
120 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!
* `" `* B4 `2 w6 R) N3 Q! T+ ` ' L5 v9 P6 H) r" r" d
“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash; W  z3 W1 q  ?: c4 J
步骤1:从AWS启动EC2实例
) Y1 m$ i+ V3 Q: ?0 C3 d7 n登录您的AWS账户,单击服务> EC2>启动实例/ v% r, i9 E5 L& \& S

1 j- N# i& C* X2 z' a/ I5 H5 ?9 L选择Amazon Linux 2 AMI
1 ^! m; j. N. Q9 j8 f$ W选择t2.micro(免费!如果这是您的第一个也是唯一的实例)
) [# \! T" w8 G- |: Q: {, y! y, L
: z, ]2 q+ I; K: V: ~3 j点击查看并启动>启动! 然后,你将遇到以下弹出窗口:6 P" N- J! P: w
4 P0 C5 p7 [* L  m+ m
如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!
9 w9 a# f* o  [( X步骤2:为SSH准备密钥对
8 D5 g( j" p# C6 @$ }9 Z# f% j9 y如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) N4 \3 k) k  b/ [4 A' Y1 s
我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。
/ a: J9 z+ C& C
6 R0 B2 A' j: p8 l. f3 V6 Y打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。
& \, \5 i* Q) k: ?; r2 M单击“保存私钥”。/ L1 h! U8 I) y0 r1 p- L
你确定要在没有密码的情况下保存此密钥吗? 是
: c5 O0 J& |" L6 u; K) y步骤3:找到您的公共实例的IP
) I$ x- D3 w; C0 }/ _7 U+ U你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:
: o. _0 }- Y2 V! R + P. T* K( Y, ?
记下公共DNS(IPv4)和IPv4公共IP。% |* v  W+ v) H7 f0 s8 _
步骤4:SSH时间!
- ]$ s6 q& E- C; l; W# t( U2 T启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。
3 _/ T' `: D0 l/ o% U5 D$ v : i- h% c! h5 A  o# _! Y) Q7 B0 e( g
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!3 \* }- b' i) |; e9 D6 I
- n: l, S6 [- R; a
点击打开!用户名:ec2-user
+ {% _& ?& q  [& p. {我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!2 W& x3 E/ C+ @, r/ F; s% s; [
. I$ n: b$ V8 ~
上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。" B- X& N3 I* R( k. T% ~
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。
1 o& q! G/ C, l" @; I下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。
/ K- ?9 U5 u) t! l# Y% z& aCitizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker
5 N9 i+ p! J0 i+ G# C/ R+ r通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。
+ g! X; k) d3 T0 Z步骤1: 安装Docker
1 N; b7 H$ x# V/ _sudo yum update -y0 R  U0 c) |: ^, i9 G; ]' o
sudo yum install -y docker+ Q) i, I& R/ k4 ^0 {1 ^
sudo service docker start# J6 B4 Q3 ]1 H. p. v
sudo usermod -a -G docker ec2-user$ Q1 y8 m* G) W3 I
步骤2: 查看并部署Docker NEO网络镜像! f* K  t( Z; F4 J  H) u5 @% G
docker info #just a check
* U% {/ w9 Y) F! G/ udocker pull cityofzion/neo-privatenet
( a; W7 K# O3 ?4 v% C  Mdocker 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
. q5 V" G: {3 V5 ~查看一下镜像程序是否在运行。docker ps
  r% V8 ~9 m( o
, F! B0 M, Z* m3 a步骤3: 将端口范围30331–30334添加到安全组; I7 L4 b6 d. D& c9 I. M8 q5 B
登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:2 [/ |$ M3 l) u

' a. \: O* u' P: l5 y*这些规则立即生效3 [  ~3 }( L% D( Z/ I/ d. N
步骤4: 使用neo-prompt连接) z. W6 h5 x( i" g
打开本地终端,输入:' X0 S5 U, L8 F
ubuntu7 G0 w0 ^; l# Z8 Z
sudo -i
- a7 W/ H6 M% Ycd/ W1 Y4 S! h4 C' `! N) t
source venv/bin/activate8 D0 l, c+ i4 [! ?
还记得之前文章提过的公网IP吗,将它填写到这里:3 x) Y1 K0 F6 |; E4 A% ~
np-prompt -p
4 `: u6 V. l% z( M很好,这些都做好了。
' R% l/ z& M4 d+ e额外命令:重启NEO区块链网络
$ f# W" L0 g' a7 i根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:
" Y, x; W& g$ N1 Odocker stop neo-privatenet
, n1 e+ j1 u; k  u' m然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:
, e2 C2 Y9 x/ f$ L- frm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10