區塊鏈原理和而發展趨勢

想知道更多關於區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社區】

鏈客,有問必答!

圖片描述
掌握了區塊鏈的原理、發展趨勢及現狀,如今到了真槍實彈演習的時刻了。因爲區塊鏈技術還處在慢慢被人們理解和接受的初級階段,學習資料的匱乏和不完善,加上愛好者們翻譯文檔的水平參差不齊,給區塊鏈技術的初學者,帶來不小的障礙。1web

爲了入門,我也研究過不少資料,看過不少教程,通俗易懂的很少,部分書籍甚至東拼西湊(好比某開發指南),嚴重打擊初學者的積極性,但不管條件多麼困難,都阻止不了一顆熱切的心,隨着開發者們不斷的分享與交流,相信總有一些經驗和知識與別人有關、對別人有用,這也是我寫博的緣由之一。算法

言歸正傳,本文將探討如下幾個問題:編程

一、以太坊與區塊鏈的關係?安全

二、爲何要學習以太坊?網絡

三、什麼是智能合同?架構

四、在開發實戰以前要作哪些準備?app

以太坊(Ethereum)與區塊鏈的關係分佈式

若是把區塊鏈比做傳統互聯網裏的TCP/IP協議,那以太坊就是HTTP;若是把以太坊比做Android,那區塊鏈就是Android Framework;還沒明白? 若是把區塊鏈比做手機,以太坊就是智能手機,這些比喻深究起來未必絕對準確,但對初學者而言,理解概念纔是最重要。工具

要更加透徹地理解區塊鏈和以太坊之間的關係,先回顧一下《小白秒懂區塊鏈》裏的一張圖學習

區塊鏈發展的三個階段

區塊鏈發展的三個階段:1.0數字貨幣(比特幣)——2.0智能合同(以太坊)——3.0高級智能合同、智慧資產。以太坊是目前最穩定、最成熟、並被廣大開發者所追捧的,一個基於區塊鏈架構設計,能夠運行智能合同的系統級應用。

爲何是系統級應用?

早期開發者們開發區塊鏈應用大多複製比特幣源碼進行修改,擴展,開發成本高和侷限性大,直到以太坊的橫空出世,將區塊鏈開發者們的三輪車換成了小摩托,以太坊不只提供了靈活、穩定、成熟、多樣化的開發語言,和完善的工具包,還有一整套從開發到編譯、到部署發佈的完整流程,以致於,一晚上之間(在很短的時間內),衆多基於太坊的應用,代幣如雨後春筍般涌現。用衆星捧月形容以太坊,實不爲過,它的出現,也標誌着區塊鏈技術真正進入了2.0時代。

爲何要學習以太坊?

在當下區塊鏈2.0時代,學習區塊鏈技術就要學習智能合約,而以太坊是智能合約的先祖和標杆,絕不客氣地說,目前學習區塊鏈,就要學習以太坊。(這固然只是爲了表達學習以太坊的重要性)

什麼是智能合約?

智能合約,就是把現實中的合同,程序化,數字化,在陌生的網絡環境中,在毫無信任基礎的狀況下,經過編程,把交易雙方的協議、約束變成可執行代碼,嵌入到數字貨幣中,從而實現價值的轉移和流通,這也是區塊鏈被稱爲價值互聯網的根本緣由。

智能合約,是區塊鏈技術去信任,實現可編程貨幣的關鍵技術。

在開發實戰以前要作哪些準備?

一、開發語言

Solidity是以太坊默認的開發語言,由於和Javascript語言相似。也是目前最受歡迎的和功能豐富的智能合約腳本語言。

Serpent和Python語言相似,在以太坊歷史的早期受歡迎。

LLL(Lisp Like Language)和Lisp相似,也只有在早期使用。它大概是最難用的。

二、開發環境

【運行環境】:EVM(Ethereum Virtual Machine)以太坊虛擬機,是以太坊中智能合約的運行環境,和JVM相似。

【編譯(智能合約)】:初學者推薦使用web編譯器Browser-Solidity Web IDE,固然也能夠本身安裝solc編譯器。

【部署(智能合約)】:把編譯好的合約(字節碼)經過節點以發送交易的形式部署到以太坊區塊鏈上,以太坊官方提供了以太坊錢包(Ethereum Wallet),其實就是一個客戶端,它集成了帳戶管理、挖礦、轉帳、智能合約的部署和執行等等功能,幾乎就是一個強大完善的IDE(開發者工具),固然錢包也集成了EVM,不須要開發者單獨安裝。

【運行(智能合約)】:合約部署以後,當須要調用這個智能合約的方法時只須要向這個合約帳戶發送消息(交易)便可,經過消息觸發後智能合約的代碼就會在EVM中執行了。

【測試(智能合約)】:在以太坊的公共網絡上,進行測試須要帳戶裏有以太幣餘額,開發者能夠經過如下四種方式來進行開發測試,在測試成功以後,再部署到公共以太坊區塊鏈上。

選擇以太坊官網測試網絡Testnet

之因此選擇測試網絡,是爲了更容易得到免費的以太幣,以便測試,美中不足的是須要發很長時間進行節點初始化。

使用私有鏈

咱們能夠搭建屬於本身的以太坊,甚至取名叫太太坊也無所謂,專門用來開發、調試和測試智能合約,

使用開發者網絡(模式)

在開發者網絡(模式)下,系統會自動分配一個有大量餘額的開發者帳號給咱們使用。

使用模擬環境

使用testrpc來建立測試網絡,testrpc是在本地使用內存模擬的一個以太坊環境,對於開發調試來講,更方便快捷。testrpc在啓動時能夠幫咱們建立10個存有必定餘額的測試帳戶。

三、開發工具

若是你使用的是Mac,除了以太坊錢包這一必不可少的開發工具以外,在咱們搭建、配置開發環境的過程當中,對於初學者而言還有一件利器——Homebrew,它能夠一鍵幫你安裝好全部缺失的軟件包。

注意:以太坊錢包Ethereum Wallet在安裝的過程當中,能夠選擇以太坊官網測試網絡Testnet的選項。

最後,科普一下Dapp(去中心化的應用程序或分佈式應用程序)

Dapp是什麼?

1、運行在分佈式網絡上;

2、參與者信息被安全存儲,隱私獲得很好的保護;

3、經過網絡節點去中心化操做。符合這3個條件的應用能夠認爲是一個去中心化應用。

Dapp三個特徵:

1、程序開源,數據加密保存在公開且去中心化的區塊鏈上。

2、應用必須經過標準算法來生產代幣,代幣根據應用須要使用,提供貢獻的用戶都應該得到代幣獎勵。

3、根據市場反饋改進,必須由多數用戶一致贊成。

在太坊社區裏,把基於智能合約的應用稱爲去中心化的應用程序或分佈式應用程序。

好了,知己知彼,百戰不殆,掌握了這些基礎知識,以太坊實戰演習將要開始了。

做者:葉先生的魚連接:https://www.jianshu.com/p/77e...:簡書簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。

相關文章
相關標籤/搜索