Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
154 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!
$ W; b; M) V+ R) O6 L0 b5 L1 R
% a5 |# v  O6 M“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash
1 ?5 a: d9 q! S1 o0 [6 z步骤1:从AWS启动EC2实例8 }: }+ w  @( ~6 D+ _9 t! @
登录您的AWS账户,单击服务> EC2>启动实例
4 V7 e+ i7 m& L3 g( M/ c" g   p& [* c( G4 r; c# @
选择Amazon Linux 2 AMI
  F/ Q% Q5 y* A0 V' y* {选择t2.micro(免费!如果这是您的第一个也是唯一的实例); g& U/ f% t5 P5 t/ x
) f2 B0 R7 n$ h0 |6 |( d8 j
点击查看并启动>启动! 然后,你将遇到以下弹出窗口:. a0 C% w' _5 F- K- H8 T
! ~2 A) u4 T. {* Z% Z' H, I4 X4 r
如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!
! n& O# r: t6 s- J, L步骤2:为SSH准备密钥对
8 A7 s2 G, f6 f$ e( u& }如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
6 ?  k+ M. I1 C6 c& Q我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。
, M3 D( k' v( h ) e, f% l4 G5 r  h) O% q4 w+ p# A9 ]5 t: R
打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。5 ]8 y$ l9 I# L! s
单击“保存私钥”。9 q/ X5 n" T5 }+ p7 C/ O, ~
你确定要在没有密码的情况下保存此密钥吗? 是) @9 m' F" O0 U, m
步骤3:找到您的公共实例的IP! n2 _# `% k* H
你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:
# ~9 w6 o  S% f  w0 k / y4 w' s' b6 D9 S
记下公共DNS(IPv4)和IPv4公共IP。
7 R  q5 r, \, H5 ], c5 M步骤4:SSH时间!
+ _# A* e( U- j& g) ~  |0 t启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。7 D, F; @3 C: @; U3 ]1 M/ f; |
0 K4 y5 ^9 B& z& q( c
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!& U. R  f8 m; I0 m6 m5 t  R+ Z
. T9 P+ r# A! A
点击打开!用户名:ec2-user
2 K" }# V1 r: Q我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!
- Z1 ^& D( J, X, }3 R/ C
& w  ]' k( P% n/ K: {1 \上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。6 l) J" G/ f! k2 R3 o3 U; b4 G
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。
( ~* e6 C1 ~( e下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。: R) u$ s8 z5 J4 f# i
Citizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker, K$ a1 Z9 ^: D: d6 C
通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。
, o& N9 x3 {9 }- U步骤1: 安装Docker
! W7 y  Q9 @3 F) `1 j7 G- zsudo yum update -y
0 x% V  p! Q) h0 A4 ^4 y9 qsudo yum install -y docker! ]/ Q, ?% Z: t; e4 w
sudo service docker start
1 u* t. }6 a0 K. Ysudo usermod -a -G docker ec2-user
* Q% x2 K3 @$ s步骤2: 查看并部署Docker NEO网络镜像& I+ p) V2 _7 h3 p2 q% p
docker info #just a check
; v6 p; z# c, v7 L* K, t# Fdocker pull cityofzion/neo-privatenet
  T2 Z5 }# x: x5 b7 E( |* U1 p8 [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-privatenet4 h" _9 S7 L0 C, {# B
查看一下镜像程序是否在运行。docker ps
% u; i: V5 C4 k. y; `9 W* a+ J, N' ]1 {2 [6 ^
步骤3: 将端口范围30331–30334添加到安全组
& k; Z# R7 ?' \1 v% |; r0 _7 u登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:
& V1 i% Z) T6 {* ~6 g6 s' {( I3 D+ H7 P' G
*这些规则立即生效4 A  p- k0 D' ?$ Q/ o) Y
步骤4: 使用neo-prompt连接
- Z; ]% e8 f1 a1 x3 y* W# t打开本地终端,输入:/ o7 q* V! H5 G2 a0 v7 V
ubuntu
8 j" l" |( g  v2 P  Tsudo -i
0 G1 r! p* Z$ A& Z3 xcd
* t2 ~% u0 S5 K* l7 |# N: Wsource venv/bin/activate
1 T! P& M- z# q还记得之前文章提过的公网IP吗,将它填写到这里:
0 _; ^8 c& {7 ?+ v" O/ @1 Y; Anp-prompt -p
# \* S, T  j/ ^% F2 `很好,这些都做好了。
7 R: O+ X  }. ?# |额外命令:重启NEO区块链网络
' n5 U* ^& A: V3 [5 P6 V! U根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:
- ]% u3 Y5 P" p- Ydocker stop neo-privatenet
4 }* N7 L* ]2 J6 T然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:
% U; M$ {2 {  ?rm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10