Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

StepByStep 在AWS上搭建NEO私有链

博客园
102 0 0
部署自己的NEO私有链并在那里测试智能合约。要做到这一点,我们需要一个服务器…哪里比AWS网络服务更好呢!让我们开始吧!
9 T4 l- P3 w- A+ W# G2 H% v
& p( A( |9 U7 h5 `9 O) q“Fans and wires on the back of a computer server” by Thomas Kvistholt on Unsplash
8 v/ ?- c# Y  J* V1 N步骤1:从AWS启动EC2实例) x. a2 R( |/ t: j5 ^
登录您的AWS账户,单击服务> EC2>启动实例
. U, p  m: K- o
/ c! m7 s( L1 I9 h5 Q选择Amazon Linux 2 AMI
1 j' w( O" \& ]% P' u选择t2.micro(免费!如果这是您的第一个也是唯一的实例)% `9 \& b5 i- Q$ W+ N" g% H
* u( ]) ]9 z3 _  e
点击查看并启动>启动! 然后,你将遇到以下弹出窗口:
# s& R/ D2 Z% i  F+ } 2 u* f# U( R- s  y
如果这是你的第一个实例,请从下拉列表中选择“创建新密钥对”。为新密钥对命名>下载密钥对。然后发布!
* k. p6 m3 P$ D1 y步骤2:为SSH准备密钥对2 a: l6 I) |5 ?# A* @% |, z- j
如果你还没有这样做,请在这里下载putty。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
' n& ~: i: @5 H! [  \8 |2 f我们需要先将.pem文件转换为putty可以使用的东西(.ppk)。 转到Windows开始,搜索PuTTYgen。: V0 w- }4 o0 h/ @  Y+ R

! q) X3 R& }/ o( J打开后,单击“加载”>“下拉列表”以显示所有文件(*。*)>选择myfirstkeypair.pem。6 s! T' o% q  v- ?$ {" k) v- f
单击“保存私钥”。* g+ k( `* Y6 V
你确定要在没有密码的情况下保存此密钥吗? 是& Q+ v6 B" G: }! g7 T$ f3 w$ o
步骤3:找到您的公共实例的IP
2 q( k4 U1 F; R; l; E/ j8 ~# o你的实例现在应该启动并运行!返回AWS控制台,服务> EC2。单击Instances,你应该会看到以下内容:' B9 q5 U6 Q& X7 f" v7 d
4 h  w8 a/ W: T+ q8 x- ~+ {8 C3 p
记下公共DNS(IPv4)和IPv4公共IP。
5 u9 }: ~' ~8 j3 q& K步骤4:SSH时间!: B$ l& f9 \% a
启动PuTTY。 在类别下,连接> SSH>单击验证。 浏览你通过PuTTYgen生成的.ppk文件。6 F* G9 U" b* m7 Z8 h- ~

7 j2 L: W3 q# I# }6 X接下来回到Session。在主机名下,将步骤3中的服务器的公共DNS放入。在已保存的会话下,为你的服务器命名! 点击保存!) s) j. g, b8 k: o# K, s

6 F2 N% S) a2 M点击打开!用户名:ec2-user
( q) Q  u; U& k+ Q1 w- m9 N4 Z我们暂时学到这里。如果你是AWS网络服务的新手,那么AWS是一个非常重要的行业变革工具,我们只是触及了今天的表面。启动一个微型实例属于“免费套餐”,不应该花费你一毛钱!要小心:添加额外的基础设施(EBS卷,增加服务器大小……)将产生费用!. \8 J- O- f' B& E, B+ O  Q

) X& s  z4 @: s6 Y8 M( ~7 a' m4 @上周,我们创建了AWS的账户,部署了一个EC2 Linux实例,并了解了如何通过SSH登录该云服务器实例。通过使用Docker,我们将在刚创建的Linux AMI中部署一个私有的NEO网络。
( H/ E8 z( t7 H* vDocker是什么?Docker是一个开源的应用容器引擎,它帮助我们运行镜像或程序包,这样我们不用去考虑NEO节点,网络,依赖包以及其他的一些预配置。所有的这些Docker镜像都帮我们实现了,我们只需下载后直接运行即可。
' O9 W- F* s' C下面花一点时间了解下我们特有的Docker镜像。该镜像包括4个NEO共识节点,这是运行NEO网络所需的最少节点数,节点间通过TCP协议使用30333-30336这一端口范围进行内部通信。通过设置AWS的安全组,开放测试网的通信端口范围(20331–20334)。
, |' O; w! ]8 uCitizen of Zion(CoZ)是与NEO合作的开源社区。感兴趣的可以查看他们的Docker镜像源码。(https://github.com/CityOfZion/neo-privatenet-docker
4 x  g5 T4 F8 n- K1 ?- Z通过SSH登录Amazon Linux云服务器实例后,下面我们将安装Docker。
3 H$ Y2 e6 g/ r步骤1: 安装Docker" ]4 m0 ^3 ?: H" T5 A& R
sudo yum update -y
# N" I1 i0 e  n; \5 ~, e3 ksudo yum install -y docker
3 A. q2 n* U" s6 o" B6 ^sudo service docker start
% r  g1 \4 I6 Lsudo usermod -a -G docker ec2-user: U, z4 ^5 v- p  _2 P* `5 @  J
步骤2: 查看并部署Docker NEO网络镜像
% R3 }$ S4 Y" e8 h5 t, c& o: jdocker info #just a check2 V) q% P' F  h7 R8 @6 |
docker pull cityofzion/neo-privatenet0 `6 H: e% T3 \# F4 D. v3 n
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$ _5 H( m  i0 ^  a9 s+ X( |
查看一下镜像程序是否在运行。docker ps( X& N+ ]2 n4 b: V7 Z9 l/ f6 }% G

' z6 }! s6 \: r9 M- ^步骤3: 将端口范围30331–30334添加到安全组
. V9 k% v0 g% h, o4 t0 {, C登录AWS控制台,Services > EC2. 点击网络&安全(NETWORK & SECURIT)栏下的安全组(Security Groups)。点击本实例安全组的编辑按钮,添加以下这些内网入方向规则:
  t* o6 q9 ]; S! |9 `
' o& n' c) _& s*这些规则立即生效
- r9 ?, p) C0 W; v1 U步骤4: 使用neo-prompt连接% I2 P  p5 Z  @0 o
打开本地终端,输入:
1 A5 R" Q3 S7 E. L8 n6 Z$ Uubuntu
  J+ m) J4 {* \. {8 }/ l. ^& ~sudo -i/ t8 l2 ?1 Y; U9 D: ]: f8 G4 b0 R
cd' j- d$ A2 ~6 z' @9 o, Y7 I- C  e
source venv/bin/activate, P8 W4 J% A/ ]
还记得之前文章提过的公网IP吗,将它填写到这里:. _3 b% ^5 b9 I: S* t! o
np-prompt -p
2 [! N6 u9 z  s8 `$ G4 n! l! ]很好,这些都做好了。/ P* ~* b; ~* z% w9 J* h, ]! i
额外命令:重启NEO区块链网络' G' X0 G0 p* `: @9 [
根据以往的经验,由于服务器内存的限制,镜像程序需要每周重启运行。 可以通过执行以下命令:
) F4 J6 C' \* W8 Q5 c' zdocker stop neo-privatenet
1 U5 X  A( ]$ T# P4 Y1 T( x0 P# ~然后通过NEO的CLI np-prompt(Ubuntu),输入以下命令:
; [; X( n& r! k* k. F) G% ~* Orm -rf /root/.neopython/Chains/
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博客园 初中生
  • 粉丝

    2

  • 关注

    4

  • 主题

    10