区块链编程
什么是区块链?区块链从仅从技术层面来讲,是按照时间顺序将数据块连接在一起的链式数据结构。它采用了密码学的知识和p2p网络技术构建了一个数据不可篡改、不可伪造的分布式数据账本。
它带来的最为直接的变化就是去中心化的信任,这是它对于社会的最本质的改变。它是21世纪最具革命性的技术之一,目前这项技术仍在完善中,潜力还远未发挥出来。
目前,区块链最为成功的两个用途:加密货币和智能合约,以后也许会出现更多有价值的用途。国内外的公司巨头们都在加紧研究这项技术,推动技术落地,为社会带来更多有价值的变革。
1. 区块链教程的目标
本教程项目将构建一个基于区块链实现的加密货币,从简到难,从演示到实用。它将包含全部的加密货币的功能,也跟主流加密货币的实现是一致的,包括公链、钱包、挖矿、转账、kv数据库、区块浏览器等,尽量做到可用实用。
2. 从本教程项目中能学到什么
通过本教程的项目,我们可以学到两点:
- 区块链学习
让有志于区块链领域的人全方面的掌握区块链的开发技术,扎实地掌握区块链和加密货币的运行原理。 - go语言学习
让有志于使用go语言开发者,全面掌握go语言的基本语法的实际运用和开发技巧,了解一个项目的完整的开发过程。
3. 本教程项目地址
本教程项目地址: https://github.com/wangshizebin/minibc
区块的原理和实现:我们从“区块链”的“区块”部分开始。区块是区块链中最基本的数据结构,在区块链中,区块存储了有价值信息。例如,比特币区块存储了交易数据,除此之外,区块中还包含其它信息:版本号,当前时间和前一个块的哈希值等。我们把bitcoin的区块定义稍作简化,作为MiniBC的区块定义。