Bitcoin
-
【比特币Java开发 No.012】实现简易版区块链-网络
第12章 网络(network) 到目前为止,我们所构建的原型已经具备了区块链所有的关键特性:匿名,安全,随机生成的地址;区块链数据存储;工作量证明系统;可靠地存储交易。尽管这些特…
-
【比特币Java开发 No.011】 默克尔树 (Merkle Tree)
第11章 默克尔树(Merkle Tree) 1. 课程目标 知道什么是Merkle树 Merkle树的用途 比特币种如何应用Merkle树 学会在项目中实现Merkle树 2. …
-
【比特币Java开发 No.010】UTXO集优化
第10章 交易(Transactions)(2) 在这个系列文章的一开始,我们就提到了,区块链是一个分布式数据库。不过在之前的文章中,我们选择性地跳过了“分布式”这个部分,而是将注…
-
【比特币Java开发 No.009】数字签名(digital signature)
在数学和密码学中,有一个数字签名(digital signature)的概念,算法可以保证: 当数据从发送方传送到接收方时,数据不会被修改; 数据由某一确定的发送方创建; 发送方无…
-
【比特币Java开发 No.008】比特币地址生成解析
第8章 地址(Address) 在上一篇文章中,我们已经初步实现了交易。相信你应该了解了交易中的一些天然属性,这些属性没有丝毫“个人”色彩的存在:在比特币中,没有用户账户,不需要也…
-
【比特币Java开发 No.007】UTXO模型-交易(Transactions)(1)
交易(transaction)是比特币的核心所在,而区块链唯一的目的,也正是为了能够安全可靠地存储交易。在区块链中,交易一旦被创建,就没有任何人能够再去修改或是删除它。今天,我们将…
-
【比特币Java开发 No.006】CLI (Command Line Interface) 命令行界面
第6章 CLI(Command Line Interface) 到目前为止,我们的实现还没有提供一个与程序交互的接口:目前只是在 main 函数中简单执行了 CreateBlock…
-
【比特币Java开发 No.005】区块持久化存储
第5章 持久化(Persistence) 到目前为止,我们已经构建了一个有工作量证明机制的区块链。有了工作量证明,挖矿也就有了着落。虽然目前距离一个有着完整功能的区块链越来越近了,…
-
【比特币Java开发 No.004】工作量证明(proof-of-work)
第4章 工作量证明(proof-of-work) 在上一节,我们构造了一个非常简单的数据结构 — 区块,它也是整个区块链数据库的核心。目前所完成的区块链原型,已经可以通…
-
【比特币Java开发 No.003】牛刀小试-创建最简单的区块链
第3章 牛刀小试-创建最简单的区块链 基本原型(basic-prototype) 1. 课程目标 了解区块链的结构 学会创建一个区块(Block) 学会创建区块链(BlockCha…