Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
135 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!- g  }; n# ?) H4 `. ~5 G' |

: P: }! E7 [) t. p+ a+ }“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash- [" U; w) H# ~8 f
步骤1:从AWS启动EC2实例! B2 ]) s) w* L+ s* z3 D! Z! b
登录您的AWS账户,单击服务> EC2>启动实例
* V& C7 h) B0 {6 E0 s
3 b& ^& P: |2 u0 }2 o, N5 b( D选择Amazon Linux 2 AMI" ]5 [( a& F+ v3 s3 z9 p
选择t2.micro(免费!如果这是您的第一个也是唯一的实例)+ {# D. ?6 `+ h- ^- `2 n
- ~" F1 ]5 n6 Z0 p0 e
点击查看并启动>启动! 然后,你将遇到以下弹出窗口:
& m0 H' U+ f" Y: z+ d& V4 u
( I* {) Y/ v# e+ l% b2 y7 i" D% G如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!
6 f. i1 H: I. G* [. P步骤2:为SSH准备密钥对
5 Z! |$ m$ ~5 W2 C( J$ G如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
5 F' @3 }. @" g+ d% I我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。
! ?- `9 \' z2 h% A6 H6 I8 Z
3 C- ^# N( V% F+ a$ B4 S+ B打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。) `! W& ~7 Y7 F" |
单击“保存私钥”。
0 n  N, R- K# N3 b- V你确定要在没有密码的情况下保存此密钥吗? 是$ s" P& K9 w* ?1 {
步骤3:找到您的公共实例的IP
. D, l0 ^( Z6 \! w. p! I( f* f你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:7 O" M/ N- V: r$ N6 L" a6 q- s
! y; f  T% u- ?, g, h4 B) y
记下公共DNS(IPv4)和IPv4公共IP。
- C& `# F& d) ]4 j5 [0 J! @步骤4:SSH时间!: G+ d" Y! l, |" X, g3 G. J
启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。2 `  c+ ]% P; p! {  }1 k5 X! ~$ F0 b
: e7 a: W2 D( _( ]* l7 n* O: m
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!
8 H3 v7 \+ Q7 i* C: f  P 5 [; e) f$ U7 _9 |
点击打开!用户名:ec2-user
# Y$ o7 q( k) H0 a$ D8 c我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!8 I5 J) H% t& p& z- x' n
0 i( u2 b- T8 \* N1 r. e
上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。3 m0 n& h7 R. k
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。
( F& r; ^9 V$ s  G& h# C$ X, B. j下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。3 h. s6 u8 J1 X2 ?
Citizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker
0 h; J( c+ z- d0 e通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。) Y$ X9 g/ X1 \* G9 [6 g" |/ y
步骤1: 安装Docker2 j6 Z2 x. F( `& r/ V
sudo yum update -y
' |9 h  ~( _5 e7 ]# c) x" \sudo yum install -y docker
1 }3 S8 `# J! }sudo service docker start
0 V5 \1 [7 I3 R# _sudo usermod -a -G docker ec2-user
% J8 ~) U0 o( a$ r* \步骤2: 查看并部署Docker NEO网络镜像
$ y+ h1 k* m5 e8 Jdocker info #just a check7 ~; Q4 G7 U( S9 s) j' Y* r# T2 |
docker pull cityofzion/neo-privatenet. u; S: h. V( {: ]6 G4 \
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
7 F- `- n% k# U# B+ r! k2 U/ e% P查看一下镜像程序是否在运行。docker ps
( L$ Y. r/ t7 n, Q" N0 ^0 o' a2 l# \9 X! F4 O% B) l+ E
步骤3: 将端口范围30331–30334添加到安全组5 B3 U7 ^5 q* n9 R! b
登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:6 Y$ V/ O! v+ W) y+ R1 ~

( x) E/ r2 D, F! }; p8 V/ |*这些规则立即生效% k# C; a; P1 M5 F2 M/ e
步骤4: 使用neo-prompt连接
' F7 S5 `8 R* A. }( F+ V0 w7 J2 H' l打开本地终端,输入:' B5 E: {) j5 j0 g, d
ubuntu
" u6 q. o7 k' ~$ a) A5 hsudo -i' ~( h: N. L- I+ V( r. W) D
cd# L% }4 _1 ~0 G! a" u! Z
source venv/bin/activate
+ d3 ~9 }) j$ @. g) ^% K还记得之前文章提过的公网IP吗,将它填写到这里:4 P+ V: d6 i. P$ [- m7 S
np-prompt -p
3 N6 i3 U  D/ [% S2 ^0 |- B' y5 H" E- a很好,这些都做好了。! g; y2 y+ `$ \5 z. Y
额外命令:重启NEO区块链网络8 r: z, a; ?( e4 F6 ?
根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:6 w5 I0 z5 [- O7 {$ S( g. \
docker stop neo-privatenet
6 `1 X! B/ Q# h然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:
9 t8 {7 _9 y9 Orm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10