Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
117 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!# d* A0 C& ]8 G& j5 g9 O
% `( ]( I/ W! O- E4 B4 u2 `
“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash) i* p; a" r2 a5 J; {4 H& a+ j
步骤1:从AWS启动EC2实例
" x5 u! N( S' B1 f$ z4 n9 E, O9 [登录您的AWS账户,单击服务> EC2>启动实例
3 @# |5 C3 S! Z( b& ]. N
- a, M5 y" P$ e选择Amazon Linux 2 AMI) B! a: c8 m/ j. P
选择t2.micro(免费!如果这是您的第一个也是唯一的实例)8 N, q6 M$ i! E7 \$ c+ u
8 c! T+ q6 N' f- l
点击查看并启动>启动! 然后,你将遇到以下弹出窗口:! x4 L" o; n. ~! i9 u* T

+ \* |% U& h4 ]! F如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!" ?% J5 O* c, |, H4 |4 \! B: D. X) m
步骤2:为SSH准备密钥对
# y& V% F+ C' a如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
( t' ^' a0 t1 Q( L$ m) E我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。7 B/ C. f8 }- _* s% `8 G8 W0 q

6 ^/ y, z" m6 B+ g9 c- I; Y) W打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。) N! M; z4 O& }! |/ |7 x8 Z* T; E
单击“保存私钥”。
# y5 f3 Z& j, U你确定要在没有密码的情况下保存此密钥吗? 是' G6 R5 Q$ g0 b
步骤3:找到您的公共实例的IP2 |- U8 ^6 T- k, r
你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:
! Z3 W' Y5 x; h  K' z& R
. }  G  o5 J# N$ d$ Q6 h记下公共DNS(IPv4)和IPv4公共IP。
4 V' H" z( {8 I5 S( ?# D1 ]; L步骤4:SSH时间!
& W. s6 `" i4 w: V' Z启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。4 E" f% R  |2 w# @2 O2 ]% Y; H
% X# g9 d4 W/ _7 V/ c, F8 M0 x5 f
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!  [, @& o4 Z3 [. `
( q5 R2 K1 M) g, x% C5 l0 R$ m
点击打开!用户名:ec2-user2 h. p; n, L  S: `! Q- s" {
我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!
/ L( u+ ~, n# c) i- S( a; P( H% _! C2 _1 E
上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。% s7 v$ _. g9 i3 ]
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。# l' L2 B! J% i: b! T  J- Q
下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。
+ G+ s5 m! i3 o: ^Citizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker
+ r4 J! p( D! L( v+ h通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。: w) B' ?' ]2 f* {: }" n$ Y
步骤1: 安装Docker
; P1 K  {7 l. j5 {sudo yum update -y; h7 \' P; Y- L& m8 n  R# I0 |  A
sudo yum install -y docker
+ P# y2 a" v& v% \; f  u- `1 msudo service docker start
7 W- G: Y" o2 Msudo usermod -a -G docker ec2-user
3 A+ \; a. R' H" ]! U9 a+ T9 m步骤2: 查看并部署Docker NEO网络镜像
. T1 v( z/ V4 bdocker info #just a check$ F+ t4 d! ?; _+ |% V& ^$ z
docker pull cityofzion/neo-privatenet
- G+ L7 l4 K' Z) z. fdocker 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! n& l9 {" Q' U# f, e+ D2 A5 @8 x
查看一下镜像程序是否在运行。docker ps5 r/ z3 z5 s& x+ ?2 ^- H, X: A8 a

2 W3 y# l( c$ I$ u步骤3: 将端口范围30331–30334添加到安全组8 V8 ?1 B& x+ S; ], S) V: F
登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:
/ `) }+ p+ f- g) C; w- H1 X; L" x' p1 v0 j3 P
*这些规则立即生效
3 z4 ^! e. P+ T2 [8 A7 H步骤4: 使用neo-prompt连接
% [3 L% z! [* d, r9 k* L打开本地终端,输入:/ b  F! I3 W8 I1 G
ubuntu
' A4 [; i; O7 _. jsudo -i
, b+ l8 ^: _4 {. s( c% \/ w* o$ Wcd& r% [& x. m( A) t/ R5 J# _
source venv/bin/activate, w5 r* N, c7 W  N0 \0 a
还记得之前文章提过的公网IP吗,将它填写到这里:; m1 M7 \' V7 }
np-prompt -p
$ j3 h' _3 A- h- {: c很好,这些都做好了。" w1 p: b; [9 B2 V/ J* T
额外命令:重启NEO区块链网络
" i9 \9 L" ~/ |0 D5 u' w) b根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:
2 B: E( G0 {7 U3 b5 cdocker stop neo-privatenet" m" J0 S, }, G2 M% P' I5 w
然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:
) T+ T$ i8 j: Q6 \/ V/ Drm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10