0%

1. 挖矿

1.1 什么是挖矿

挖矿的本质就是构造符合规则(PoW共识机制)的区块并进行全网验证的过程。作为激励,矿工成功挖掘到区块后,可以从中获取区块奖励和交易费奖励。

下面以BTC为例,阐述挖矿的运作流程。

阅读全文 »

二叉树的前中后序递归法和迭代法

二叉树根据遍历方式,分为深度优先搜索(DFS)广度优先搜索(BFS)

二叉树的深度优先搜索:

  • 前序遍历
  • 中序遍历
  • 后序遍历

二叉树的广度优先搜索:

  • 层序遍历
阅读全文 »

在一个优秀的系统中,日志是不可或缺的组成部分。尤其是在服务端编程中,日志更是必不可少的,如果没有日志,我们将不得不依赖客户或支持团队,让他们描述在什么情况下发生了什么。随后在开发环境中重现问题,并进行各种调试,直至完全修复错误为止,然而这一般耗费很长时间。如果有了日志的帮助,可以从日志中快速的定位异常,并解决问题。
使用日志的好处并不止以上一点,还包括:

阅读全文 »

在服务器的编程中经常会需要构造高性能的 I/O 模型,最常用的就是多路复用 I/O 模型。
多路复用的本质是同步非阻塞 I/O,多路复用的优势并不是单个连接处理的更快,而是在于能处理更多的链接。

阅读全文 »

因为最终想要安装YCM插件,而最新的YCM插件只支持 python3.6 和 vim8.1 以上的版本,所以需要更新系统自带的 python 和 vim(如果以安装最新的环境,则可忽略)。

阅读全文 »

源码位置:anet.c/anet.h/networking.c

1. 简介
Redis在anet.c中对TCP/IP网络中socket api接口和状态设置进行了封装。状态设置主要包括socket连接的阻塞性、tcp的保活定时器的设置、设置发送缓冲区、tcp的nagle算法设置、设置发送/接收超时时间、地址重用的设置和IPv6/IPv4的设置等。
Redis网络通讯的具体实现在networking.c中,主要包括如何建立和客户端的连接,并且接收其命令,返回给客户端。

阅读全文 »