Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
105 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!
, z+ P# V4 f9 `; F: g
7 \9 p- B% ^/ W“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash, x; L# q) q! n- {
步骤1:从AWS启动EC2实例
; y3 n- p7 \) \; u1 J, _! |% a登录您的AWS账户,单击服务> EC2>启动实例' ^: N: `6 o- S$ E* D, X
% W7 m4 B: N  o
选择Amazon Linux 2 AMI' T5 Y5 l1 S6 f
选择t2.micro(免费!如果这是您的第一个也是唯一的实例)
4 [* a$ n% u! ~7 n9 N3 v
, P2 h5 g" O5 f+ S点击查看并启动>启动! 然后,你将遇到以下弹出窗口:% r4 K" W. C9 p9 m

; y+ N6 l9 u( o如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!- |+ R' l: }( ?  i) D
步骤2:为SSH准备密钥对5 J1 A/ ]$ p; W6 t
如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
% ?7 u  S, e: `: G8 d我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。
. S- ]" C$ v  u4 y% _; ?
: `" ]3 ^- H" g, g; F, c打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。
, _1 F9 M4 X% z8 `* f/ \' G4 P单击“保存私钥”。8 t0 G9 n  B' I) D
你确定要在没有密码的情况下保存此密钥吗? 是; `% D, w/ c2 C. U; ]- s2 x; `
步骤3:找到您的公共实例的IP
) W. U" C) ?% n3 ~& m9 w, x: ^你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:0 k, [6 r1 o$ O, l4 j" G: W, b
4 @3 ~& w+ q1 b5 d' ~9 C% c; V
记下公共DNS(IPv4)和IPv4公共IP。
# x# H2 G' X, W& @% R' f. X步骤4:SSH时间!
/ L" @. F* \0 m" a1 W启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。
  i! l. I$ Y8 Z  U, e + B* _  X3 b, w7 D
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!( ~, A" r. t* _8 o0 B, R
% E+ f# t7 {3 _8 M. K
点击打开!用户名:ec2-user
8 S" j" ?8 R6 V4 }我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!
1 A3 w% g3 E  w2 K$ b) g4 ~, H* d) A0 L; a
上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。3 Z9 \. C5 |( ]2 q% B& c- C
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。
* ?& D6 B2 Z) a& ~6 q) m% `! |下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。
4 X( a6 Z  L2 vCitizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker
8 q' B, K" B: V7 L/ N" q# t4 g通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。
/ l! v! h( j! _% S步骤1: 安装Docker. \& ~2 V$ S0 Z
sudo yum update -y) I* _* A0 K: `' f/ }7 y' b
sudo yum install -y docker' h$ l- p7 X3 T8 g
sudo service docker start
3 o" J8 x% L' P! y" ~" Esudo usermod -a -G docker ec2-user2 D( U' N2 B6 n+ G8 B! V0 ~
步骤2: 查看并部署Docker NEO网络镜像  w4 r. H0 q+ t5 }+ f% a, |- L8 C
docker info #just a check
& l, V1 l0 Y' [8 Q+ S2 z: rdocker pull cityofzion/neo-privatenet& {' j- ]# {1 j( z1 w  T& D
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& v* h( j4 \7 v  L6 ~7 m- X3 V
查看一下镜像程序是否在运行。docker ps* i+ Q3 S7 u* c3 \2 K
! I3 ]  X6 r0 Y( o1 ]8 O  S1 |; [) `
步骤3: 将端口范围30331–30334添加到安全组- r& m. q( \' {5 C6 l
登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:2 C0 O1 ]& T4 t" v8 Z# X: K. X

, `5 U1 j5 [5 m6 _$ w* Z4 f*这些规则立即生效/ J& I6 f1 c+ Y4 l+ [8 B; n/ r& Z
步骤4: 使用neo-prompt连接
% n& y5 l# ?/ J3 h1 [& e打开本地终端,输入:. m% ?) c7 T) o* v9 k
ubuntu
. `% t. k- m: I* T2 W7 y+ Esudo -i* V# _: y7 Y. h1 [
cd- [2 W* M" m6 y7 N; K( h) ~) W
source venv/bin/activate! G9 j! Z( K9 }0 }8 X; I' a
还记得之前文章提过的公网IP吗,将它填写到这里:, W* b6 i' l7 A' s+ x
np-prompt -p
) d% u5 l6 m7 E6 z) q很好,这些都做好了。9 ?! x$ E% H" @# |( V+ o
额外命令:重启NEO区块链网络
* ?( f  I! i3 K根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:
( F% s" I# R2 s) J( ydocker stop neo-privatenet/ [6 f7 q3 X4 g+ T4 V) f
然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:" n! J) g2 ?% u7 _' Q+ g0 ^
rm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10