Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
103 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!8 A% ~. _) U& b5 s! X* m1 p; u
- m: J! W) W8 p' w# l2 l6 J
“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash
7 ~/ I. K. K: V6 X0 Z/ b+ x步骤1:从AWS启动EC2实例
6 z/ O  {0 L, }9 H" Z登录您的AWS账户,单击服务> EC2>启动实例
- ?+ f! F* q. Z! s' ^2 j4 r   C) Q: O8 [' A
选择Amazon Linux 2 AMI
  b% G0 m) `* h4 ^3 e选择t2.micro(免费!如果这是您的第一个也是唯一的实例)
8 n; a0 w* u; E! T# K4 M & j6 L2 c  X% O, g# C" \
点击查看并启动>启动! 然后,你将遇到以下弹出窗口:
+ ^" M9 @3 x) Z( a8 ~9 p ' P8 C, ]9 R" u* ^9 P
如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!
( k+ x& j" B, }% G6 G步骤2:为SSH准备密钥对+ u1 K, B. N  N( s
如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
7 _( P) K. {8 `. D我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。
, E& _) j1 D9 E3 G7 q1 [
2 _$ x3 [5 w3 [( K) A7 C/ Y" V打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。' I9 t2 s. x% c1 S
单击“保存私钥”。, y1 K- B$ @+ R4 ^. U1 H6 n. N
你确定要在没有密码的情况下保存此密钥吗? 是
6 ~" U; g" _& W6 N. x" L+ ^9 l2 w步骤3:找到您的公共实例的IP9 e( a) I4 L# C7 I7 @. u6 f4 f7 N3 G
你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:/ |+ p- z0 b% E" b& t6 G% l

- H3 ~: }0 v3 P3 s1 M) a记下公共DNS(IPv4)和IPv4公共IP。
4 x% L7 e# @& Y4 C: [4 C7 r/ `) P步骤4:SSH时间!
4 h/ q8 M/ U( }& \8 m启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。
- x+ e2 s' h& ?& b9 s- q2 c: i " }% P" ~: X. V  c+ O' S
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!% d7 c# L( J3 I$ W8 X1 P3 E8 j3 a- E
- c/ Z% F- k# K/ }9 Q
点击打开!用户名:ec2-user
' y  u/ G! R' P, `# Q我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!
/ O6 K3 W' z6 L1 b- T) X1 r) X" C4 H. F. h
上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。/ N7 h5 X& B) O5 S! Y& z1 v0 G
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。0 q4 Q" m) ]; f- J9 ?% N5 ^+ P- N
下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。* ?4 l' R6 q: r  C- [
Citizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker
3 \# b1 w8 }5 B$ `, h  O通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。
& B$ B9 p# S8 P+ @步骤1: 安装Docker. F$ G' m4 o7 F+ E! e. v
sudo yum update -y/ H9 L& h8 X$ h* q! z/ e
sudo yum install -y docker, O  e/ z2 p" A4 `2 D& _& u3 |7 X
sudo service docker start
% q$ p' T( u# }. I+ asudo usermod -a -G docker ec2-user) j+ R; w4 O% K$ f$ U
步骤2: 查看并部署Docker NEO网络镜像5 ]" G- e: T# T+ A
docker info #just a check+ n, A1 K- s( c& [
docker pull cityofzion/neo-privatenet) f: e% {+ e8 o9 q% j6 \
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$ C+ B; ~% d% e( r8 g" S, g! Y/ i1 Q% ?
查看一下镜像程序是否在运行。docker ps1 S, l( n: _7 ~: Y  v: h

) S0 r3 L; h7 Y5 u/ s& u步骤3: 将端口范围30331–30334添加到安全组7 u. y& V, [+ Q! k1 e6 |
登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:
- L# q$ ^! e2 r; y9 n3 B- G. a1 F8 v) R2 z/ c8 {
*这些规则立即生效, ^( S1 k$ G' h& c
步骤4: 使用neo-prompt连接9 V  k: [: i( X8 c
打开本地终端,输入:& C5 I8 T; `# D
ubuntu
- _4 ?$ M1 n( y' ?$ X# K! T8 ksudo -i
% X! j) Q' `3 z  Z' ?8 acd% _' S) E& D' ~4 V8 k
source venv/bin/activate) s$ a8 v" p! e" t+ {3 `: \# S
还记得之前文章提过的公网IP吗,将它填写到这里:
/ W3 u: ^+ V8 Unp-prompt -p
/ O3 f" d" B' R! i( g# o/ u很好,这些都做好了。( \9 {, X; e1 h: X- |# U: p! o
额外命令:重启NEO区块链网络
) ?$ G6 v5 q  F: i* `- }# C: ]根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:4 z$ f: W  K$ J7 E% N& }# r
docker stop neo-privatenet4 Y: \6 O) u+ h& I8 ^
然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:
: t2 P. w! H9 }, q% Krm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10