天天看点

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

区块链术涉及面很广,很多开发人员看了一些资料后,感觉似懂非懂。

如何系统的学习区块链技术,是很多想从事区块链开发的程序员的疑问,本文内容有点多,一次吸收不完可以收藏以后再用。

苦口婆心写在前面:

从事区块链开发有很多方向,如:区块链应用开发人员、区块链架构师、底层核心开发、共识算法研究等等。

方向不同,需要学习的内容就不一样,如果基于区块链应用开发,只需要了解一门编程语言(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

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

继续阅读