200行代碼實現一個最小化可工做區塊鏈,1500行代碼實現一個加密貨幣網絡系統。若是此次你還不能理解區塊鏈是怎麼回事的話,你打我!若是理解了,你打賞我,github項目右上方給我打個星,Star一下以示鼓勵!git
本教程將帶領你們從零開始開發一套可行的加密貨幣系統。開發的基本原則就是儘可能的簡單易懂。github
咱們打造的這個項目的名稱叫作Naivecoin。 用的開發語言是Typescript。總共分爲六個章節。你們能夠選擇相應的分支進去查看相應的代碼。瀏覽器
若是你只是對區塊鏈的實現原理感興趣,那麼你只須要看第一章就足夠了,代碼至關的簡單,只用200行的代碼就能讓你一窺區塊鏈的全貌。網絡
這一章節中,咱們會用200行左右的代碼實現一個簡單但五臟俱全的區塊鏈,並引領你們理解區塊鏈的基本原理。區塊鏈
本章節咱們將會在咱們的玩具版區塊鏈的基礎上加入工做量證實(POW)的支持。在第一章節的版本中, 任何人都均可以在沒有任何工做量證實的狀況下添加一個區塊到區塊鏈中。 當咱們引入工做量證實機制以後,一個節點必需要解開一個有至關計算量的拼圖(POW Puzzle)以後,才能往區塊鏈上添加一個新的區塊。而去解開該拼圖,一般就被稱爲挖礦。加密
本章咱們將引入加密貨幣中的交易機制。有了交易這個機制以後,咱們的區塊鏈將會從一個只有基本功能的區塊鏈華麗轉身成一個加密貨幣系統。 最終咱們就能經過指定目標用戶的地址,和對應的用戶進行加密貨幣交易。教程
本章節咱們將實現一個未加密的錢包功能以進行簡單的交易。ip
上一章節中,咱們要給一筆交易記帳的話,必須本身手動進行一次挖礦,纔會把交易記錄加到一個區塊裏面去。 這一章節中,咱們將會引入未決交易中繼的機制。有了這個機制以後,咱們要進行一筆交易的時候,就不須要本身動手挖礦,而是將本身的交易發送到咱們的區塊鏈網絡中去(即中繼傳遞的概念),由其餘節點在挖礦以後,將咱們的交易記錄加到他們挖出的新的區塊中去。其中這些交易就被稱之爲「未決交易」。一個典型的例子就是,當一個用戶想要發起一筆交易(把必定數量的幣發送到指定的地址),他會把這筆交易廣播到整個網絡,並但願其餘礦工把該筆交易放到區塊中去。開發
本章節咱們將爲咱們的區塊鏈實現一個錢包管理界面和一個區塊鏈瀏覽器。get
本文由天地會珠海分舵編寫,轉載需受權,喜歡點個贊,吐槽請評論,如能給Github上的項目給個星,將不勝感激.