更新BitShares 节点版本至2.0.180328

昨天 @abit 在steemit发表了 BitShares Core Release 2.0.180328 新版本发布,并提及此版本修正了若干重大安全问题,请所有节点尽早升级

上文中提到两点注意事项,一是2.0.171212版本以后有了对libcurl-dev的依赖,这个因为我系统上以前就编译过2.0.171212以后的版本,所以相关库我早就装完了,如果没有,则需运行以下指令:

sudo apt-get install libcurl4-openssl-dev

另外一点是子模块远程URLs(submodule remote URLs)变动,如果更新原有的本地库,那么需要执行对应指令,对我而言,我把本地库丢一边,重新checkout一下好了。😀

重新编译

1
2
3
4
5
6
7
8
git clone https://github.com/bitshares/bitshares-core.git
cd bitshares-core
git checkout <LATEST_RELEASE_TAG>
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make witness_node cli_wallet

新版本的版本号为2.0.180328,所以处要做对应修改。

编译完成

大约1-2个小时后,编译完成(我的VPS配置一般啦)

我们会得到以下两个程序:

  • build/programs/witness_node/witness_node
  • build/programs/cli_wallet/cli_wallet

这时候有三个选择,

  • 一个是用生成的文件覆盖原来的程序目录,然后运行witness_node,但这样会导致原来的节点在replay完成之前无法正常使用。
  • 另外一种方法复制原本的程序目录,然后用新程序覆盖,在不同的端口上启动witness_node。
  • 再有就是全新运行,这样需要较长的时间来从网络同步区块。

我选择第三种方法,之所以选择第三种方法,纯属闲的:)
(比较一下生成区块链数据目录文件的大小

配置

除了关掉p2p日志,我好像也没做啥配置。

先运行一下程序,生成数据目录以及配置文件等
./witness_node

然后在witness_node_data_dir的config.ini中注释掉这行:

filename=logs/p2p/p2p.log

然后启动witness_node开始同步区块

./witness_node --rpc-endpoint "127.0.0.1:9090" --plugins "witness" --replay-blockchain

因为8090端口已经被老的witness_node占用了,我先用9090,等同步好了,再改过来。

对了,执行指令之前先创建个screen虚拟终端

screen -S bts180328


嗯,就这样,慢慢同步吧。

相关链接


This page is synchronized from the post: 更新BitShares 节点版本至2.0.180328

对懒人而言,screen 很简单(三板斧)

我们在终端运行程序时,退出终端或者终端异常断掉,这时候由于SIGHUP信号会导致我们的程序退出。


(图源 :https://en.wikipedia.org/wiki/GNU_Screen)

为了让终端退出(或断掉)后,程序能正常运行,一般情况我都使用nohup来运行程序,但是nohup有个问题,它将输出内容输出到nohup文件中,而这个文件还不是实时更新的,这样当一些问题发生时,我想看到实时的输出信息,那是看不到的。

当然,这个问题可以通过在程序中启用日志等方式解决,但是终归是多了一些麻烦,懒人表示拒绝费劲的方案。

那这时候,就该screen闪亮登场了!没错,screen就是懒人用于解决上述问题的极佳方案。

简介 & 安装

以下是我对screen 的理解。

screen 可以为在你的终端(A)上你虚拟出一个终端(V),你在这个终端(V)上进行操作、运行程序,终端(A)退出或断掉后,终端(V)不受影响,程序会继续运行。你可以通过重新登陆终端(A)来回到终端(V)上。

好吧,有点拗口,也未必准确,不过大致就是这样啦。

安装screen 很简单,我的系统(Ubuntu)下,执行下列指令即可:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install screen

简单用法

可以通过如下命令查询帮助信息
screen --help

或者查看手册
man screen

但是其实没必要记那么多啦,我认为几个足矣

创建虚拟终端

直接键入
screen

或者使用
screen -S xxx
为虚拟终端起个名字

这个终端看起来和原来shell一般无二哦,这时候我们就可以在里边执行程序喽。

列出虚拟终端

假设我们的终端链接突然关闭或者断掉,我们重新爬上来,那么怎么找回我们原来的窗口呢?

答案是使用如下指令:
screen -ls


这就是我刚刚创建的虚拟终端

恢复连接

好了,我们找到了我们之前创建的终端,那么如何连上去呢?

答案也是超级简单
对于上述虚拟终端而言,执行如下指令即可:
screen -r 1862.oflyhigh

一下子就连回来喽,还停止在之前的界面。

其它

有了上述三把板斧,对于我来讲已经足够用了。当然,有时候可能需要多个虚拟终端,但是用法和之前的介绍一般无二。

唯一遇到过一点问题的是,虚拟终端在那,死活连不上,仔细查了一下,虚拟终端显示Attached,但实际上我那个窗口已经崩溃掉了,screen没及时更新状态,导致我连不上。

这时候我们只需执行类似如下指令即可:
screen -D -r 1862.oflyhigh

指令解释如下:

-D (-r) Detach and logout remote (and reattach here).

想了解更多或者用出更多花样的,看手册吧。

懒人的宗旨,够用即可!


This page is synchronized from the post: 对懒人而言,screen 很简单(三板斧)

偏头痛?牛磺酸中毒?

记不得我在STEEMIT发过多少和偏头痛有关的帖子了,总之时不时的疼几天已经快成为家常便饭了,就是疼起来真的很痛苦,恨不得自己把头剁掉。


(图源 :pixabay)

只不过,头是要留着用来吃饭的,所以一直没舍得剁,疼就忍着,忍不住就哀嚎,哀嚎也没有作用的时候只好上止疼药了。

神马各种头疼药没少吃,正天丸之类的曾经一把一把的当饭吃,然而嘛用都没有。

偶然一次尝试让我我发现美林效果显著,而美林的主要成分是布洛芬,也就是说凡是布洛芬相关药剂都好用,这不,我从药箱里翻出一些安瑞克,口服一袋,效果钢钢的。


(图源 :pixabay)

既然不疼了,我就开始思索一下,这次头疼是怎么引起的呢?偏头疼发作一般都是有原因的,比如洗头之后没吹干,又比如长时间吹空调,又比如长时间精神高度紧张,等等等等

但是这次,不是上述这些原因引发的。有句话叫做久病成医,我这总偏头疼的人也渐渐摸索出来一些规律,以前有几次喝了红牛后偏头痛发作,而这次发作又恰恰在我连续喝了两罐红牛之后,让我不禁怀疑两者是否有关。

大致的发病过程是这样,喝完红牛之后眼睛胀痛,然后偏头痛,而类似情况已经发生过好多次了,要说和红牛一点关系都没有,我还真不信。

红牛主要成分中有:牛磺酸、赖氨酸、咖啡因、肌醇、维生素B6、维生素B12、烟酰胺等,咖啡我没少喝,从未引起头疼,所以应该可以排除咖啡因,至于B6和B12更应该和头疼无关,我严重怀疑和牛磺酸有关。


(图源 :pixabay)

不过,不管是和哪项成分有关,远离红牛肯定是没错的啦,看来以后不能再馋了,要控制自己😰


This page is synchronized from the post: 偏头痛?牛磺酸中毒?

另一种遍历用户文章的方法 / get_discussions_by_author_before_date

在之前的文章《BUG? 个人主页无法读取到500篇以上内容》中,我们介绍了get_blog 方法,用于获取用户所有的文章。


(图源 :pixabay)

但是这个方法有一个弊端,受限于API节点max_feed_size的限制,无法读取某个用户近max_feed_size (默认500篇)以前的内容。

数据库方法 & 其它

在那篇文章中,我给出的建议是使用SteemSQL或者SteemData等数据库来获取用户所有文章,但是SteemSQL现在改成收费的了,SteemData的MongoDB 没接触过的朋友用起来可能不太方便,总之,使用数据库加大了操作难度。

那么,有没有其它API能用于获取指定用户的所有文章呢?其实STEEM API中好多是可以传入用户信息,然后用用户信息来进行过滤的,比如一堆get_discussions_by_XXX系列API,都是可以传入discussion_query结构来进行筛选的(最终调用get_discussions)

然而悲催的是,我从来没有试成功过。

get_discussions_by_author_before_date

数据库方法比较繁复,传入discussion_query的方法我一直没有尝试成功,难道就没辙了吗?

山重水复疑无路,柳暗花明又一村,所幸的是,我发现了get_discussions_by_author_before_date这个方法。

它接受的参数如下:

简单的来讲,这个函数获取指定作者(author)、指定链接(start_permlink)、指定时间点(before_date)以前的文章。

但是,这个方法有一些怪癖,导致我一度认为它行为不正常。

怪癖一

指定链接为空,指定时间点无效,返回用户最新文章列表(limit)

怪癖二

指定链接创建时间晚于指定时间点,那么两者都无效,返回用户最新文章列表(limit)

所以,正确的使用方式是,指定链接的创建时间早于指定时间点,返回早于指定时间点指定链接的文章列表(limit)。

有点拗口是吧,我们来实际演练一下。

我一年多前折腾过一个自动浇花装置
《基于Intel Edison自动浇花系统的最终报告/The automatic watering device with Intel Edison》

curl --data '{"jsonrpc": "2.0", "method": "call", "params": ["database_api", "get_discussions_by_author_before_date", ["oflyhigh", "intel-edison-the-automatic-watering-device-with-it-intel-edison", "2018-03-28T12:44:18", 2]], "id": 1}' https://api.steemit.com

那么上述指令就会返回我的自动浇花以及自动浇花之前的那篇文章
(咦,这么说来好像时间点并没有起到什么作用,我们指定当前时间戳对应的时间点即可,莫非可能影响查询效率?)

接下来如何做?

知道了get_discussions_by_author_before_date怎么用,那么遍历文章还有什么难度吗?这篇文章就不再赘述啦。

参考链接


This page is synchronized from the post: 另一种遍历用户文章的方法 / get_discussions_by_author_before_date

贷款\分期 你用了吗?

XX银行打来电话,我接了起来。


(图源 :pixabay)

对话大致是这样的,

“XXX先生您好,您是我行优质客户,鉴于您一直以来的良好信用情况,我们为了准备了XXX贷款服务”
我打断客服小妹继续介绍,回到:“抱歉,我的钱足够用啦,不需要贷款!”
客服小妹无语,然后顿了几秒后继续说到:“先生我们知道您资产状况良好,但是您可以先了解一下嘛!”
我打断她继续介绍,问道:“贷款免息不?免手续费不?”
客服小妹又顿了几秒,告诉我:“这个不免息的,但是有很多优惠,我给您介绍一下。”
我再次打断客服小妹:“抱歉,我的钱足够用啦,不需要贷款!”
客服小妹这次顿了好久:“那这样好嘛,我发个短信,回头您空闲下来了解一下!”
我:“好的”

类似这样的电话,基本上每三五天就收到一次,推销贷款的、推销信用卡分期的以及一些其它银行推销办理信用卡的。至于类似的短信,就更多了,除了上述内容,还有推销各种理财的,也不知道是哪个环节把我的信息给出卖了。


(图源 :pixabay)

有一些听起来属实挺诱惑的,比如说分期吧,信用卡已出账单可以直接办理分期,并且免利息哦!是不是很吸引人,分期还免利息,那么我们晚些还钱把钱放理财里,岂不是白白赚钱了?不过且慢,银行一点不比你傻,虽然人家不收利息,但是人家收手续费啊,把手续费折算一下,比起利息只贵不贱!

相比分期啥的,贷款就要实惠多了,利息一般为10%以下的年化利率,加上一些优惠,一般为7%左右。是不是很便宜?比如拿来炒股,弄个10%的年化收益,就净赚3%哦。

但是且慢,你能保证炒股年化10%的收益吗?至少我是保证不了,今年的股票收益更是快接近负30%了。年化10%看起来很简单,实现起来难啊。

在看看银行用多少利息吸收你的存款或者理财呢?活期存款近乎白借给银行就不说了。三年期五年期定期存款以及货币型理财产品或者货币型基金,一般年化5%的收益就算高的啦。也就是一边银行以低于5%的利息从你这吸收资金,一边已高于7%的利息向你放贷!

当然了,如果资金周转不开,分期或者贷款还是会带来很大便利的,比如买车或者卖房或者做生意需要大笔流动性资金。


(图源 :pixabay)

其实我也需要钱,流动性紧张,但是我估计如果电话里我稍微透露点这样的信息,估计就再无宁日了吧。所以,还是装作财大气粗的样子比较好喽。


This page is synchronized from the post: 贷款\分期 你用了吗?

买了一箱茉莉花茶

想必关注我博客的朋友都知道,我是咖啡、可乐、红牛之类饮料的重度上瘾者。虽然我知道这些东西都对身体有害无益,时常饮用无异于饮鸩止渴,但是积习难改,况且有时候不靠这些提神饮料顶着,真的是一点精神都没有。

但是这段时间我发现饮茶也有一定的提神效果,虽然不如咖啡、可乐、红牛那么威猛,但是胜在平和,况且茶水中不含糖份,终归要健康一些。

但是茶水冲来泡去太麻烦,所以每次喝茶我都坚持不了多久,长得时候十天半拉月,短的时候三五天就嫌麻烦不喝了。所以朋友送的或者自己买的不少茶叶,都是新奇几天后放置到过期丢掉,久而久之也没人送我茶叶了。

超市倒是有些各种茶饮料,比如康师傅的冰红茶、绿茶、花茶、乌龙茶等等,但是无一不是为了口感加进了不少糖份,偶尔喝喝还好,喝几次就一点兴致多没有了。

直到有一天在超市看到农夫山泉出品的东方树叶这个茶饮料,当时买了一瓶,尝了尝,和自己冲泡的茶叶味道几乎一般无二,还省却了自己冲泡的麻烦,一下子就喜欢上了这个饮料。

最近每次去超市都要买一些,有了东方树叶这个新欢,我几乎彻底抛弃了可乐、咖啡、红牛等旧爱。

今天去京东搜索了一下,发现京东自营也有这款茶饮料,整箱24瓶120元,超市卖5元一瓶,价格倒是一样,但是京东搞秒杀啊。秒杀价格109,还可以叠加使用109-10的优惠券,优惠了好多有木有?

赶紧抢了一箱,感觉捡了个天大的便宜啊。有句话咋说来着,会省钱也是一种技能啊。一箱省21元,如果十箱呢?100箱呢?1000箱呢?我岂不是省了好多钱啊!等我省了足够的钱,就可以拿来买豪宅,买豪车了,多么激动人心啊。

好了,不扯了,顺便说一下,我不是京东也不是农夫山泉的托啊,21元是我凭自己本事省的,他们没给我一毛钱好处费!


This page is synchronized from the post: 买了一箱茉莉花茶

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×