7 --Splay--

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1w+

比特币源码解析(26) - 可执行程序 - Bitcoind

0x01 Step 11: Import Blocks从这一步的名字也可以看出这一步主要的内容就是导入区块,也就是从外部文件中导入区块信息,并加载到内存,更新区块索引等信息,具体代码如下。// ********************************************************* Step 11: import blocks if (!CheckDiskS...

2019-04-03 17:35:49

比特币源码解析(25) - 可执行程序 - Bitcoind

0x01 Step 8:Start indexer分析完了第七步,下面我们继续来看第八步的内容。// ********************************************************* Step 8: start indexers if (gArgs.GetBoolArg("-txindex", DEFAULT_TXINDEX)) { g...

2019-04-03 17:31:52

比特币源码解析(24) - 可执行程序 - Bitcoind

0x00 失踪人口回归每隔一段时间都是说要写完,结果都是写了一篇就搁下了。。啪啪啪!打脸,嗯,加油写!0x01 AppInitMain Step 7: load block chain 续(2)CCoinsViewCache在上一章中,我们分析到了init.cpp line 1515这里,到此为止整体的状态是我们已经从内存中读取了所有区块的信息,并且建立了所有区块的索引,按常理来讲,接下来...

2019-04-03 17:15:12

比特币源码解析(23) - 可执行程序 - Bitcoind

目录目录0x00 回来啦~0x01 AppInitMain Step 7: load block chain 续(1)LoadGenesisBlockCCoinsViewDBReplayBlocks0x00 回来啦~翻起上一篇比特币的分析还是2017年11月16日,现已经2018年6月26了,半年时间过的真快啊。中间也一直想继续写,但总是因为各种事耽误了,...

2018-06-27 15:27:14

【CryptoKitties源码解析】养猫的正确姿势!

今天想介绍一个最近比较火的一个“区块链”应用CryptoKitties,这个应用本质上实现的功能就是电子猫的繁殖与交易两个功能,功能上虽然比较简单但是再加上区块链这个强大的底层技术作为支撑,让它在整个行业掀起了一波热潮,甚至还导致了以太坊主网的堵塞,使得以太坊中未确认的交易数量从平常的2.5k增涨到了15k,网络中其他的交易也都受到了极大的影响。

2017-12-10 23:13:19

【区块链开发指南】区块链进阶

存储额外数据在区块链上存储额外数据是指那些存在区块链上但是对交易没有任何影响的数据,目前存储额外数据主要有两种方法:OP_RETURN和Multi-Signatures。OP_RETURN2013年,比特币协议中引进了一项新的功能,即:创建一种名为OP_RETURN的交易,可以嵌入40字节小段数据(目前已经是80字节)。

2017-12-10 23:05:11

【区块链开发指南】区块链基础之挖矿和矿池

什么是挖矿?讨论到比特币时,经常会提到的一个名词就是“挖矿”,那么挖矿到底是什么呢?它的详细过程又是怎么的呢?对于我个人而言,以前我知道所谓挖矿大概就是要找一个随机数,使得区块的哈希值小于某个数,但具体是怎样的呢?不知道。。。当然,还不仅如此,很多其他的概念像区块的结构、交易的结构、脚本的类型、P2SH这些概念具体内容到底是什么,其实还是很模糊,只知道大概有某些内容,所以这系列的总结也是为了让自己对

2017-11-28 14:19:22

【区块链开发指南】区块链基础之区块和交易

在区块链网络当中,所有的数据都以区块的形式记录在各个节点上。而每个区块又以单独的文件保存在节点本地磁盘上,在比特币(Linux系统)中所有的区块信息都保存在~/.bitcoin/blocks/目录下面,并以blk***.dat文件名标示。

2017-11-28 14:17:24

【区块链开发指南】区块链基础之比特币地址

比特币地址是一个由数字和字母组成的字符串,并且由公钥经过Hash函数生成。通常我们见到的比特币地址是经过Base58Check编码的,这种编码使用了58个字符和校验码,提高了可读性、避免了歧义,并能有效防止地址输入时产生的错误。

2017-11-28 14:14:01

【区块链开发指南】序言

申明:本系列文章皆是关于《区块链开发指南》一书的摘选与总结,希望能够普及区块链技术,推动区块链行业的健康发展。

2017-11-25 13:47:55

比特币源码解析(22) - 可执行程序 - Bitcoind

0x01 AppInitMain Step 7: load block chain计算缓存大小 fReindex = gArgs.GetBoolArg("-reindex", false); bool fReindexChainState = gArgs.GetBoolArg("-reindex-chainstate", false); // cache size calcula

2017-11-16 22:03:15

比特币源码解析(21) - 可执行程序 - Bitcoind

0x00 摘要经过前面20章的分析,我们已经渐渐接近比特币的核心功能部分了,也就是它的共识、交易处理等等。虽然前面基本上都是做的一些初始化的工作,但是这些工作对于比特币的整体运行来说都是必不可缺的,并且就像在之前讲过的信号处理、并发处理等等都是值得学习的部分,本章主要介绍AppInitMain中的Step 6,代码略微有些长所以就分割成小段来进行分析。0x01 AppInitMain Step 6:

2017-11-12 22:49:37

比特币源码解析(20) - 可执行程序 - Bitcoind

0x01 AppInitMain Step 5: verify wallet database integrity#ifdef ENABLE_WALLET if (!WalletVerify()) return false;#endifStep 5主要是验证钱包数据库的完整性,从而避免钱包内容被本地错误的修改。钱包的启用是通过一个宏定义来进行实现的,如果启用了这个宏那么就

2017-11-10 19:43:28

比特币源码解析(19) - 可执行程序 - Bitcoind

0x01 StartRPCbool StartRPC(){ LogPrint(BCLog::RPC, "Starting RPC\n"); fRPCRunning = true; g_rpcSignals.Started(); return true;}启动RPC就是将之前的连接到Started的信号全部触发运行,并修改变量fRPCRunning为true,而St

2017-11-09 15:06:41

比特币源码解析(18) - 可执行程序 - Bitcoind

0x01 InitHTTPServer初始化访问控制列表(ACL) if (!InitHTTPAllowList()) return false; if (gArgs.GetBoolArg("-rpcssl", false)) { uiInterface.ThreadSafeMessageBox( "SSL mode for RPC

2017-11-07 10:55:13

比特币源码解析(17) - 可执行程序 - Bitcoind

0x01 Step 4a - ContinueCScheduler 实现 // Start the lightweight task scheduler thread CScheduler::Function serviceLoop = boost::bind(&CScheduler::serviceQueue, &scheduler); threadGroup.create_

2017-09-25 17:05:03

比特币源码解析(16) - 可执行程序 - Bitcoind

0x01 AppInitSanityChecks - Step 4 sanity checksbool AppInitSanityChecks(){ // ********************************************************* Step 4: sanity checks // Initialize elliptic curve code

2017-09-22 12:46:49

c++并发编程 - Boost Thread

0x00 摘要在分析比特币源码时,最开始就简单学习了一些boost thread的简单用法和最基本的互斥锁,但看到后面发现还用到了更深层次的并发编程知识,于是又回来完整的学习一下,这里做个学习的总结。本文的内容主要包括线程组(Thread group)以及各种互斥锁(lock_guard, unique_lock)以及更高级一点的condition variable。

2017-09-21 22:03:13

比特币源码解析(15) - 可执行程序 - Bitcoind

0x01 Step 3: parameter-to-internal-flags - continue由于Step 3中的内容太多,所以上一章未能完成,这一章继续分析Step 3中剩下的内容。

2017-09-20 10:18:54

比特币源码解析(14) - 可执行程序 - Bitcoind

0x00 AppInitParameterInteraction这个函数包括源码中的Step 2和Step 3两个,主要实现的功能是设置区块链运行时的一些参数。0x01 Step 2 - parameter interactions // if using block pruning, then disallow txindex if (gArgs.GetArg("-prune", 0

2017-09-14 17:11:05

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取