手机就是POS机.png

首页 区块链正文

比特币源码(Bitcoinv0.01ALPHA)源码启动点

佚名 区块链 2021-04-25 12:00:34 39 0

比特币源代码(Bitcoin v 0. 01 ALPHA)基于wxWidgets接口库。 UI界面是通过wxFormBuilder设计的,生成了基类uibase.h / cpp代码,然后生成了继承类代码ui.h / cpp(比特币源代码解释-第1章项目结构分析),因此是起点比特币程序的名称应该在ui.cpp中。比特币UML类图参考:比特币源代码(v 0. 0 1) UML类图

0de92c55330c4e6931185e0748392ec1.png

源目录结构

b5869c962e38db8869cddfce3363c644.png

wxFormBuilder打开设计界面

每个wxWidgets程序都需要定义wxApp类的子类,并且需要创建此类的实例,该实例控制整个程序的操作。从wxAPP继承的该子类需要定义至少一个OnInit函数。当wxWidgets准备好运行程序时,它将调用此函数(这与典型的C / C ++程序中的main函数或WinMain函数类似)

ui.cpp源代码中定义了一个CMyAPP类,该类继承自wxApp类,因此,比特币源代码是从CMyAPP类实例的OnInit函数启动的,那么用于创建CMyApp示例的代码在哪里?实际上,在程序代码中,您需要告诉wxWidgets要创建App类的哪个实例,然后启动它。这是通过一个宏来实现的:IMPLEMENT_APP(CMyApp)

f3db046adca1e05175c7b1cd6ce77aa4.png

源代码起点

在OnInit函数中调用OnInit2函数。该程序的主要流程如下(包括性能计时):

1、检查程序是否在单个实例中运行

2、参数分析--- mapArgs,根据分析结果设置全局配置参数

3、加载P2P节点地址--- mapAddresses

4、加载块索引--- mapBlockIndex

5、加载钱包--- mapKeys / SetAddressBookName-mapAddressBook

0b9ce068c254e29ed6536be8af523b41.png

源代码全局变量数据初始化功能

此时,已加载数据并打印了信息。

然后比特币挖矿程序源代码,您需要重新加载尚未进入钱包的交易(钱包类包含将要链接到区块链的未确认交易):处理孤立的区块。

---------------------------

6、启动主窗体,UI启动

7、起始节点网络:接收消息和发送消息

8、根据启动参数启动挖掘线程

9、根据启动参数启动测试

1 0、所有进程正常启动后,返回true并进入事件循环...

87cc126ed8fa07148421bb804d42db71.png

启动网络节点并挖掘并返回值

ed23934d739b410521cd34faed862186.png

比特币整体框架的结构图

22b4c383074387874a70a94238e26930.png

比特币挖矿软件_比特币挖矿代码图_比特币挖矿程序源代码

比特币总体框架时序图

---------------------------

如果OnInit函数返回true,则wxWidgests将启动事件循环以接收用户输入并在必要时处理这些输入。如果OnInit函数返回false,则wxWidgests将释放其内部分配的资源,然后结束整个比特币程序。

---------------------------

正在等待驱动UI界面事件...

f660ef241c962f46cf174e50630e6e75.png

UI设计界面按钮触发事件

e9bf679551f5d8a349e2ad0b66969cd7.png

程序界面按钮触发事件

1、发起交易事件

UI界面,单击“发送硬币”按钮以触发事件:

([1)比特币客户端在ui.cpp文件中启动交易条目

CSendDialog :: OnButtonSend(wxCommandEvent&event)函数进行处理。

(2)交易的发起是在SendMoney()函数中,该函数实现以下功能:

创建事务CreateTransaction

提交交易请求CommitTransactionSpent

接受交易wtxNew.AcceptTransaction

广播事务wtxNew.RelayWalletTransaction

2、地址管理事件

UI界面比特币挖矿程序源代码,单击“通讯簿”按钮以触发事件:

地址管理分为当前节点地址管理和收款人地址管理,地址存储在wallet.dat文件中。

(1)当前节点地址管理位于CYourAddressDialog类中,包括诸如新建,重命名,复制等方法;

(2)收款人地址管理位于CAddressBookDialog类中,包括诸如新建,重命名,复制等方法。

---------------------------

比特币(Bitcoin v 0. 0 1))的源代码已成功编译并在Win7 + Code :: Blocks 1 7. 12和VS2013 / VS2015 / VS2017 / VS2019下运行。

4b7fe2040fe285cddaa8bc84634d68ac.png

Code :: Blocks 1 7. 12编译并运行源代码

af4c9eb4229ec158252c8543310a5311.png

VS2013编译源代码并运行

创亿伙伴111.png

源码比特币
版权声明

本文仅代表作者观点,不代表本站立场。本文系作者授权发表,未经许可,不得转载。

发表评论

评论列表(0人评论 , 39人围观)
☹还没有评论,来说两句吧...