码迷,mamicode.com
首页 > 其他好文 > 详细

比特币技术之迷-概述

时间:2014-05-23 04:02:20      阅读:493      评论:0      收藏:0      [点我收藏+]

标签:blog   c   tar   ext   http   a   

  比特币技术之迷

   闲暇之余,开始阅读比特币源码,本人将收集以及理解的相关资料作为记录,特开此专栏,给大家带入比特币的技术世界。
  
比特币相关资源链接如下:
 比特币技术白皮书:
  http://bitcoin.org/bitcoin.pdf
  比特币相关wiki文章
  https://en.bitcoin.it/wiki/Category:Technical
  比特币协议详解
  https://en.bitcoin.it/wiki/Protocol_specification
  比特币协议规则
  https://en.bitcoin.it/wiki/Protocol_rules
 
  比特币客户端主要包括以下模块:
   初始化模块:
   在初始化过程中,客户端会初始化各种模块,包括多线程同步操作相关模块
   节点发现模块:
   客户端通过各种技术细节来实现其它比特币节点的发现
   节点连接模块
   与其它节点的连接与保持模块
   sokect和消息模块
   客户端处理来自其它节点的消息,并通过socket和其它节点进行连接
   block交换
   节点间广播自身持有的block,并与相关节点交换,以建立完备的block chains
   Transaction交换
   节点间相关交换与传递Transactions。
   钱包服务
   用户可以用本地钱包创建Transaction,相关Transaction放在本地钱包中,客户端提供一个服务来管理本地钱包
   RPC接口
   客户端通过HTTP 和sockets提供 JSON-RPC接口,用来完成各种操作功能和管理本地钱包。
  
   轻客户端模式(fClient Mode)
   值得注意的是,客户端已经实现了一种轻模式,在这种模式中只会下载block头信息,这种实现用来实现轻客户端,同时不用验证和保存所有的block和transactions。
  
   目前控制这种轻客户端模式的控制变量已经在代码中硬性写为false了,估计是还没写完。
  
   主线程关键函数流程:
   init.cpp:
    main()
    ExitTimeout
    Shutdown
net.cpp:
    StartNode
    ThreadGetMyExternalIP
    ThreadMapPort
    ThreadSocketHandler
    ThreadOpenConnections
    ThreadMessageHandler
rpc.cpp:
    ThreadRPCServer
irc.cpp:
    ThreadIRCSeed
db.cpp:
    ThreadFlushWalletDB
ui.cpp:
    ThreadDelayedRepaint
    SendingDialogStartTransfer

 各文件中关键类:
 net.cpp/.h:
    CNode:  处理节点的连接
    CInv
    CAddress
    CMessageHeader
    CRequestTracker

main.cpp/.h:
    CDiskTxPos
    CInPoint
    COutPoint
    CTxIn
    CTxOut

    CTransaction
    CMerkleTx
    CTxIndex

    CBlock
    CBlockIndex
    CDiskBlockIndex
    CBlockLocator

    CAlert : CUnsignedAlert

wallet.cpp/.h
    CWallet : CKeyStore
    CReserveKey
    CWalletTx : CMerkleTx
    CWalletKey
    CAccount
    CAccountingEntry

db.cpp/.h:
    CTxDB
    CKeyPool
    CWalletDB

bignum.h
    CBigNum

util.h
    CCriticalSection: 用于线程同步

 

 下一篇我们将讲解 比特币技术之迷-Transaction 交换

(待续)
 
  
  
 

比特币技术之迷-概述,布布扣,bubuko.com

比特币技术之迷-概述

标签:blog   c   tar   ext   http   a   

原文地址:http://www.cnblogs.com/sonyye/p/3742101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!