Engineering Notes

孟斌的小站

技术博客与学习记录

共 608 篇文章 标签与分类索引已启用

Proto3 Arenas分配

Arena分配是仅C++有的功能,在使用Protocol Buffer时,它可以帮助你优化你的内存使用,提高性能。在.proto文件中启用Arena分配会在生成的C++代码中添加处理Arena分配的额外代码。关于Arena分配API的细节,详见Arena Allocation Guide

继续阅读

Bitcoin 网络

比特币工作在应用层,它的底层是一个P2P网络。比特币的P2P网络是非常简单的,所有节点都是对等的,不会出现某些P2P网络中所谓的超级节点或者中心节点。

继续阅读

Bitcoin中的数据结构

哈希指针(Hash Pointers)

对于一个结构体而言,指向它的指针存储的是它在内存中的首地址;而指向它的哈希指针,不仅保存这它的首地址,还保存着该结构体内容的哈希值。通过哈希指针,不仅可以找到该结构体,还能查验该结构内容是否被篡改过。

继续阅读

Prometheus Alertmanager

简介

告警能力在Prometheus中是独立出来的部分。如下图所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息。

继续阅读

Bitcoin引发的思考

Hash指针

指针保存的是本地内存地址,只在本地计算机上才有意义,发送到其它计算机上就没有意义了。所谓的Hash指针只是一种形象的说法,实际系统中用到的时候只有Hash,没有指针。

继续阅读