1. 程式人生 > >如何系統學習區塊鏈技術-乾貨來襲

如何系統學習區塊鏈技術-乾貨來襲

區塊鏈術涉及面很廣,很多開發人員看了一些資料後,感覺似懂非懂。
如何系統的學習區塊鏈技術,是很多想從事區塊鏈開發的程式設計師的疑問,本文內容有點多,一次吸收不完可以收藏以後再用。

苦口婆心寫在前面:
從事區塊鏈開發有很多方向,如:區塊鏈應用開發人員、區塊鏈架構師、底層核心開發、共識演算法研究等等。
方向不同,需要學習的內容就不一樣,如果基於區塊鏈應用開發,只需要瞭解一門程式語言(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

如果你耐心的讀到了此處,深深感謝你對我的時間的尊重!