区块链技术区块链研习社

比特币源码研读之一

2017-09-19  本文已影响141人  剑有偏锋

比特币源码研读之一
——区块链研习社 《比特币源码研读班》

一看文件夹结构 和 github编译依赖,分析的依赖库

src
    compat       //工作台代码  base58等
    config
    consensus  //交易相关  merkle树
    crypto        //加解密(aes sha)
    leveldb      //文件数据库  leveldb
    obj
    obj-test
    policy           //背书
    primitives  //区块和交易的数据结构
    qt                 //ui框架 qt
    rpc               //rpc  远程进程调用
    script           //交易脚本
    secp256k1 //椭圆曲线
    support
    test              //测试代码
    univalue
    wallet         //钱包相关
    zmq           //消息队列库  zmq
Library Purpose Description
libssl Crypto Random Number Generation, Elliptic Curve Cryptography
libboost Utility Library for threading, data structures, etc
libevent Networking OS independent asynchronous networking
miniupnpc UPnP Support Firewall-jumping support
libdb4.8 Berkeley DB Wallet storage (only needed when wallet enabled)
qt GUI GUI toolkit (only needed when GUI enabled)
protobuf Payments in GUI Data interchange format used for payment protocol (only needed when GUI enabled)
libqrencode QR codes in GUI Optional for generating QR codes (only needed when GUI enabled)
univalue Utility JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure)
libzmq3 ZMQ notification Optional, allows generating ZMQ notifications (requires ZMQ version >= 4.x)

二 看main.cpp文件 (src/bitcoind.cpp)

int main(int argc, char* argv[])
{
    SetupEnvironment(); //设置运行环境变量

    // Connect bitcoind signal handlers
    noui_connect();  //连接信号和槽

   //根据输入的argc argv 参数初始化程序
    return (AppInit(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE);
}

三 附main函数的结构图

上一篇下一篇

猜你喜欢

热点阅读