淺談DApp(去中心化應用)
—— 區塊鏈技術的落地
章節
- Web時代的分級
- 區塊鏈簡史
- 什麼是DApp(去中心化應用)
- 如何發佈本身的DApp
Web時代的分級
- web1.0: 系統生成什麼,用戶使用什麼(新浪,門戶網站)
- web2.0: 用戶能夠主動獲取並生產內容(google)
- web3.0: 用戶參與的互聯網,用戶擁有本身數據的全部權(區塊鏈)
WEB2.0的弊端
- 2015年5月27日,杭州光纖被挖斷,支付寶大規模宕機
- 劍橋分析公司非法使用9000萬名 Facebook 用戶數據操縱選舉
- 微信QQ只有使用權,沒有全部權
- ……
中心化
區塊鏈簡史
- 2008年10月31日: 中本聰發佈比特幣白皮書
- 2013年底: V神(Vatalik Buterin)發佈以太坊白皮書
區塊鏈時代的分級
- 區塊鏈1.0: 只支持轉帳,財務交易(比特幣)
- 區塊鏈2.0: 可以在轉帳基礎上支持必定複雜度的業務邏輯定製——智能合約(以太坊)
- 區塊鏈3.0: 各類高性能底層公鏈,速度快,支持邏輯複雜(柚子)
區塊鏈核心概念
- 帳戶(Account) 由地址、公鑰、私鑰3部分構成,其中地址至關於用戶名,而公鑰+私鑰至關於密碼
- 交易(Transaction) 兩個帳戶之間的轉帳交易、或者智能合約調用請求
- 區塊(Block) 區塊鏈中的每一個區塊均可能包含多筆交易,類比帳本中的一頁
- 區塊鏈(Blockchain) 區塊鏈中不一樣區塊按被礦工打包的時間前後組織而造成的長鏈
區塊鏈的驅動力——交易(Transaction)
平常生活中,「交易」本質上是指資產全部權的轉移。 區塊鏈中,通過簽名運算,表達價值轉移的過程。html
交易(Transaction)關鍵屬性
- TxHash: 交易流水號
- Block Height: 此交易發生後的打包狀況
- From/To/Value: 說明交易的發起帳戶、接收帳戶,以及轉帳金額(智能合約調用時包含執行函數)
- Gas Limit 表示在交易執行時最多消耗的汽油數量
- Gas Used 表示實際使用了多少汽油
- Gas Price 表示汽油的價格是 0.0000000039 Ether,或者 3.9 Gwei
- Actual Tx Cost 表示實際的轉帳手續費是 0.0000819 Ether
什麼是DApp——去中心化應用
- 應用的數據,分佈式存儲在 區塊鏈 的全部節點中
- 得益於 區塊鏈 的特性,應用的數據公開透明、不可篡改
- 應用的邏輯採用智能合約實現,並部署到 區塊鏈 上
什麼是以太坊?
以太坊網絡本質是 P2P 網絡系統,其用途是發起交易、存儲交易歷史,這裏的交易能夠是轉帳或者是調用智能合約中的方法,而以太坊區塊鏈則是存儲了以太坊網絡上發生過的每筆交易的數據庫前端
如何同以太坊交互——智能合約
智能合約指以太坊網絡上被代碼控制的一個帳戶,不一樣於咱們使用各類錢包軟件 建立的帳戶(由建立帳戶的用戶來控制),智能合約對應的帳戶是由代碼控制的,其餘帳戶(包括智能合約帳戶、普通用戶帳戶)能夠經過交易(Transaction)的方式與智能合約帳戶交互,社區中也會把智能合約帳戶稱爲內部帳戶,而普通用戶帳戶稱爲外部帳戶...git
智能合約關鍵屬性
- balance,即該智能合約帳戶所控制的資產餘額,好比某個抽獎智能合約中獎池的資金
- storage,智能合約的相關數據會存儲在這裏,可粗暴的將其看作是DApp的數據庫,好比抽獎智能合約裏面存儲參與人的地址
- code,智能合約的字節碼,由智能合約源代碼編譯而來,存儲在區塊鏈上方便任何節點接受智能合約的函數調用
智能合約編程語言 Solidity
- Solidity is a contract-oriented, high-level language for implementing smart contracts. It was influenced by C++, Python and JavaScript and is designed to target the Ethereum Virtual Machine (EVM)....
- Solidity 是面向合約的高級智能合約編程語言,其設計受到了 C++、Python、Javascript 語言的影響,運行環境是以太坊虛擬機(EVM)
使用Solidity進行智能合約開發
- 最容易上手——Remix 集成開發環境
- FE最熟悉——更符合前端開發的工做流
Remix 集成開發環境簡介
remix.ethereum.orggithub
前端工做流簡介
github.com/wangshijun/…web
DApp只能依賴區塊鏈嗎?
相關連接:
- 區塊鏈開發入門:從 0 到 1 構建基於以太坊智能合約的 ICO DApp
- 區塊鏈vs.DAG, 區別究竟是什麼?
- 理解Web 3——用戶控制的互聯網
- Remix - Solidity IDE
- Faucet - 以太坊測試帳號充值18 ETH
- Solidity 官網
- metamask - google區塊鏈錢包插件
- 以太坊開發測試網絡列表
Maple