分类:比特币

比特币源码研读(7)—— 钱包的原理

比特币源码研读(7)—— 钱包的原理
首先,我们需要知道一点,比特币钱包里面并没有比特币。钱包是管理密钥、地址、跟踪余额和创建交易的软件。我们的比特币数据是存储在区块链上的,而不是在钱包里。 经过前面几篇文章的解读,我们知道一个私钥生成公钥,公钥生成地址,这三者是一一对应的,就是一个私钥只有一个公钥和一个地址。但是我...

2018-05-12 678浏览 0评论 0喜欢

比特币源码研读(6)—— 椭圆曲线加密法

比特币源码研读(6)—— 椭圆曲线加密法
比特币私钥生成公钥,用到的方法就是椭圆曲线加密法。椭圆曲线加密法是一种基于离散对数问题的非对称加密法,只能从私钥推出公钥,不能从公钥逆推出私钥。这是一个复杂的加密法,我们可以先从简单的类比开始。 简单的理解 均益在知乎上看到一个简单类比   先看一个栗子: 小明就读于...

2018-04-22 5625浏览 0评论 1喜欢

比特币源码研读(5)—— 私钥、公钥和地址

比特币源码研读(5)—— 私钥、公钥和地址
比特币中的私钥、公钥和地址,类比我们现实生活中银行卡,私钥是密码,地址是卡号,公钥还没有恰当的类比。在转账过程中,我们有密码,知道对方的地址,就可以转账成功。谁拥有私钥,谁就可以花费这个钱;谁拥有发送地址对应的私钥,谁就能接收这笔钱。 在比特币种,私钥、公钥和地址三者的关系是这样...

2018-04-16 14084浏览 0评论 2喜欢

比特币源码研读(3)——AppInitMain()程序初始化设置

比特币源码研读(3)——AppInitMain()程序初始化设置
AppInitMain()函数在init.cpp文件,做的事情非常多,主要的有应用程序初始化、验证钱包数据库完整性、网络初始化、下载区块数据、加载钱包、数据目录维护、导入区块、开启节点。今天均益先说一下应用程序初始化 一、开启日志记录 检查参数-shrinkdebugfile...

2018-04-01 22016浏览 0评论 0喜欢

比特币源码研读(2)——AppInit()初始化参数设置

比特币源码研读(2)——AppInit()初始化参数设置
继上一篇设置运行环境之后,程序运行到AppInit()函数。AppInit函数对从命令行传入的参数做初始化设置。主要完成的设置的有: 1、判断帮助和版本信息 检查参数中是否有-? -h -help,如果有,输出帮助信息。检查参数中是否有-version,如果有,打印当前客户端的...

2018-03-25 517浏览 0评论 0喜欢

比特币源码研读(1)——设置运行环境

比特币源码研读(1)——设置运行环境
前言: 对于我这个刚学了几天C++的菜鸟来说,马上上手学习比特币的源码是有一定难度。但是既然加入区块链研习社比特币源码研读班,哭着也要坚持下去。 通过这两周的学习,均益发现不要着急研读比特币的源码。可以先从《精通比特币》、《比特币开发者指南》这两本书入手,对比特币有了一个大概的了...

2018-03-19 698浏览 0评论 1喜欢

比特币(Bitcoin)客户端源码编译流程

比特币(Bitcoin)客户端源码编译流程
本文安装编译的环境: 阿里云 Ubuntu 16.04 64位 镜像 比特币核心版本 0.16.0 内存2G以上 磁盘空间150G以上 安装目录 /root  安装步骤: 1、安装依赖 sudo apt-get update   sudo apt-get upg...

2018-03-11 870浏览 0评论 1喜欢