1. 程式人生 > >區塊鏈開發基礎知識學習

區塊鏈開發基礎知識學習

隨著區塊鏈的火熱相信很多同學已經躍躍欲試想投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文就基於以太坊平臺,輕鬆帶大家入區塊鏈技術開發應用的大門。
  區塊鏈
  以太坊是什麼
  我們要開發一個區塊鏈應用,如果要從頭開發一個區塊鏈是不現實的,這時我們就需要以太坊這樣的平臺。 以太坊(Ethereum)是一個建立在區塊鏈技術之上的應用平臺。它允許任何人通過區塊鏈技術執行的去中心化應用在平臺中建立和使用。
  對這句話不理解的同學,暫且可以理解為以太坊是區塊鏈裡的Android,它是一個開發平臺讓我們就可以像基於Android Framework一樣基於區塊鏈技術寫應用。
  在沒有以太坊之前,寫區塊鏈應用是這樣的:拷貝一份比特幣程式碼,然後去改底層程式碼如加密演算法、共識機制、網路協議等等(很多山寨幣就是這樣,改改就出來一個新幣)。 對底層區塊鏈技術進行了封裝以太坊平臺,可以直接基於以太坊平臺進行開發讓區塊鏈應用開發者,開發者只要專注於應用本身的開發,從而大大降低了難度。
  以太坊是目前最流行的區塊鏈應用平臺,已經形成了一個較為完善圍繞以太坊的開發生態圈:有眾多開發框架、工具可以選擇。
  智慧合約是什麼
  對區塊鏈稍有了解的同學,肯定約到過這個詞:智慧合約,簡單來說智慧合約就是跑在區塊鏈上的一段程式。
  智慧合約英文是Smart Contract,和人工智慧( AI:Artificial Intelligence )的智慧並沒有什麼關係,智慧合約的概念最早是尼克薩博在95年就提出的,它的概念很簡單,就是將法律條文寫成可執行程式碼。當時並沒有區塊鏈,不過智慧合約與區塊鏈幾乎是天生一對,因為區塊鏈上程式就像法律條文都是按規則執行。
  那如何來編寫智慧合約呢?以太坊上編寫智慧合約官方推薦的語言是Solidity,這個語言大家也許沒有聽說過,不用怕的,如果你對Python 或 Java 有一點點了解,那麼學習Solidity就很簡單。
  然而這樣一段智慧合約程式並不能稱之為一個應用,我們平時看到應用,如微信、微博、知乎等都至少需要有一個和使用者互動的介面以便使用者來進行使用,不管這個介面是APP、Web、還是小程式,區塊鏈應用既然是應用同樣也需要有這樣的互動UI。
  區塊鏈(去中心化)應用
  區塊鏈應用,由於其執行在去中心化區塊鏈網路上,通常稱為去中心化應用程式(Decentralized App)。 去中心化應用程式雖然每個人對它的定義不一樣,通常認為如果一個應用的關鍵(核心)的資料儲存在區塊鏈網路中(不再由一個單一的機構掌握),這樣的應用都可以認為是區塊鏈應用。
  我們可以把區塊鏈理解為一個存取應用資料的不可篡改的分散式資料庫。
  總結
  我們來做一下總結,編寫一個完整的區塊鏈(去中心化)應用,歸納一下就是需要編寫3個部分的程式碼:
  1:編寫智慧合約;
  2: 編寫應用UI;
  3: 編寫UI月合約互動程式碼。
  當然在實際開發過程,我們還會需要非常多的問題,如怎麼搭建開發環境,怎麼進行測試,怎麼部署等等。