Engineering Notes

孟斌的小站

技术博客与学习记录

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

MerkleTree in BTC

Merkle 树是一种用于高效且安全地验证大数据结构完整性和一致性的哈希树。它在比特币网络中起到至关重要的作用。Merkle 树是一种二叉树结构,其中每个叶子节点包含数据块的哈希值,每个非叶子节点包含其子节点哈希值的组合哈希。

继续阅读

Go标准库:container/list

在Go语言的标准库中,container/list包提供了一个双向链表的实现,这对于需要频繁插入和删除操作的场景非常有用。双向链表是一种线性数据结构,它由一系列节点组成,每个节点包含数据和两个指针,分别指向前一个节点和后一个节点。下面我们将详细介绍如何使用container/list包,以及它的内部实现和常见操作。

go
继续阅读

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

继续阅读