Primecoin服务端更新流程: 

一、下载更新文件primecoin_x.y.z_xx.zip到/servers目录下:
这里是把:版本primecoin0161alpha1更新到:版本primecoin0161alpha2


二、备份之前版本:


在/servers目录下执行:
cp -r primecoin0161alpha1 primecoin0161alpha1.bar
# cp -r:迭代复制,若目录下还有目录和文件需要用这个参数。


三、停止服务:请用专用命令停止,不要直接pkill:


在/servers/primecoin0161alpha1目录下执行:
./primecoin-cli -rpcuser=user -rpcpassword=password stop


四、更新文件操作:

方法一:替换整个旧版本。不推荐。
1、和相关人员确认需要更新的文件。
2、把更新的文件解压到/servers/primecoin0161alpha2目录下:

在/servers目录下执行:(通过这个命令会自动生成primecoin0161alpha2目录)。
unzip -qd ./primecoin0161alpha2 primecoin_0.16.1_alpha2.zip
#unzip -qd 指定路径 文件名。-d:指定路径;-q:不显示过程。

3、删除之前primecoin0161alpha1文件,保留其备份文件primecoin0161alpha1.bar。
4、到/servers/primecoin0161alpha2目录下执行启动服务的命令(见步骤“五、重新启动服务”)。


方法二:通过拷贝替换旧版本没有的和旧的文件—推荐:
注意:一般来说,其实不需要更换整个文件,可能会导致丢失重要文件。
(1)要更新时,先对比一下新旧文件,需要和开发人员确定好需要更新的文件。
(2)大部分情况:对于服务器来说,需要的只是更新“primecoin-cli primecoind**”这2个文件。
(3)一定要给旧版本做备份(见步骤2)

1、到/servers/primecoin0161alpha2目录下:
2、把旧版本没有的文件,和**primecoin-cli primecoind**这2个主要的文件替换过去。
cp lib primecoin-cli primecoind readme.txt runDeamon.sh runQt.sh /servers/primecoin0161alpha1
3、然后可以回到/servers目录下删除primecoin0161alpha2:
cd ..
rm -rf primecoin0161alpha2
4、再把primecoin0161alpha1改名为primecoin0161alpha2,为了识别版本:
mv primecoin0161alpha1 primecoin0161alpha2


五、重新启动服务:

在/servers/primecoin0161alpha2目录下执行:
./primecoind -daemon -rpcuser=user -rpcpassword=password -txindex=1 -addrindex=1 -datadir="/servers/primecoin_data" -rpcallowip="::/0"

PS:可以创建一个启动脚本start.sh,把这个启动命令写在里面。注意给脚本赋予执行权限。

在/servers/primecoin0161alpha2目录下
vim start.sh #写入以下内容:
./primecoind -daemon -rpcuser=user -rpcpassword=password -txindex=1 -addrindex=1 -datadir="/servers/primecoin_data" -rpcallowip="::/0"
chmod +x start.sh #赋予start.sh执行权限


六、 更新后仍需检测:
1、查看区块链高度:
①先看官方最新的块高度
https://bchain.info/XPM/

②再看服务器上的区块高度,若高度如果和最新高度一致,就说明节点数据是新的,一切在运行中。


2、注意日志里面的异常信息,类似恶意网络请求的
查看日志文件/servers/primecoin_data/debug.log:

在/servers/primecoin_data目录下运行:
tail -n50 debug.log

若有如下报错:

2018-08-29 01:42:11 socket recv error Connection reset by peer (104)
2018-08-29 01:42:12 socket recv error Connection reset by peer (104)
2018-08-29 01:42:12 socket recv error Connection reset by peer (104)
2018-08-29 01:42:13 socket recv error Connection reset by peer (104)
2018-08-29 01:42:13 socket recv error Connection reset by peer (104)
...

这是有些恶意IP无法正常连接,影响服务正常启动,把之前禁用的一些IP禁掉。

./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.42.0" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.110.3" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.42.0" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.111.1" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.110.130" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.183.2" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.105.131" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.183.3" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.111.3" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.42.1" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.110.2" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.183.128" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.105.130" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.42.128" "add" 8640000
./primecoin-cli -rpcuser=user -rpcpassword=password setban "100.116.110.128" "add" 8640000

参考《primecoin 全节点日常维护操作》:


七、这一系列流程不要临时手动操作,最好先写好脚本,让服务器后台自动运行。
否则若操作中途遇到各种故障,比如公司网络突然断线,就会导致整个服务瘫痪,带来不可估量损失。


八、服务器更新原则参考:

1. 一切操作的前提是服务的高可用性,高效性。
2. 更新操作之前要有应对突发事件的准备(例如:更新失败,网络错误,硬件故障等等意想不到的能导致服务失败的可能性)
3. 确保相关人员在更新操作后2个小时内能够及时响应。(建议周一——-周四,上午 10.00,下午 15.00,其他时间不推荐更新操作)
4. 确保服务程序可以回退到更新前的版本,保证高可用性
5. 多台服务,先更新一台,然后验证功能是否正常,确认无误后可以更新其他服务(要准备相关验证脚本或工具)
6. 更新操作过程尽可能原子化 (推荐使用更新脚本或其他工具,后台执行,避免操作端出现意外故障导致更新操作处于中间状态)
7. 要熟悉每个服务的相关指令和参数,加强岗位技能
8. 只做必要操作(和本次更新无关的操作禁止执行)
9. 针对每项服务要有更新流程清单。(记录每一步需要的操作和注意事项)

Primecoin服务端更新--操作流程的更多相关文章

  1. 恩布企业 IM 安卓端 1.3,服务端 1.12 公布

    恩布企业IM的 Android 安卓开源手机client EntboostIM 公布 1.3 版本号.同一时候恩布IM服务端更新至 1.12 版本号; 安卓端主要更新内容: 添加收发手机文件功能: 登 ...

  2. Nancy+BUI+SQLite自动更新服务端和客户端保护更新程序

    写了一个自动更新服务网站和自动更新客户端.基本功能测试完毕.记录下 项目地址:https://github.com/TeemoHQ/AutoUpdate 需求 自动集成,回退版本,守护进程,服务端操作 ...

  3. C#热血传奇游戏服务端再次开源更新

    2014年新春佳节即将到来,也算是送给大家的一份新年礼物.虽然这礼物貌似不给力啊哈哈.(没有用心啊 o(∩_∩)o 哈哈) 这次开源主要去掉上一次开源版本中大量指针代码,简化上手操作,并重构大部分代码 ...

  4. C#<热血传奇>服务端源代码再次给力更新

    前段时间一直在忙公司项目,最近抽点空稍微把部分代码重新整理一下(代码太久没碰很多地方都忘记了 囧~~~) 此次还是更新服务端,并修正上一版里面存在的很多指针 异常BUG...  (代码比较烂,还请各位 ...

  5. 背水一战 Windows 10 (112) - 通知(Badge): application 的 badge 通知, secondary 的 badge 通知, 轮询服务端以更新 badge 通知

    [源码下载] 背水一战 Windows 10 (112) - 通知(Badge): application 的 badge 通知, secondary 的 badge 通知, 轮询服务端以更新 bad ...

  6. 背水一战 Windows 10 (109) - 通知(Tile): 按计划显示 tile 通知, 轮询服务端以更新 tile 通知

    [源码下载] 背水一战 Windows 10 (109) - 通知(Tile): 按计划显示 tile 通知, 轮询服务端以更新 tile 通知 作者:webabcd 介绍背水一战 Windows 1 ...

  7. 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)

    注:本文仅用于在博客园学习分享,还在随着项目不断更新和完善中,多有不足,暂谢绝各平台或个人的转载和推广,感谢支持. 一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是 ...

  8. 携程apollo配置中心服务端如何感知配置更新?

    引言 前面有写过一篇<分布式配置中心apollo是如何实时感知配置被修改>,也就是客户端client是如何知道配置被修改了,有不少读者私信我你既然说了client端是如何感知的,那服务端又 ...

  9. 携程开源分布式配置系统Apollo服务端是如何实时更新配置的?

    引言 前面有写过一篇<分布式配置中心apollo是如何实时感知配置被修改>,也就是客户端client是如何知道配置被修改了,有不少读者私信我你既然说了client端是如何感知的,那服务端又 ...

随机推荐

  1. P&R 4

    Floorplan 要做好fp需要掌握哪些知识和技能? 通常遇到fp问题大致的debug步骤和方法有哪些? 如何衡量fp的QA? 通常FP是做PR 最关键也最具技术含量的一个环节.相对于后续的PR步骤 ...

  2. Codeforces Gym 102392F Game on a Tree (SEERC2019 F题) 题解

    题目链接:https://codeforces.com/gym/102392/problem/F 题意:被这题题意坑了很久,大意是说有一棵根为 \(1\) 的树,每个节点初始都是白色, \(Alice ...

  3. CSS3的一个伪类选择器:nth-child()

    CSS3的一个伪类选择器“:nth-child()”. Table表格奇偶数行定义样式: 语法: :nth-child(an+b) 为什么选择她,因为我认为,这个选择器是最多学问的一个了.很可惜,据我 ...

  4. js 设计模式:观察者和发布订阅模式

    总是把这两个当作同一个模式,但其实是不太一样的,现在重温一下. 观察者模式 观察者直接订阅目标,当目标触发事件时,通知观察者进行更新 简单实现 class Observer { constructor ...

  5. wordpress 添加友情链接

    最近入了wordpress的坑,虽然还没深入,但是好歹弄了点东西了:) 一般网站都有友情链接这个东东吧,看网上说这个有个插件的,叫“Link Manager”,添加完了以后就能添加了,可是我今天去搜的 ...

  6. CapsNet资源

    算法源码: https://github.com/xanderchf/pyCapsNet https://github.com/naturomics/CapsNet-Tensorflow 参考文章: ...

  7. yii2.0 构造函数

    public function init() { parent:: init(); }

  8. 【译】高级T-SQL进阶系列 (四)【上篇】:使用游标进行行级别处理

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 正常来说,使用游标并不是处理记录集的最佳方式.然而当一个经验丰富的程序员第一次开始写TSQL时,他们经常会寻找其 ...

  9. 攻防世界 web 进阶区 刷题记录

    1.Training-WWW-Robots 题目提示了robots协议,直接访问robots.txt 继续访问fl0g.php 2.baby_web 题目描述:想想初始页面是哪个 百度搜了下,inde ...

  10. WinForm开发(1)——DataGridView控件(1)——C# DataGridView控件用法介绍

    DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动态为DataGridView控件添加新行, ...