Linux (1) RabbitMQ (8) algorithm (11) bitcoin (9) blockchain (108) c++ (3) cache (11) cpp (4) database (2) docker (4) ethereum (13) fabric (18) gRPC (10) git (1) go (205) gorm (3) kratos (1) linux (2) markdown (3) memcache (1) mysql (29) nginx (6) prometheus (2) protobuf (17) python (3) pytorch (7) redis (23) solidity (36) tls (1) tools (7) web3.js (20) wsl (5) 其它 (10) 区块链 (1) 密码学 (10) 建站 (4) 开发 (1) 操作系统 (6) 数据处理 (1) 数据结构 (9) 架构师 (4) 深度学习 (7) 算法 (1) 考证 (3) 设计模式 (17) 面试 (3)

 Linux (1)

Linux下rz命令上传文件失败处理

 RabbitMQ (8)

RabbitMQ 发布者确认
RabbitMQ RPC
RabbitMQ topic
RabbitMQ 路由
RabbitMQ 发布与订阅
RabbitMQ 工作队列
RabbitMQ Hello World
RabbitMQ 准备

 algorithm (11)

算法:二叉树中两个节点的最低公共祖先(LCA)
二叉树遍历
分解质因数
LRU算法简介
Paxos简介
Raft vs. Gossip
查找最大不重复子串的长度
Raft 详解
链表分组逆序
查找数组中第K大的元素
深入分布式一致性:Raft 和 etcdRaft

 bitcoin (9)

Bitcoin 网络
Bitcoin中的数据结构
Bitcoin 挖矿难度
Bitcoin引发的思考
Bitcoin中的密码学原理
Bitcoin的实现
Bitcoin中的协议
Bitcoin的匿名性
Bitcoin 分叉

 blockchain (108)

部署自己的 Ethereum 浏览器
PoA 验证者也能获取出块奖励吗?
Solidity、Geth、EVM 三者之间的关系
多验证者节点PoA私链搭建
构建基于PoA的ethereum私链
ethereum权威共识机制(PoA)简述
从0开始开发自己的BTC钱包:区块链基础命令
从0开始开发自己的BTC钱包:发送btc交易
从0开始开发自己的BTC钱包:地址生成命令
从0开始开发自己的BTC钱包:秘钥生成命令
从0开始开发自己的BTC钱包:助记词
从0开始开发自己的BTC钱包:双花攻击
读写集冲突
hyperledger fabric读写集简介
从0开始开发自己的BTC钱包:BTC分叉
从0开始开发自己的BTC钱包:PoW
从0开始开发自己的BTC钱包:UTXO
从0开始开发自己的BTC钱包:连接到比特币网络
从0开始开发自己的BTC钱包:BTC地址生成
BIP38简介
从0开始开发自己的BTC钱包:钱包
估算btc交易费
P2SH地址
BTC地址类型
BIP-44 简介
从助记词生成钱包
助记词简介
Solidity:代理模式升级合约
MerkleTree 使用
使用btcd发送交易
btcd 配置项说明
Bitcoin-core 冷钱包
BTC钱包简介
BTC 地址
使用btcd构建BTC交易
OpenZeppelin
Solidity:NFT
Solidity:ERC721
Solidity:assembly
MerkleTree in BTC
btcd区块结构
btcd地址管理器:addrmgr
btcd的交易结构
BTC交易流程
PoW简介
RPC连接btcd网络
btcd简介
Solidity:ERC20
Solidity:chainlink
Solidity:多签钱包
Solidity:存钱罐合约
Solidity:assembly和unchecked
Solidity:库函数
Solidity:Gas 优化
Solidity:在合约中创建其它合约
Solidity:四种防止重入攻击的方法
Solidity:合约调用方式
Solidity:call 和 delegatecall
Solidity:接收 ETH
Solidity:发送 ETH
Solidity:接口
Solidity:合约继承
Solidity:constructor函数
Solidity:修饰器
Solidity:错误
Solidity:事件
Solidity:函数
Solidity:数据存储位置
Solidity:常用数据结构
Solidity:控制语句
Solidity:Gas
Solidity:变量与常量
Solidity:原始数据类型
First Solidity App
Hello World with solidity
web3.js配置指南
web3.js实用函数
事件订阅
开始使用eth包
web3.js ENS 包
自定义订阅
管理智能合约
从JSON工件推断合约类型(TypeScript)
教程:部署并与智能合约交互
签名操作
事件监听
Web3.js常用API:发送交易
Web3.js常用API(一)
webpack < 5 used to include polyfills for node.js core modules by default
创建以太坊钱包
Web3连接以太网
HD钱包和BIP32、BIP44、BIP39
钱包与账户概览
结合 Hardhat 使用 Web3
Web3js 快速入门
web3.js简介
web3.eth简介
PoW、PoS、DPoS和PBFT简介
Merkle Tree 简介
Bitcoin 网络
Bitcoin中的数据结构
Bitcoin 挖矿难度
Bitcoin引发的思考
Bitcoin中的密码学原理
Bitcoin的实现
Bitcoin中的协议
Bitcoin的匿名性
Bitcoin 分叉

 c++ (3)

C++使用proto3
Proto3 c++代码生成指南
Proto3 cpp API概览

 cache (11)

CouchDB vs. LevelDB
LevelDB:轻量级高性能键-值存储引擎
CouchDB:分布式文档存储数据库简介
Redis如何批量删除指定前缀的key
Memcache简介
Redis vs Memcache
Redis启用认证
Redis in go
FreeCache简介
BigCache简介
Redis简介

 cpp (4)

Protocol Buffer插件开发(一)
C++使用proto3
Proto3 c++代码生成指南
Proto3 cpp API概览

 database (2)

慢SQL优化
NoSQL 简介

 docker (4)

如何将 Docker 数据迁移到数据盘
Dockerfile 简介
如何通过docker-compose对docker容器资源进行限制
Docker 使用

 ethereum (13)

PoA Clique共识下新增验证者节点操作示例
PoA Clique共识下新增验证者节点
PoA Clique共识下新增同步节点
UUPS 代理使用示例
UUPS代理:以轻量化和灵活性为核心的智能合约升级模式
replacement transaction underpriced
EIP-1599简介
only replay-protected (EIP-155) transactions allowed over RPC
部署自己的 Ethereum 浏览器
PoA 验证者也能获取出块奖励吗?
Solidity、Geth、EVM 三者之间的关系
多验证者节点PoA私链搭建
构建基于PoA的ethereum私链

 fabric (18)

Hyperledger Fabric BCCSP 简介
Fabric Gateway 使用示例
Fabric Gateway简介
Fabric MVCC 简介
Gossip in Hyperledger Fabric
Fabric 2.x 智能合约开发记录
Hyperledger Fabric中的MSP:理解分布式账本的安全性和身份验证
Fabric区块链浏览器(3)
基于密码学的身份混淆系统 -- idmix
Fabric区块链浏览器(2)
Fabric区块链浏览器(1)
Hyperledger Fabric系统链码介绍
Hyperledger Fabric介绍
从源码中解析fabric区块数据结构(二)
fabric网络升级
fabric网络升级示例
fabric couchdb使用
从源码中解析fabric区块数据结构(一)

 gRPC (10)

Fabric Gateway 使用示例
Why Microservices ?
Why gRPC ?
Why RPC ?
RPC 服务简介
gRPC with JWT
gRPC身份认证
如何通过gRPC传输文件
gRPC vs. HTTP:网络通信协议的对比
gRPC入门

 git (1)

git 子模块使用

 go (205)

名称(别名)中有什么?
构建基于LLM的Go应用程序
Go语言Excel库:excelize
Go如何处理Excel文件
Go语言中的交互式CLI开发:survey库简介
unique包的使用
函数类型的范围
Go标准库之bufio.Scanner
从0开始开发自己的BTC钱包:助记词
Go 语言构建约束
腾讯元器
从0开始开发自己的BTC钱包:连接到比特币网络
从0开始开发自己的BTC钱包:BTC地址生成
BIP38简介
从0开始开发自己的BTC钱包:钱包
Go 语言中 `math/rand` 和 `crypto/rand`对比
Go使用sqlite3
Go 1.23 is Released
P2SH地址
color:让终端输出更多彩
Go标准库:strings
命令行工具开发 cobra 示例
Go标准库:bytes
如何避免程序运行时出现的内存膨胀
Go中处理MySQL死锁
Go:接口
MerkleTree 使用
panic:interface conversion:interface {} is float64, not int64
使用btcd发送交易
BTC 地址
使用btcd构建BTC交易
go中的内存泄漏与逃逸
二叉树遍历
Go标准库:container/list
btcd区块结构
btcd地址管理器:addrmgr
btcd的交易结构
PKCS#12
PoW简介
RPC连接btcd网络
reflect使用示例
Golang面试:泛型
testify简述
单元测试
go实现队列
GMP模型
Secure Randomness in Go 1.22
Go中空白标识符`_`
Go标准库`math/rand/v2`
WebSocket
如何实现简单的UDP端口扫描工具
分解质因数
更强大的Go执行追踪
Robust generic functions on slices
Go 1.22中的路由提升
Go 1.22 is released!
enum in Go
Go中常见数据类型
Go关键字
对比Go中的值接收和指针接收
Function vs. Method in Go
Map中的key为什么是无序的
Go maps in action
Go面试:两个Struct可以进行对比吗?
Golang并发控制方式有几种?
Go面试:读写已经关闭的channel会怎样?
三大反射定律
使用标准库 archive 处理归档文件
Debug线上服务
数据结构之堆
使用 deadcode 查找 Go 程序中的从未使用的函数。
GORM 使用记录
Go string 简介
Go使用JWT完成认证
Go 类型断言
Go 标准库:bufio
Go:条件控制语句
Go 获取 IP 地址
Go标准库:html/template
sync.WaitGroup 简介
使用 `github.com/go-playground/form/v4` 处理表单数据
Go变量声明
Go实现网络代理
go中异常处理流程
go 上下文:context.Context
Go 14周年
通道 channel
go 中的零值
nil简介
Go中字符串处理:fmt.Sprintf与string.Builder的比较
go 中的循环依赖
数据结构中的层次化组织 -- 树总览
go 中如何实现定时任务
队列(Queue):先进先出(FIFO)的数据结构
栈:数据结构中的后进先出(LIFO)容器
数据结构之链表
数组 vs. 切片
数组
go中的内存逃逸
链表分组逆序
查找数组中第K大的元素
Registration Authority 简介
Go 如何实现多态
生成CSR和自签名证书
x.509 简介
Golang slice简介
make vs. new
Golang Map底层实现简述
使用 INI 配置文件格式处理 Go 语言应用程序配置
go的GPM模型
defer
关于类型推断,你想知道的都在这里
Go with Protobuf
slices in Go 1.21
设计模式之工厂模式
cobra 简介
占位符简介
解析类型参数
maps in Go 1.21
在Go中如何实现并发
Merkle Tree 简介
使用 gopkg.in/yaml.v3 解析 YAML 数据
使用Viper处理Go应用程序的配置
设计模式之单例模式
Go 1.21 新增内置函数:min、max、clear
Golang GC 简介
Go 1.22 中的 For 循环
如何将 MD 转换成 HTML
消息队列 - RabbitMQ
如何实现流量控制和熔断降级?
如何使用 Prometheus 来监控你的应用程序?
WASI support in Go
lumberjack:日志轮换和管理
为不断增长的Go生态系统扩展gopls
Fabric 2.x 智能合约开发记录
PGO in Go 1.21
完全可复制、经过验证的 Go 工具链
go 1.21:cmp
使用 Go 开发 CLI 工具
错误处理
pprof简介
embed简介
GORM 外键使用
Fabric区块链浏览器(3)
Structured Logging with slog
gRPC with JWT
gRPC身份认证
fsnotify简介
测试数据生成 -- faker
类型转换库 -- cast
gosec简介
Fabric区块链浏览器(2)
向前兼容性和Go 1.21中的工具链管理
向后兼容,Go1.21,Go2
protojson简介
Memcache简介
如何选择gorm、xorm、ent、sqlx
ent简介
XORM简介
sqlx简介
Fabric区块链浏览器(1)
sonic简介
gin中间件开发
试验项目模板
Go 1.21发布!
go泛型简介
GORM简介
Redis in go
如何通过gRPC传输文件
FreeCache简介
BigCache简介
Govulncheck v1.0.0 发布了!
在Gin中实现跨域
ETCD in go
Session in Gin
Gin简介
protolator简介
Wire - 依赖注入框架
wire入门教程
Golang漏洞管理
golang uuid库介绍
go generate命令简介
iota简介
不用再记123456了!!!
如何优雅地退出程序
PGO前瞻
如何让你的结构体更高效
x509:cannot validate certificate for xxx because it doesn't contain any IP SANs
go多版本管理
OpenAI库功能完善了
go slice介绍
微信公众号消息加解密
我的OpenAI库发布了!!!
gRPC入门
Gorm使用记录
从源码中解析fabric区块数据结构(二)
Golang避坑指南
zap设置日志级别
Gorm日志输出设置
微信文本消息处理
验证来自微信服务器的消息
gin启用https支持
年会抽奖实现
本地搭建golang playground
Go plugin介绍

 gorm (3)

GORM 使用记录
GORM 外键使用
Gorm使用记录

 kratos (1)

Fabric区块链浏览器(3)

 linux (2)

如何管理 Ubuntu 24.04 中的 UFW 防火墙
Linux下如何挂载磁盘

 markdown (3)

LaTeX简介
markdown绘制甘特图
Markdown简介

 memcache (1)

Memcache简介

 mysql (29)

使用联合索引优化查询效率
MySQL 常用函数
MySQL 事务学习
MySQL 索引
MySQL 视图操作
MySQL 多表关联查询
MySQL Table基本操作
MySQL学习笔记:数据类型
MySQL学习笔记:SQL分类
MySQL数据导出
EXPLAIN的作用
覆盖索引
MySQL大表设计
数据库索引:提高性能的关键利器
B-Tree 索引简介
三大范式
MySQL存储引擎简介
MySQL 的 InnoDB 存储引擎简介
MySQL 二进制日志(Binlog)简介
MySQL 列操作记录
MySQL 常用内置函数
MySQL 表分区使用实践
MySQL 表分区简介
MySQL存储过程、索引、分表对比
MySQL 分表查询
使用MySQL存储过程提高数据库效率和可维护性
提高 MySQL查询效率的方法
MySQL索引简介
MySQL使用笔记

 nginx (6)

通过 Nginx 防止网络盗链的方法
Nginx 缓存配置:提升性能与减轻服务器负载
Nginx如何启用https
通过Nginx实现反向代理
通过nginx实现负载均衡
Nginx使用

 prometheus (2)

如何使用 Prometheus 来监控你的应用程序?
Prometheus Alertmanager

 protobuf (17)

Go with Protobuf
protojson简介
Protobuf vs JSON
Protobuf中如何指定json tag
Protocol Buffer命名空间冲突
Protocol Buffer插件开发(一)
源码安装Protobuf
gRPC入门
Proto3 风格
Proto3 编码
Proto3 使用指南
C++使用proto3
Proto3 c++代码生成指南
Proto3 cpp API概览
Proto3 Techniques
Proto3 Arenas分配
Proto3 API引用

 python (3)

G4F
Mac更新Python3.12后pip安装报错
Python入门教程

 pytorch (7)

PyTorch入门之迁移学习
PyTorch入门之从示例中学习PyTorch
PyTorch入门之数据导入与处理
PyTorch入门之60分钟入门闪击战之训练分类器
PyTorch入门之60分钟入门闪击战之神经网络
PyTorch入门之60分钟入门闪击战之自动推倒
PyTorch入门之60分钟入门闪击战之入门

 redis (23)

Redis 管道
Redis 事务
Redis 持久化
Redis key 操作
Redis安装
简述Redis集群部署
Redis sorted sets
Redis Sets
Redis hashes
Redis Lists
Redis Strings
JSON in Redis
Redis中的string
Redis中的缓存雪崩、缓存击穿、缓存穿透问题
Redis 互斥锁使用
Redis Big Key介绍
redis 内置命令简介
Redis如何批量删除指定前缀的key
Redis启用认证
Redis in go
FreeCache简介
BigCache简介
Redis简介

 solidity (36)

Solidity:代理模式升级合约
OpenZeppelin
Solidity:NFT
Solidity:ERC721
Solidity:assembly
Solidity:ERC20
Solidity:chainlink
Solidity:多签钱包
Solidity:存钱罐合约
Solidity:assembly和unchecked
Solidity:库函数
Solidity:Gas 优化
Solidity:在合约中创建其它合约
Solidity:四种防止重入攻击的方法
Solidity:合约调用方式
Solidity:call 和 delegatecall
Solidity:接收 ETH
Solidity:发送 ETH
Solidity:接口
Solidity:合约继承
Solidity:constructor函数
Solidity:修饰器
Solidity:错误
Solidity:事件
Solidity:函数
Solidity:数据存储位置
Solidity:常用数据结构
Solidity:控制语句
Solidity:Gas
Solidity:变量与常量
Solidity:原始数据类型
First Solidity App
Hello World with solidity
solidity 数据类型简介
solidity 合约入门
基于Docker构建 Solidity remix-ide环境

 tls (1)

TLS如何保证通信安全?

 tools (7)

crontab定时任务
Ubuntu 24.04安装shadowsocks-libev
UUID 介绍
git 子模块使用
jq工具简介
Makefile 入门教程
Shadowsocks-libev安装

 web3.js (20)

web3.js配置指南
web3.js实用函数
事件订阅
开始使用eth包
web3.js ENS 包
自定义订阅
管理智能合约
从JSON工件推断合约类型(TypeScript)
教程:部署并与智能合约交互
签名操作
事件监听
Web3.js常用API:发送交易
Web3.js常用API(一)
创建以太坊钱包
Web3连接以太网
钱包与账户概览
结合 Hardhat 使用 Web3
Web3js 快速入门
web3.js简介
web3.eth简介

 wsl (5)

“wsl:检测到 localhost 代理配置,但未镜像到 WSL......”解决办法
WSL中ML的GPU加速入门
wsl使用记录
wsl备份与还原
设置Windows主机的浏览器为wls2的默认浏览器

 其它 (10)

如何保证API调用的安全性
HTTPS 简介
RESTful API简介
Docker获取Let`s Encrypt SSL 证书
Docker部署Jekyll
Markdown简介
Jekyll安装
Linux下rz命令上传文件失败处理
ab命令使用
使用boot.iso镜像安装OL8

 区块链 (1)

PoW -- 工作量证明

 密码学 (10)

分布式系统中的MVCC
分布式系统中如何保证数据一致?
Registration Authority 简介
生成CSR和自签名证书
x.509 简介
常见国密算法简介
常见密码学算法简介
零知识证明简介
PKI体系简介
PKCS#11:密码设备与应用程序的密码学接口

 建站 (4)

使用 Jekyll 部署自己的网站
自建站点上部分页面404解决办法
Docker获取Let`s Encrypt SSL 证书
Docker部署Jekyll

 开发 (1)

设置Windows主机的浏览器为wls2的默认浏览器

 操作系统 (6)

Linux进程
僵尸进程
进程、线程与协程的简单对比
线程简介
进程简介
协程简介

 数据处理 (1)

Excel 公式函数 SUMIF

 数据结构 (9)

数据结构之堆
理解线段树:解决区间操作的利器
二叉树简介
数据结构中的层次化组织 -- 树总览
队列(Queue):先进先出(FIFO)的数据结构
栈:数据结构中的后进先出(LIFO)容器
数据结构之链表
数组 vs. 切片
数组

 架构师 (4)

如何设计一个高可用的分布式系统
操作系统之存储管理
系统架构设计师备考之操作系统(二)
系统架构设计师备考之操作系统

 深度学习 (7)

PyTorch入门之迁移学习
PyTorch入门之从示例中学习PyTorch
PyTorch入门之数据导入与处理
PyTorch入门之60分钟入门闪击战之训练分类器
PyTorch入门之60分钟入门闪击战之神经网络
PyTorch入门之60分钟入门闪击战之自动推倒
PyTorch入门之60分钟入门闪击战之入门

 算法 (1)

Fibonacci数列

 考证 (3)

操作系统之存储管理
系统架构设计师备考之操作系统(二)
系统架构设计师备考之操作系统

 设计模式 (17)

设计模式之迭代器模式
设计模式之解释器模式
设计模式之命令模式
设计模式之责任链模式
设计模式之代理模式
设计模式之享元模式
设计模式之外观模式
设计模式之装饰器模式
设计模式之组合模式
设计模式之过滤器模式
设计模式之桥接模式
设计模式之适配器模式
设计模式之原型模式
设计模式之建造者模式
设计模式之抽象工厂模式
设计模式之工厂模式
设计模式之单例模式

 面试 (3)

公链风控系统设计思路
长连接和短连接
Go面试:读写已经关闭的channel会怎样?