bitcoinj整体架构

看了各种各样的比特币介绍网站,虽然能知晓个大概,但也总觉得自己在听故事,想探索比特币运行更深层次的运行机理,只有一个途径:Read the Fucking Source Code

起初选择的是我认为稍微正统一点的C++版本 https://github.com/bitcoin/bitcoin

后来发现几年没看C++实在适应不了各种模板和库 还是投奔Java https://github.com/bitcoinj/bitcoinj

bitcoinj介绍网站 https://bitcoinj.github.io

代码下下来之后发现这是一个比较庞大的复杂系统,怎么入手去看得好好考虑一下,好在“去中心化”,你再怎么复杂,也就是一个客户端,不用考虑服务器以及CS交互。后来证明我这么想是不对的,没有中心有可能更难理解,因为C-C=C-S,而且代码中C端和S端融到了一起。

考虑到比特币的实现是一个典型的P2P网络,每个节点都是账本存储的地方,用户通过广播自己的记账信息来实现交易,所以不难猜出主目录下面各个包的作用:

org.bitcoinj.net.discovery:节点发现,寻找邻居

org.bitcoinj.params:网络参数,看了下里面有各种网络,可能一部分是用来测试的

org.bitcoinj.protocols:不用多说,协议部分

org.bitcoinj.store:区块存储

org.bitcoinj.core:核心数据结构


WalletAppKit就像是一个大内总管,有序的指挥着各个模块的工作

你可能感兴趣的:(bitcoinj整体架构)