哼哼哼 ----分布一致性学习1

比特币源码分析-bitcoin程序框架

基础技术

http rest

Level DB

Zero MQ

Bloom filter

Cuckoo hash

DNS seed

Tor -- the onion route

文件一览

 

库:

secp256k1:椭圆曲线非对称加密,数字签名库

qt:GUI库

univalue:数据类型库,服务于rpc序列化

 

其他文件夹:

compact:大小端,系统适配等,重写了部分字节操作

consensus:merkle计算,分叉规则,一致性验证

crypto:哈希算法,加密算法

support:内存控制,主要服务于内存池

index:交易读写(1.查询交易;2.新区块加入同步数据)

inferface:1.event handler接口

 2.守护进程bitcoind,调用node功能的接口

   3.bitcoin钱包功能接口

policy:1.交易选取规则(基于feerate的动态规划)

   2.检查交易格式

   3.rbf交易替换(高费率优先)

Ps:交易成功的流程:发起交易-->交易池-->交易桶-->写入区块

primitive: 1.区块构建;

2.校验交易的输入输出签名

scrpit: 1.交易溯源;

2. 密钥验证;

3. 交易脚本;

4. 签名;

5. 签名cache(缓存常用签名及其hash以节约时间)

 

 

 

 

文件:

P2P网络管理:

① addrdb:P2P网络地址数据库peer.dat,封禁地址banlist.dat;

② addman:在内存中cache部分地址以提升性能 Stochastic address manager

③ Net:网络节点管理

④ Net_processing:节点的通信操作,广播通知,状态验证等

⑤ Netaddress:网络地址对象

⑥ Netbase:网络通信

⑦ Protocol:网络通信格式

⑧ Random:ssl随机数种子

⑨ Timedata:P2P网络时间同步

 

Amount:最大交易量,系统常量(CAmount MAX_MONEY = 21000000 * COIN)

Arith_uint256:256-bit 无符号大整数

Base58:编码器,base64的变种 key_io

Bench32:string编码器,base32变种 key_io

Bitcoin-cli:命令行的比特币客户端(rpc client)

Bitcoind:服务节点守护进程

Bitcoin-tx:比特币交易处理程序

Blockencodings:交易装填到区块中

Bloom:布隆过滤器

链体:

Chain:区块链对象,维护着整个链的状态及各种参数

Chainparams:区块链对象的一些可调参数,包括主链,公有测试链,和私有链

Chainparamsbase:区块链对象的基本参数

Chainparamsseeds:P2P网络的DNS节点,用于解析及发现节点

Checkpoints:chain index检查点

Checkqueue:待验证信息队列,主线程放入数据,多线程并行检查验证

Clientversion:客户端版本验证

Coins: Unspent Transaction Output entry 即比特币交易的coin 实体,因为比特币每笔交易都是由UTXO而来

Compressor:输出脚本压缩编码

Core_io:tx对象与str对象的相互转化

Cuckoocache:基于cuckoo hash的内存cache

Dbwarpper:数据库上级接口

Fs:文件操作接口

Hash:sha-256哈希

Httprpc:rpc的http封装

非对称密钥管理

Key:调用secp256k1的公私密钥处理

Key_io:签名及加密后的重编码

Keystore:密钥管理器

Pubkey:公钥管理

 

Logging:全局日志

Noui:基于messagebox的ui

Rest:http的rest服务

 

挖矿:

Init:系统初始化,各个线程的初始化

Txmempool:交易池

merkleblock:生成merkletree 形式的block体

miner:矿工从txpool选取tx到block准备写入

Pow:工作量证明算法

线程管理:

Scheduler:线程调度器

Sync:死锁处理

ThreadInterrupt:线程中断

Txdb:DBview

Ui_interface:ui接口

Uint256:256bit不透明二进制对象

Undo:序列化与取消序列化

Util: argument handling, config file parsing,thread wrappers, startup time

Utilmoneystr:交易额转string

Utilstrencoding:去掉string里的不安全字符

Utiltime:取得时间,时间格式转换

Validation:确认接受新区块

Versionbits:区块链版本维护

Warnings:潜在错误

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值