区块链术涉及面很广,很多开发人员看了一些资料后,感觉似懂非懂。
如何系统的学习区块链技术,是很多想从事区块链开发的程序员的疑问,本文内容有点多,一次吸收不完可以收藏以后再用。
苦口婆心写在前面:
从事区块链开发有很多方向,如:区块链应用开发人员、区块链架构师、底层核心开发、共识算法研究等等。
方向不同,需要学习的内容就不一样,如果基于区块链应用开发,只需要了解一门编程语言(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
如果你耐心的读到了此处,深深感谢你对我的时间的尊重!