1. 挖矿
1.1 什么是挖矿
挖矿的本质就是构造符合规则(PoW共识机制)的区块并进行全网验证的过程。作为激励,矿工成功挖掘到区块后,可以从中获取区块奖励和交易费奖励。
下面以BTC为例,阐述挖矿的运作流程。
在一个优秀的系统中,日志是不可或缺的组成部分。尤其是在服务端编程中,日志更是必不可少的,如果没有日志,我们将不得不依赖客户或支持团队,让他们描述在什么情况下发生了什么。随后在开发环境中重现问题,并进行各种调试,直至完全修复错误为止,然而这一般耗费很长时间。如果有了日志的帮助,可以从日志中快速的定位异常,并解决问题。
使用日志的好处并不止以上一点,还包括:
前面介绍了 《IO多路复用 - select》、《IO多路复用 - poll》和《IO多路复用 - epoll》,那么这三者之间有什么优缺点呢?下面我们来看看
前面讲了 select 和 poll 的原理,接下来我们学习它们改进后的增强版本:epoll。
上一篇《IO多路复用 - select》介绍了 select。接下来我们来解析一下 poll。
在服务器的编程中经常会需要构造高性能的 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
中,主要包括如何建立和客户端的连接,并且接收其命令,返回给客户端。