区块链编程

什么是区块链?区块链从仅从技术层面来讲,是按照时间顺序将数据块连接在一起的链式数据结构。它采用了密码学的知识和p2p网络技术构建了一个数据不可篡改、不可伪造的分布式数据账本。

它带来的最为直接的变化就是去中心化的信任,这是它对于社会的最本质的改变。它是21世纪最具革命性的技术之一,目前这项技术仍在完善中,潜力还远未发挥出来。

目前,区块链最为成功的两个用途:加密货币和智能合约,以后也许会出现更多有价值的用途。国内外的公司巨头们都在加紧研究这项技术,推动技术落地,为社会带来更多有价值的变革。

1. 区块链教程的目标

本教程项目将构建一个基于区块链实现的加密货币,从简到难,从演示到实用。它将包含全部的加密货币的功能,也跟主流加密货币的实现是一致的,包括公链、钱包、挖矿、转账、kv数据库、区块浏览器等,尽量做到可用实用。

2. 从本教程项目中能学到什么

通过本教程的项目,我们可以学到两点:

  • 区块链学习让有志于区块链领域的人全方面的掌握区块链的开发技术,扎实地掌握区块链和加密货币的运行原理。
  • go语言学习让有志于使用go语言开发者,全面掌握go语言的基本语法的实际运用和开发技巧,了解一个项目的完整的开发过程。

3. 本教程项目地址

本教程项目地址: https://github.com/wangshizebin/minibc

下一章:简单区块链的实现

区块的原理和实现:我们从“区块链”的“区块”部分开始。区块是区块链中最基本的数据结构,在区块链中,区块存储了有价值信息。例如,比特币区块存储了交易数据,除此之外,区块中还包含其它信息:版本号,当前时间和前一个块的哈希值等。我们把bitcoin的区块定义稍作简化,作为MiniBC的区块定义。