如何系统学习区块链技术-干货来袭

区块链术涉及面很广,很多开发人员看了一些资料后,感觉似懂非懂。
如何系统的学习区块链技术,是很多想从事区块链开发的程序员的疑问,本文内容有点多,一次吸收不完可以收藏以后再用。

苦口婆心写在前面:
从事区块链开发有很多方向,如:区块链应用开发人员、区块链架构师、底层核心开发、共识算法研究等等。
方向不同,需要学习的内容就不一样,如果基于区块链应用开发,只需要了解一门编程语言(nodejs, Go, Python, C++ 等), 大概了解区块链的原理,不一定要深入,当然理解越深入开发就越顺。
如果做区块链基础开发,就需要了解加密算法,P2P 通信,共识算法等等。
由于区块链涉及的技术很多,可以先对各个技术有一个概念了解,再逐步深入原理。
当你在学习了解概念的时候,必定会产生很多疑问, 例如我们经常可以看到一句: 比特币的共识机制是通过工作量证明(POW)来实现的。
就有了新疑问:什么是工作量证明,进一步了解,它是通过验证的一个特定结果,就能确认参与者完成了相应的工作量(不理解没关系,可以简单为,张三考试考了 100 分,就确认张三肯定好好学习了)。
这时又有了新的疑问,比特币在验证什么样的结果,这时你又需要了解密码学和 Hash。
逐步深入的过程也是解答疑问的过程,需要我们善用 Google 搜索。
如果觉得已经理解一个概念或原理时,可以尝试动手实现它,如在理解挖矿后,可以写代码模拟挖矿过程。
学习是一个长期的过期,没有捷径,必须得多读书,读代码,写代码。

块链技术是随比特币诞生,因此要搞明白区块链技术,应该先了解下比特币。

但区块链技术不单应用于比特币,还有非常多的现实应用场景,想做区块链应用开发,可进一步阅读以太坊系列。

比特币

如果你是还不了解比特币,那就看看比特币是什么

基础入门

接下来可以通过下面这几篇文章了解比特币大概的运行原理:

  • 区块链记账原理
    通过这篇可以了解到区块链是一个怎样的结构

  • 比特币所有权及隐私问题
    通过这篇可以了解到地址私钥 非对称加密应用 等概念

  • 比特币如何挖矿
    通过这篇了解工作量证明

  • 比特币如何达成共识 - 最长链的选择
    通过这篇可以了解共识机制。

补充阅读

  • 什么是拜占庭将军问题

进阶

在基础入门之后,可以进一步阅读以下几篇,理解分布式网络,交易验证。

  • 分析比特币网络:一种去中心化、点对点的网络架构

  • 比特币区块结构 Merkle 树及简单支付验证分析

  • 比特币脚本及交易分析 - 智能合约雏形

看完上面这些,区块链应该理解差不多了,就可以尝试实现一个简单的区块链了。参考这篇用Python从零开始创建区块链。

以太坊

一个技术要落地还得靠应用, 以太坊就这样一个建立在区块链技术之上,去中心化的应用平台。可以阅读几下几篇,这部分以开发为主,需要大家多发时间实践。

  • 以太坊开发入门

  • 智能合约开发环境搭建及Hello World合约

  • 搭建智能合约开发环境Remix IDE及使用

  • 以太坊客户端Geth命令用法-参数详解

  • Geth控制台使用实战及Web3.js使用

  • 如何搭建以太坊私有链

  • 深入浅出以太坊虚拟机

智能合约及应用开发

  • 完全理解以太坊智能合约

  • 程序员如何切入区块链去中心化应用开发

  • 一步步教你开发、部署第一个Dapp应用

  • 一步步教你创建自己的数字货币(代币)进行ICO

  • 实现一个可管理、增发、兑换、冻结等高级功能的代币

  • 如何通过以太坊智能合约来进行众筹(ICO)

  • 剖析非同质化代币ERC721–全面解析ERC721标准

  • Web3与智能合约交互实战

  • Web3监听合约事件

  • 如何编写一个可升级的智能合约

  • 美链BEC合约漏洞技术分析

Solidity语言教程

全面学习Solidity语言可以购买图书:精通以太坊智能合约

  • Solidity 教程系列1 - 类型介绍

  • Solidity 教程系列2 - 地址类型介绍

  • Solidity 教程系列3 - 函数类型介绍

  • Solidity 教程系列4 - 数据存储位置分析

  • Solidity 教程系列5 - 数组介绍

  • Solidity 教程系列6 - 结构体与映射

  • Solidity 教程系列7 - 以太单位及时间单位

  • Solidity 教程系列8 - Solidity API

  • Solidity 教程系列9 - 错误处理

  • Solidity 教程系列10 - 完全理解函数修改器

  • Solidity 教程系列11 - 视图函数、虚函数讲解

  • Solidity 教程系列12 - 库的使用

  • Solidity 教程系列13 - 函数调用

  • 智能合约最佳实践 之 Solidity 编码规范

  • 如何理解以太坊ABI - 应用程序二进制接口

区块链扩容

  • 深入理解Plasma(一)Plasma 框架

  • 深入理解Plasma(二)Plasma 细节

  • 深入理解Plasma(三)Plasma MVP

  • 深入理解Plasma(四)Plasma Cash

钱包开发系列

  • 理解开发HD 钱包涉及的 BIP32、BIP44、BIP39

  • 以太坊钱包开发系列1 - 创建钱包账号

  • 以太坊钱包开发系列2 - 账号Keystore文件导入导出

  • 以太坊钱包开发系列3 - 展示钱包信息及发起签名交易

  • 以太坊钱包开发系列4 - 发送Token(代币)

如可开发一款以太安卓钱包

  • 登链钱包(一款功能强大的以太坊钱包)完全开源

  • 如何开发一款以太坊(安卓)钱包系列1 - 通过助记词创建账号

  • 如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

  • 如何开发一款以太坊安卓钱包系列3 - 资产信息展示

  • 如何开发一款以太坊安卓钱包系列4 - 获取以太及Token余额

  • 如何开发一款以太坊安卓钱包系列5 - 发送转账交易

柚子EOS

  • 什么是EOS

跨链研究

  • 跨链技术的分析和思考

IPFS

  • 站在Web3.0 理解IPFS是什么

  • IPFS 使用入门

FileCoin

  • 1 filecoin概念

  • 2 filecoin通用语言理解

  • 3 filecoin开发网使用

  • 4 filecoin源码顶层架构分析

  • 5 filecoin源码协议层分析之心跳协议

  • 6 filecoin源码协议层分析之hello握手协议

  • 7 filecoin源码协议层分析之存储协议

  • 8 filecoin源码协议层分析之检索协议

  • 9 filecoin源码分析之支撑包分析(1)

  • 10 filecoin源码分析之支撑包分析(2)

  • 11 filecoin源码分析之内部接口层api包分析

  • 12 filecoin源码分析之内部接口层plumbing&porcelain接口

  • 13 filecoin源码分析之服务层actor及vm

  • 14 filecoin源码分析之服务层链同步、共识协议及挖矿

  • 15 filecoin源码分析之节点运行逻辑

其他

  • 理解去中心化 稳定币 DAI

推荐

点击系统学习区块链技术,进入国内极少数的高质量区块链技术博客,不仅有大量免费干货,也输出一些优质的付费内容,更有同时链接数千区块链开发者的各种专项微信群,如有需要欢迎骚扰微信号upchainedu

如果你耐心的读到了此处,深深感谢你对我的时间的尊重!

你可能感兴趣的:(如何系统学习区块链技术-干货来袭)