Engineering Notes

孟斌的小站

技术博客与学习记录

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

btcd区块结构

btcd 中,区块结构由区块头(Block Header)和交易列表(Transaction List)组成。区块头包含了一些元数据,而交易列表包含了区块中的所有交易。

继续阅读

btcd地址管理器:addrmgr

概述

为了维护点对点的比特币网络,需要有一个地址来源以便在节点进出时进行连接。比特币协议提供了 getaddraddr 消息,允许节点之间相互传递已知的地址。然而,需要有一个机制来存储这些结果并从中选择节点。同样重要的是,远程节点不能被信任来发送有效的节点,也不能保证不会试图出于恶意目的仅向你提供他们控制的节点。

继续阅读

btcd的交易结构

在比特币和 btcd 中,交易(Transaction)是区块链的基本构建块。每个交易由输入(Inputs)和输出(Outputs)组成。输入引用之前的输出,并提供解锁这些输出的条件。输出包含接收比特币的地址和金额。

继续阅读

PKCS#12

1. 简述

PKCS#12 (Public Key Cryptography Standards #12) 是由RSA实验室定义的一种标准,用于将私钥和公钥证书封装到一个加密的文件中。它通常用于在不同系统或应用之间安全地传输私钥和证书,并支持证书链的存储。PKCS12文件的扩展名通常为 .p12.pfx

go
继续阅读

BTC交易流程

交易流程

比特币的交易流程涉及多个步骤和参与方,包括发送方、接收方、矿工和比特币网络中的节点。以下是比特币交易的详细流程:

继续阅读

PoW简介

工作量证明(Proof of Work,简称 PoW)是一种用于分布式网络中达成共识的算法。它最早由 Cynthia Dwork 和 Moni Naor 于1993年提出,并由 Satoshi Nakamoto 在比特币白皮书中应用到区块链技术中。在区块链网络里,PoW 用于确保区块链网络的安全性和数据一致性。

继续阅读

公链风控系统设计思路

设计一个公链风控系统(Risk Control System)是确保区块链网络安全性、稳定性和可靠性的关键步骤。一个有效的风控系统需要覆盖多个方面,包括交易监控、节点安全、智能合约审计、异常检测和应急响应等。以下是详细的设计思路:

继续阅读

reflect使用示例

在Go中,我们可以使用反射(reflection)来实现一个泛型函数,将任何输入转换为字符串。反射允许我们检查和操作运行时的类型信息,从而使我们能够处理任意类型的输入。

go
继续阅读

Golang面试:泛型

Go语言在1.18版本中引入了泛型(Generics),这是Go语言发展中的一个重要里程碑。泛型允许你编写更通用和可复用的代码,而无需牺牲类型安全性。以下是对Go中泛型的详细介绍,包括其语法、使用场景和示例代码。

go
继续阅读