Loading
0

SEER公共API服务器配置指南

在不依赖远程API启动命令行钱包和网页钱包的方法中,我们介绍了让普通个人用户摆脱对远程API的依赖,自建全节点和区块链交互的方法。而在实际运营中,大部分用户还是使用DAPP或社区提供的API来对区块链进行操作,此教程就旨在帮助开发者搭建一个独立的公共API服务器,从而避免因高并发或单点API服务不可用的情况下影响DAPP和轻钱包用户的区块链使用体验。

准备

1.为了访问安全,SEER网页钱包和大部分服务都采取了HTTPS协议,因此也要求API使用WSS协议,同时WSS不支持IP访问,所以需要开发者提供域名,并申请SSL证书;

2.此教程演示的是建立一个单点的SEER API节点,对于DAPP级API设立者来说,需要考虑DAPP的阶段并发用户数,提供更高带宽和设备条件,并配置多节点负载均衡,同时进行防火墙等安全配置;

3.搭建一个公共SEER API节点,你需要租用一台linux服务器、设置一个指向该服务器的域名或二级域名、架设见证人全节点、配置nginx、申请SSL证书等几个必要步骤;

4.当理事会通过一次见证人节点版本更新的提案后,API全节点也应该进行同步更新。

架设见证人全节点

租用服务器和域名解析的步骤在这里就省略了,和其它网站的配置是一样的。本例中,笔者使用api.seerchain.org二级域名指向Ubuntu 18.04 x64的测试服务器。

登陆服务器后,分别输入以下指令:

1. 新建一个名叫seer的窗口;

2.在root目录下新建一个名叫seer的目录,复制v0.0.5版本的程序包到此目录,并更名为seer.tar.gz。(此处注意,若有了更新的程序包版本,则到SEER软件发布页https://github.com/seer-project/seer-core-package/releases 复制最新的ubuntu版本程序包链接替换掉此下载链接。)

3.切换到seer目录,解压此软件包。

4.带参数启动witness_node,其中./data是指定区块链数据的存放目录,127.0.0.1:9090是设置是节点对外的Websocket RPC服务地址和端口。

5. 观察节点运行正常,显示3秒一个出块后,ctrl+A d隐藏screen,之后要再打开运行有节点的Sreeen,则使用 screen -R ,或 screen -r seer。

6. 在服务器上安装使用wscat测试ws。

6.1  安装:

6.2  测试:

正常的话,会返回SEER的区块#1的信息,现在和此节点同一台设备上的命令行钱包和轻钱包都能用ws://127.0.0.1:9090这个API和区块链交互了,下面我们将配置nginx,让此API能通过公网访问。

配置服务器nginx

nginx在服务器上负责反向代理、SSL等服务,如果要配置多节点负载均衡也是对nginx进行配置。

安装nginx

出现Do you want to continue? [Y/n]的时候Y就可以了。

配置nginx

1. 在/etc/nginx/sites-available/目录新建一个名为apifile的nginx配置文件

2. 打开文件后,以下面内容为例,写入配置文件:

3. 修改完成后,使用nano的写入和退出快捷键,即control+O-ENTER,control+X。

4. 将apifile软链接到配置目录

5. 测试nginx配置是否有错,如果有错根据提示修改

6.重新载入nginx

7.此时,若配置正确,你可以使用wscat -c ws://api.seerchain.org在任意联网设备测试成功。同时,ws://api.seerchain.org已经可用于桌面版钱包、任何未使用HTTPS的网页钱包和DAPP以及命令行钱包连接区块链网络。(api.seerchain.org改为您的域名)

8.若要在SEER主网网页钱包或任何采用了HTTPS协议的应用中使用此API,需要申请SSL证书,并对nginx进行更多配置。

申请SSL证书

SSL证书网上有很多,收费的和免费的都有,这里笔者推荐最简单的certbot一键注册免费证书并自动续期的服务。

安装certbot并申请ssl证书

1. 首先,添加存储库:

2. 安装Certbot的Nginx软件包:

3. 使用Certbot自动完成SSL证书申请和配置,Certbot会自动修改你的nginx配置文件,替换seerchain.org和api.seerchain.org为你的域名和二级域名。

按照英文的提示配置吧,有几个地方要填和选择,比如邮箱等,其它有(A)gree的选择输入A,有(Y)es的选择输入Y即可,需要注意的是:

在这一步时,您可能会需要选择1,如果选择2的话,Certbot会自动修改你的nginx配置文件,所有的非SSL请求都会被自动转发到SSL,如果您希望同一个域名既能用于WS,例如命令行钱包,也能用于HTTPS的网页钱包等,则选1,否则选择2。

4。完成后,打开您之前创建的nginx配置文件:

可以查看到certbot对配置文件的修改,最终配置好的文件如下:

设置certbot自动续约

证书使用周期有限,需要设置certbot自动续约证书:

结语

至此,一个独立API节点就配置完成了。在https://wallet.seer.best/settings/access:设置-接入点页面点击添加 API 服务器节点,在ADDRESS一栏填入您的API地址并确认,即可在网页钱包中使用您的API来访问区块链网络。这里因为是做测试,并且笔者和测试服务器所在地不在同一个国家的原因,所以延迟较高。在实际使用中,开发者需要根据用户分布,就近设置高效率的API节点,以提高用户体验。

原文地址:https://forum.seerchain.org/t/topic/316

原创作者:攒钱移民火星

声明:本站信息大都来源于互联网,如无意中侵犯了您的权益,请联系站长删除,谢谢。

最后编辑于:2018/9/26作者: seer123