SegmentFault 技術週刊 Vol.41 - 深刻學習區塊鏈

圖片描述

從比特幣開始

一個故事告訴你比特幣的原理及運做機制linux

這篇文章的定位會比較科普,儘可能用類比的方法將比特幣的基本原理講出來。這篇文章不會涉及算法和協議中比較細節的部分,打算後面會再寫一篇程序員視角下的比特幣原理,那裏會從技術人員的視角對比特幣系統中較爲關鍵的數據結構、算法和協議進行一些講解。

在這篇文章中我會給出一個虛擬的村莊叫「比特村」,整個文章會以講故事的方式,逐步告訴你們比特幣提出的動機、解決了什麼問題以及一些關鍵組件的目標和設計方案。程序員

比特幣入門教程算法

  • 比特幣的原理是什麼?
  • 爲何這個無人管理的體系能夠成功運做?
  • 比特幣交易的流程是怎麼回事?
  • 它與區塊鏈又是什麼關係?

下面,我嘗試回答這些問題,但願幫助你們理解比特幣。拋開技術細節,仍是很容易解釋的。docker

加密貨幣的本質編程

去年,比特幣暴漲,其餘幣也像雨後春筍同樣冒出來,已經有1000多種了。

不少人都在問,加密貨幣(cryptocurrency)的時代,真的來臨了嗎?未來會不會人類再也不使用美圓、人民幣,改用加密貨幣?那麼多品種,我應該使用哪種幣?要不要如今就去投資一些?segmentfault

比特幣白皮書:一種點對點的電子現金系統瀏覽器

本文提出了一種徹底經過點對點技術實現的電子現金系統,它使得在線支付可以直接由一方發起並支付給另一方,中間不須要經過任何的金融機構。

區塊鏈

圖解區塊鏈:14張圖看懂什麼是「區塊鏈技術」?安全

區塊鏈技術是什麼?將來可能用於哪些方面?服務器

我是如何學習區塊鏈的網絡

我學習區塊鏈的目標是很明確的,從大的方面來講,目標就兩個:

  • 一、爲了之後進入區塊鏈開發作技術儲備;
  • 二、爲了能指導我如何投資虛擬貨幣。

那麼,爲了達到這兩個目標,須要學習哪些東西呢?

第一個目標須要學習區塊鏈相關技術,就要知道區塊鏈涉及到哪些技術、區塊鏈的技術原理等;

第二個目標則須要學習虛擬貨幣相關知識,包括須要解決有哪些虛擬貨幣、去哪裏買虛擬貨幣、怎麼買等問題,以及要了解虛擬貨幣將來的前景會如何。

梳理以後,就變成了一個個待解決的問題。

區塊鏈入門教程

下面,我就來嘗試,寫一篇最好懂的區塊鏈教程。畢竟它也不是很難的東西,核心概念很是簡單,幾句話就能說清楚。我但願讀完本文,你不只能夠理解區塊鏈,還會明白什麼是挖礦、爲何挖礦愈來愈難等問題。

使用 Python 一步步搭建本身的區塊鏈

我喜歡在實踐中學習,尤爲喜歡一代碼爲基礎去了解整個工做機制。若是你我同樣喜歡這種學習方式,當你學完本教程時,你將會知道區塊鏈技術是如何工做的。

  • Step 1: 建立一個區塊鏈
  • Step 2: Blockchain 做爲 API 接口
  • Step 3: 運行區塊鏈
  • Step 4: 一致性(共識)

從概念到底層技術,一文看懂區塊鏈架構設計(附知識圖譜)

區塊鏈做爲一種架構設計的實現,與基礎語言或平臺等差異較大。區塊鏈是加密貨幣背後的技術,是當下與VR虛擬現實等比肩的熱門技術之一,自己不是新技術,相似Ajax,能夠說它是一種技術架構,因此咱們從架構設計的角度談談區塊鏈的技術實現。

不管你擅長什麼編程語言,都可以參考這種設計去實現一款區塊鏈產品。與此同時,梳理與之相關的知識圖譜和體系,幫助你們系統的去學習研究。

以太坊

入門

Ethereum 介紹

以太坊是一個全新開放的區塊鏈平臺,它容許任何人在平臺中創建和使用經過區塊鏈技術運行的去中心化應用。就像比特幣同樣,以太坊不受任何人控制,也不歸任何人全部——它是一個開放源代碼項目,由全球範圍內的不少人共同建立。和比特幣協議有所不一樣的是,以太坊的設計十分靈活,極具適應性。在以太坊平臺上創立新的應用十分簡便,隨着Homestead的發佈,任何人均可以安全地使用該平臺上的應用。

以太坊開發入門,完整入門篇

我建議你完整的讀一下本文,從一個較高的層面瞭解一下,而後再挑感興趣的,一一鑽研,也許要花幾天時間哦。

你最後會發現,區塊鏈就是創建在樸實無華的基本技術之上,一點也不神奇。雖然最近各類ICO把它炒得很是熱。每一個人都是站在巨人的肩膀上,若是你是程序員,你能對這些項目和技術,理解得更深。因此不要由於其它一些糟粕,而失去了一個提高本身的機會。

從0開始搭建基於以太坊的區塊鏈開發環境

本文從0開始搭建了以太坊的開發環境,猶如當年初學其餘語言同樣,這是咱們的第一個hellowork程序,在完成搭建後又進行了帳戶建立、挖礦、轉帳等測試。

實操一

實操:如何在私有區塊鏈上編寫、部署以及與以太坊進行交互的智能合約

本文做者以極長的篇幅給出了在私有區塊鏈上編寫、部署以及與以太坊進行交互的智能合約的較爲完整的代碼、相關細節步驟、用戶界面等。做者是但願藉助他這篇文章,你們能夠自行在私有以太坊區塊鏈上編寫並部署一個智能合約。

實操二

以太坊(1) : 在 CentOS 上搭建以太坊私有鏈的步驟(圖文詳細)

  1. 本文章參看以太坊相關資料,經過我的實踐安裝,避免你們走不少彎路
  2. 安裝時確保服務器最低是2G的運行內存,否則可能會安裝不成功!
  3. 本次將介紹如何在CentOS上搭建以太坊私有鏈。

以太坊(2):CentOS下以太坊私有鏈環境下的帳戶管理操做、挖礦、轉帳

如今爲你們介紹在以太坊私有鏈環境下的基本操做。

  1. 帳戶的查看
  2. 挖礦
  3. 轉帳

以太坊(3):CentOS下以太坊私有鏈環境下的智能合約的編寫、編譯、建立與執行

上回咱們作了私有鏈的搭建和簡單的帳戶管理操做、轉帳、挖礦,此次咱們就經過一個很是簡單的智能合約來演示智能合約的編寫、編譯、建立與執行。大概步驟以下:

  1. 經過在線IDE並使用Solidity語言進行一個簡單智能合約的編寫與編譯
  2. 在咱們以前建立的私有鏈環境中建立智能合約(其實智能合約就是所謂的 」鏈上代碼「)
  3. 經過智能合約中的方法進行合約的執行或調用

實操三

區塊鏈開發(零)如何開始學習以太坊及區塊鏈

不少人迷惑於區塊鏈和以太坊,不知如何學習,本文簡單說了一下學習的一些方法和資源。

區塊鏈開發(一)搭建基於以太坊的私有鏈環境

經過本文所述方法和項目中的腳本,咱們能夠快速的搭建好本身的私有鏈進行區塊鏈開發測試,本文基於以太坊技術進行搭建,分兩個部分,一個是Ubuntu下搭建方法,另外一個是Windwos下搭建方法。

區塊鏈開發(二)部署並運行第一個以太坊智能合約

網絡上很多部署智能合約的文章,可是都有一個共同的特色,就是採用命令行的方式來部署,先是創建SOLC的編譯環境,而後部署Geth或者Eth節點,而後一步一步生成錢包、ABI、合約地址進行部署,對初學者來講晦澀難懂並且容易失敗,本文主要介紹如何在圖形化界面下一鍵部署和調用智能合約。

區塊鏈開發(三)編寫調試第一個以太坊智能合約

目前以太坊上支持三種語言編寫智能合約:

  • Solidity:相似JavaScript,這是以太坊官方推薦語言,也是最流行的智能合約語言。具體用法參加Solidity文檔。
  • Serpent:相似Python風格。
  • LLL:相似Lisp風格,目前已經被終止了。

能夠根據不一樣的習慣選擇不一樣的高級語言,目前最流行的是Solidity。本文全部的智能合約均爲Solidity語言編寫。

超級帳本 HyperLedger

區塊鏈的商業應用:超級帳本(Hyperledger)

超級帳本(Hyperledger)是linux基金會下的衆多項目中的一個。是由IBM、因特爾,還有金融公司,GP摩根以及其餘聯合機構於2015年提出來的區塊鏈項目,超級帳本還包括4個框架項目:Sawtooth、Iroha、Fabric、Burrow。其中廣爲人知的是Fabric。當前成員大約140個,其中1/4來自中國,如今中國技術組由萬達、華爲、IBM擔任主要負責,負責中國會員和中國需求的提供,以及推動代碼。

Hyperledger 智能合約開發

本教程能夠指導你着手爲 Hyperledger 編寫智能合約。

  • 部署
  • 如何編寫鏈碼
  • 實現你的第一個鏈碼
  • 與你的第一個鏈碼交互

IBM Blockchain 101:開發人員快速入門指南

這篇 developerWorks 快速入門指南適合不熟悉區塊鏈技術,但願快速開始構建和試驗區塊鏈網絡的應用程序開發人員。文中的簡單操做說明將展現如何設置一個基於開源 Hyperledger Fabric 的 IBM Blockchain 網絡,如何部署鏈代碼(業務規則),以及如何編寫客戶端應用程序來簡化業務流程和數字化交互。

Hyperledger Fabric V1.0 – 開發者快速入門

本文檔演示使用Hyperledger Fabric V1.0來部署一個開發者環境並運行一個簡單例子。文檔包括建立和加入通道(帳本)、客戶端認證以及部署和調用智能合約。CLI將用於建立和加入通道(帳本),NodeJS SDK將用於客戶端身份驗證和使用帳本的智能合約功能。

Docker Compose將用於建立包含三個Peer節點的聯盟鏈、一個獨立的Orderer和一個證書頒發機構(CA)。爲了加快部署進度,預先生成了基於標準PKI實現的加密要素並打包進fabpre.tar.gz。證書頒發機構(CA)負責簽發、撤銷和維護表明一個企業的加密要素,這些要素提供給客戶端(Node SDK)用於身份認證。

Fabric網絡將經過執行docker-compose自動生成,建立通道和加入通道的API將會自動被調用;同時,開發者也能夠經過手動步驟生成本身的Fabric網絡和通道(帳本)或直接使用開發者模式進行應用開發。

Fabric v1.0.5安裝筆記

Solidity 入門

Solidity 簡介

Solidity是一種智能合約高級語言,運行在Ethereum虛擬機(EVM)之上。它的語法接近於Javascript,是一種面向對象的語言。但做爲一種真正意義上運行在網絡上的去中心合約,它又有不少的不一樣。

Solidity 中文文檔——第一章:智能合約入門

先從一個很是基礎的例子開始,不用擔憂你如今還一點都不瞭解,咱們將逐步瞭解到更多的細節。

在Solidity中,一個合約由一組代碼(合約的函數)和數據(合約的狀態)組成。合約位於以太坊區塊鏈上的一個特殊地址。

Solidity 中文文檔——第二章:安裝 Solidity

若是你只是想嘗試一個使用Solidity的小合約,你不須要安裝任何東西,只要訪問基於瀏覽器的Solidity。

若是你想離線使用,你能夠保存頁面到本地,或者克隆一個。

Solidity 中文文檔——第三章:實例篇

  • 實例一:投票
  • 實例二:盲拍
  • 實例三:安全的遠程購物

Solidity 中文文檔——源文件佈局以及合約結構

本節提供您須要瞭解的有關Solidity的全部信息。

更多資源

區塊鏈理論學習入門指南

區塊鏈技術相關的論文、文檔推薦

Gitbook 電子書《區塊鏈技術指南》

HyperLedger Fabric 資料網址大全

騰訊可信區塊鏈方案白皮書

[翻譯]HyperLedger 下一代共識架構提案

本期完
:)


歡迎關注 SegmentFault 講堂服務號 :)

圖片描述

相關文章
相關標籤/搜索