以太坊开发:如何搭建远程私有节点服务器

本文将介绍如何在远程服务器搭建私有链,并且进行rpc连接。

搭建私有链

首先需要有一台远程服务器,Linux下安装geth,比较简单,只需要几个指令:

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum

安装完后创建创世块、启动私有链参考之前文章:https://www.jianshu.com/p/b6dcb5afe866

如何连接远程rpc服务

启动私有链后有个问题:rpc默认连接的地址是localhost,这样其他机器就无法访问到这台服务器的节点,那和本地电脑搭建的私链有啥区别。

  • 使用geth --help发现启动参数有个 rpcaddr可以设置rpc服务的地址
  • 把启动参数里添加 --rpcaddr "服务器ip" 进行启动
  • 启动后会报如下错误:
panic: runtime error: invalid memory address or nil pointer dereference

额,这是啥问题,百度一番没找到解决方法。后来看官方文档,找到一句话:

Do not forget --rpcaddr 0.0.0.0, if you want to access RPC from other containers and/or hosts. 
By default, geth binds to the local interface and RPC endpoints is not accessible from the outside.

  • 原来是需要通过设置0.0.0.0,才可以进行外部访问,0.0.0.0表示指向本机的所有IP地址。修改之后果然启动成功了

如何验证你启动的rpc服务是能够正常被外部访问的?

很简单,打开remix ide,点击Run,选择Environment的Web3 Provider,填写你的rpc服务地址(例:http://x.x.x.x:8545),连接成功后在Account中看到该链上的账户和余额,表示连接成功了。

你可能感兴趣的:(以太坊开发:如何搭建远程私有节点服务器)