使用 Google BBR 加速VPS网络

在使用Google BBR之前,我们首先要了解它是什么。在TCP连接中,由于需要维持连接的可靠性,引入了拥塞控制和流量管理的方法。Google BBR就是谷歌公司提出的一个开源TCP拥塞控制的算法。在最新的linux 4.9及以上的内核版本中已被采用。Shadowsocks不经过其它的任何的优化就能轻松的跑满带宽。由于Google BBR是最近几年才开始流行起来的,任何低于4.9的linux内核版本都需要升级到4.9及以上才能使用! modprobe tcp_bbr echo “tcp_bbr” >> Continue Reading …

伪随机数的产生和流密码

能够应用到大量密码函数的一种功能是随机或伪随机数的产生。对这个功能的要求是产生的数据流必须不能预测。 流密码是对称密码算法,从明文输入流逐位或逐字节产生密文输出。使用最为广泛的此类密码是RC4。 一个重要的密码函数是具有强密码学意义的伪随机数发生器。伪随机数发生器(PRNG)在许多密码和安全应用中有使用。 伪随机数发生器(PRNG) 真随机数发生器(TRNG) 在网络安全的各种应用里,随机数在加密算法中扮演重要的角色。 伪随机数的产生的原则 大量的基于密码学的网络安全算法和协议都使用了二进制随机数。 随机性 一般认为随机序列应有良好的统计特性。分布均匀性:序列中的位分布应是均匀的,即0和1出现的频率大约相等。 Continue Reading …

27岁

与堂哥们聚餐完回来,休息了小会儿有点累了就躺在了床上。被楼下跳广场舞大妈们的声音吵醒,一看时间快晚上九点了!周末的时间总感觉比工作日过得快些,早上起床给老爸上了一炷香,紧接着出门去吃饭去了!醒来天色已经消失得无影无踪! 过完今天就27周岁了,快到了人们常说的30而立的年纪了!工作之后每年生日的时候都会写一篇博客来反思与记录这一年发生的事情。去年没写,因为心情太过复杂!实在无法静下心去思考,去码字!只想安安静静的呆在老爸旁边不说话,哪怕他睡着了! 再过几天,也是老爸离开我一周年的日子! 过去的一年,没有人会在周末给我打电话,问我这周有没有去踢球、累不累、村里面发生的事情了,没有人会在你取得一点点小成就开心得不得了为我鼓掌了,未来都不会有了! 过去的一年,失去了2位亲人,一位父亲、一位伯父,好像似懂非懂的明白了些生命的意义,也许我永远也懂不了! 过去的一年,也行是我20多年成长最多的一年!人生只有经历了一些痛苦的事情才会成长,只有失去了一些东西才会获得一些东西。那些真正带来个人成长的,必定痛苦至极! 过去的一年,我离开了哔哩哔哩,加入一家区块链创业公司,从二次元到区块链希望过几年回来看我这个决定是无比的正确。 过去的一年,我还坚持着只要不加班就还会去踢球。这也是我这么多年还一直坚持的好习惯了,除了睡懒觉。 过去的一年,依旧单身,未来一年肯定还是会继续单身,我倒不觉得这有什么不好,有更多的时间做自己喜欢的事情,只是经常会被亲戚朋友提起。 过去的一年,对工作更加认真了,更加努力。因为工作有时候真的会给人带来快乐,只要不是一直需要加班。 Continue Reading …

如何搭建一个集中式的日志管理系统

日志是任何系统的重要组成部分,当发生错误时,它们会提供系统正在执行的操作以及导致错误的原因。 几乎每个系统都会以某种形式生成日志,这些日志将写入本地磁盘上的文件。当我们查看日志文件的时候我们就能够很快的定位问题,并且修复Bug。 然而随着互联网的发展,我们的系统越来越复杂,分布式系统、微服务架构,我们的应用跑在成百上千台服务器上。这时候一个集中式的日志管理系统是很有必要的。 集中式日志应系统大体分为四个部分 – 收集日志,传输,存储和分析(可视化)。 我们将深入研究这些部分,并了解我们如何构建应用程序。 日志收集 所有应可能以不同的方式创建日志,有些应用程序直接在文件中记录系统日志和其他日志。 在Linux服务器上运行的典型Web应用程序时,在/ Continue Reading …

MySQL存储引擎中MyISAM与InnoDB

存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。 MyISAM与InnoDB的区别是什么? 1、 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。 Continue Reading …

阅读hyperledger fabric源码学习Go并发编程

Hyperledger (或 Hyperledger项目)是一个 开放源 的”区块链” 和相关工具的总括项目,[1] 由 Linux基金会在2015年12月发起该项目,[2] 以支持基于区块链技术的去中心化账本的写作开发。 源码地址:https://github.com/hyperledger/fabric Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言;也正是Go语言的并发特性,吸引了全球无数的开发者。那么我们看看hyperledger fabric是怎么实现Go并发编程的呢? 并发(concurrency)和并行(parallellism) 并发(concurrency):两个或两个以上的任务在一段时间内被执行。我们不必care这些任务在某一个时间点是否是同时执行,可能同时执行,也可能不是,我们只关心在一段时间内,哪怕是很短的时间(一秒或者两秒)是否执行解决了两个或两个以上任务。 并行(parallellism):两个或两个以上的任务在同一时刻被同时执行。 并发说的是逻辑上的概念,而并行,强调的是物理运行状态。并发“包含”并行。 Go的CSP并发模型 Go实现了两种并发形式。第一种是大家普遍认知的:多线程共享内存。其实就是Java或者C++等语言中的多线程开发。另外一种是Go语言特有的,也是Go语言推荐的:CSP(communicating Continue Reading …