Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
104 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!" s9 j# H2 z$ J

6 N: U7 H+ m6 E, w  h  M6 B“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash
8 I1 a: ^; B! Y& i步骤1:从AWS启动EC2实例2 E- ^/ x. [' n' F! W
登录您的AWS账户,单击服务> EC2>启动实例, C. P: k$ P! T% e- z! H9 x) J7 K
6 j# r" f8 G2 X, G. K& g. ]
选择Amazon Linux 2 AMI2 I! j) c" c% v5 T& x( }% h
选择t2.micro(免费!如果这是您的第一个也是唯一的实例), w$ C5 d  u6 `& ]
& y) m- q5 H4 q: s+ F/ ]
点击查看并启动>启动! 然后,你将遇到以下弹出窗口:
" Y* F7 L4 T! F% v/ m 3 _, t3 x9 L' D% b" D6 E$ t
如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!
3 K: V5 I4 v6 P- O; Z步骤2:为SSH准备密钥对0 e3 W! _( C& M6 h8 J/ z' i& K; I
如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
; V1 b+ W+ U! _: N8 [我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。3 R- y5 C* Z- e& G" r4 U! ?
. F7 d7 K' [4 l5 {$ E0 D- s
打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。
2 x% a' ]+ L2 {* t单击“保存私钥”。
, h% Q/ ?& M" ^8 u& X# w你确定要在没有密码的情况下保存此密钥吗? 是
' A/ T, r) G4 w/ T步骤3:找到您的公共实例的IP) c! Z  F7 D8 o$ F/ D, x
你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:
, R4 P$ R& w" ]! g0 ?# U & j! H4 H& c3 T: E: j+ X0 L: |
记下公共DNS(IPv4)和IPv4公共IP。! ^5 _7 A6 ?7 ^: v. _
步骤4:SSH时间!& |; n) y0 T* d! R
启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。
" ]8 n$ v9 _% A9 G' y# x; n + d5 {  n% ?8 |7 ?% z  p- ^
接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!- D9 I- H8 O9 k8 s# I

- @& E' I! _" S) S点击打开!用户名:ec2-user! n4 y& C5 H7 c5 `; `
我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!
& T5 \, u1 F* G7 C& }2 S; O: T: X) d) \
上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。  A7 C$ T% ?+ A0 x
Docker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。9 c! O4 m" B' \" C% d- z6 c
下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。8 p2 N, N, M/ J8 D. O6 Z& u
Citizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker: k" t: L4 J7 y" t4 {: x
通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。
0 t  M" ~+ h' C) M$ v" o% J  _6 S步骤1: 安装Docker
* k' ]' w) R7 W8 k. zsudo yum update -y
3 a- P; q; }" q7 ~/ H2 w$ r' ^sudo yum install -y docker" b  L2 h' F" M# W
sudo service docker start0 a3 g. f0 }1 L
sudo usermod -a -G docker ec2-user' y; b, _3 Z; {: V4 G
步骤2: 查看并部署Docker NEO网络镜像
% h3 A* t# M& m6 R; pdocker info #just a check' [& b$ m! n: W- F5 V3 F5 E
docker pull cityofzion/neo-privatenet
* ^3 x; ?6 s# r7 idocker 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
: G) o; ^" N3 p+ Z8 b' m# L查看一下镜像程序是否在运行。docker ps  F1 O0 X8 R0 w$ l& u
" y' H# m: C8 l9 j5 X5 F
步骤3: 将端口范围30331–30334添加到安全组% T! g* m8 ~2 |$ R+ ?
登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:% b9 z  z! q) ?$ u9 P2 v! u* q

3 _; T* h4 p1 D6 F% z*这些规则立即生效
) x% K$ u" W  Y# E8 L步骤4: 使用neo-prompt连接
3 u; @4 J# J* c: G. S2 E1 {8 V8 b- o打开本地终端,输入:2 `" A0 w" q- F1 t* X; m5 h
ubuntu
/ F+ G1 H, Q3 c) F: w) d7 Tsudo -i
6 a2 Z& k+ t/ [" \cd, |9 |' [% Y8 P) {6 ^, P
source venv/bin/activate
# f- c6 @( K4 H3 r' L1 ~8 m还记得之前文章提过的公网IP吗,将它填写到这里:' T( J0 t3 T9 }" M8 K! d. b6 G: t" y
np-prompt -p
' P5 l7 g2 Z/ q6 Y- y  l* r! `很好,这些都做好了。
! F! l% w& e5 J3 a; P额外命令:重启NEO区块链网络6 Z0 f: s+ G( y9 c# M0 |0 V" Z
根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:% K7 {/ w3 {! a* g, B
docker stop neo-privatenet
4 b; [# F3 ~" p1 Y% D然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:7 e5 h: b( i2 J7 o6 A
rm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10