12 g2com

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 20w+

比特币源码学习笔记(四)

比特币带有一个基于栈的脚本语言。每笔交易的输出部分都嵌有一段脚本。要想花费一笔交易中所携带的币,接收方必须提供他的公钥,以使脚本能够成功执行。本篇将为大家介绍比特币的脚本语言。读完本篇之后,你将会明白在第一篇文章当中介绍的脚本A与脚本B的签名是如何验证的。本篇所涉及到的全部类及函数位于script.h或者script.cpp。比特币脚本语言定义了一组操作符,例如OP_FALSE,OP_

2017-05-15 18:17:42

比特币原始交易解析

在比特币当中,一笔交易的构成并非简单地由一个账户余额减去所转账的数额,再由向另一个账户余额添加相同的数额。比特币的交易是由一系列被称为opcode的指令所组成的脚本。也就是说,这些交易数据构成了比特币本身。在执行脚本的过程中,比特币会将这些指令一一压入栈中,并计算它们是否合法。那么,比特币是如何解析并处理交易数据的呢?在传输、存储的过程当中,比特币会先将数据序列化成二进制形式,成为原始

2017-05-10 02:31:24

比特币源码学习笔记(三)

第三章本章将介绍一些新的数据结构。除非特别说明,本章提到的所有的类与函数均位于main.h或main.cpp。每个节点均保存有一个区块链副本。区块链由相互连接的区块(CBlock实例)所构成。每个区块包含多笔交易(CTransaction实力)。为了存储、搜索、读取在内存与磁盘中的区块和交易信息,比特币引入了一些访问类。它们包括:CBlockIndex和CDiskBlockInde

2017-04-22 18:31:33

比特币源码学习笔记(二)

第二章本章继上一章交易创建之后介绍比特币客户端序列化数据的过程。比特币客户端所有的序列化函数均在serliaze.h中实现。其中,CDataStream类是数据序列化的核心结构。CDataStreamCDataStream拥有一个字符类容器用来存放序列化之后的数据。它结合一个容器类型和一个流(stream)界面以处理数据。它使用6个成员函数实现这一功能:class CDataS

2017-03-22 07:57:55

比特币源码学习笔记(一)

前言从事区块链的开发,不了解其底层核心技术是不够的。许多人在看了比特币白皮书之后仍然不清楚比特币是怎样实现的,因为比特币的源码设计精巧,有许多设计白皮书未曾提及,加上本身比特币的文档稀少,加大了新手理解的困难程度。我通过半年时间对于区块链的学习,打算写一份比特币源码的教程。本教程深入浅出,通过分析最经典的区块链——比特币的C++客户端源码,让开发者用最短的时间上手区块链技术。了解比特币源码可帮

2017-03-21 05:03:58
勋章 我的勋章
    暂无奖章