chainbase是符合区块链应用需求的一个事务型数据库。steemd中的chainbaseFORK自GolosChain/chainbase。
steemd通过JSON-RPC 2.0对外提供API调用, 本篇主要分析steemd通过何种机制将各个类中的方法变成JSON-RPC的api的。
steemd整个软件结构使用其自动以的插件机制,不同的软件逻辑分布在不同的插件中,因此插件间形成了依赖。
steem-python是steem项目的 官方python库(client)。需要python3.5以上的运行环境。steem作为我的入门区块链的第一项目,我会逐步分析该项 目,并不断更新该文章。
HugePages与Transparent HugePages Linux下的大页分为两种类型1:标准大页(Huge Pages)和透明大页(Transparent Huge Pages)。 Huge Pages有时候也翻译成大页/标准大页/传统大页,它们都是Huge Pages的不同中文翻译名而已,顺带提一 下这个,免得有人被这些名词给混淆、误导了。Huge Pages是从Linux Kernel 2.6后被引入的。目的是使用更大 的内存页面(memory page size)以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。 透明大页(Transparent Huge Pages)缩写为THP,这个是RHEL 6(其它分支版本SUSE Linux Enterprise Server 11, and Oracle Linux 6 with earlier releases of Oracle Linux Unbreakable Enterprise Kernel 2 (UEK2)) 开始引入的一个功能。具体可以参考官方文档。 Linux传统Huge Pages与Transparent Huge Pages再次学习总结 ↩
通常我们系统中使用的内存都是易失内存,当断电后,内存中的数据都会丢失。因此我们的程序一般都需要 启动时将数据加载进内存,退出时将数据持久化到磁盘。如果我们有一种内存,省去了这些问题,是不是会 使我们的程序变得更加简单?
分布式原理介绍
分布式系统工程实践
在某些场景下,我们需要进行一些特殊优化,因此我们可能需要用到golang汇编,golang汇编源于plan9,此方面的 介绍很多,就不进行展开了。我们WHY和HOW开始讲起。
目前很多常见的科学上网工具主要适用于浏览器,但是在Shell中无法直接使用,因此需要在Shell中配置 代理所需的环境变量。但是在Shell中配置全局的环境变量会代理一个问题,那就是平时在工作中需要用到 很多内网的环境,如果统一都走代理则这些内网资源都无法访问(在电脑网络配置中配置的自动代理PAC, 只能够对浏览器生效)。因此需要一个智能代理,根据访问的资源来决定是否访问远程代理。
a thread-safe concurrent map for go
lrita's blog
NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code.
a TryLock implementation