1. 程式人生 > >基於以太坊的Dapp開發學習心得(一)

基於以太坊的Dapp開發學習心得(一)

一. 以太坊介紹

  1. 學習內容包括三部分:智慧錢包的使用,智慧合約Solidity和truffle框架,IPFS分散式儲存
  2. 以太坊:是一個開源的有智慧合約功能的公共區塊鏈平臺,通過其專用加密貨幣以太幣提供去中心化的虛擬機器來處理點對點合約。
  3. 智慧錢包:類似於區塊鏈中的賬戶地址,可以用Chrome的外掛MetaMask來管理賬戶。該網址:https://www.myetherwallet.com/ 可以建立錢包地址,不同的開發環境會有不同的幣獲取方式
  4. IPFS:點對點的分散式超媒體分發協議,用基於內容的定址代替傳統的基於域名的定址,不需要關係伺服器的位置,不用考慮檔案傳輸的名字和路徑。將一個檔案放到IPFS節點中,將會得到基於其內容計算出的唯一的加密hash值。可以通過
    http://ipfs.io/hash
    獲取IPFS網路中的內容
  5. Solidity:是智慧合約開發的語言,類似於nodejs,智慧合約可以理解成區塊鏈的資料庫儲存觸發器。可以通過某些事件的發生來觸發區塊鏈中內容的儲存,自身也可以儲存一些簡單的資料

二. IPFS的安裝

  1. IPFS包下載,下載網址:https://ipfs.io/,選擇Download go-ipfs版本
  2. 下載後,解壓安裝

    tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz
    cd go-ipfs
    mv ipfs /usr/local/bin/ipfs  將解壓的資料夾中的ipfs檔案移動到/usr/local
    /bin/ 資料夾中
  3. 建立ipfs節點

    cd ~/.ipfs
    ipfs init
    cd ~/.ipfs
    open ./
  4. 修改節點預設儲存空間
    ipfs init執行後,會在根目錄生成一個.ipfs的資料夾儲存節點資料,ipfs預設儲存空間為10G

    export EDITOR=/usr/bin/vim
    ipfs config edit 會開啟一個檔案,將檔案中的StorageMax:10GB改成2或者其他,退出即可
  5. 檢視節點id:ipfs id

  6. 啟動節點伺服器: ipfs daemon
  7. 跨域資源共享CORS配置,ctrl-c 退出ipfs

    ipfs config --json API.HTTPHeaders.
    Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]' ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'
    1. 驗證
    啟動伺服器 :ipfs daemon
    新建終端後執行:ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme

三.以太坊錢包的安裝

  1. 通過Chrome下載MetaMask外掛來匯入建立的個人錢包
  2. MetaMask外掛包含的環境如下:MetaMask工具
  3. 其中Localhost8545需要自己建立
  4. 第一個是正式的以太坊環境,第2,3,4個是測試環境,後面是本地環境
  5. 測試幣獲取的方法

    Kovan Test Networkhttps://gitter.im/kovan-testnet/faucet 通過@epheph 加上錢包地址,可以獲得以太幣  
    Ropsten Test Network: 點選購買,就可以獲得測試幣,點選一次可以獲得一個
    

四.智慧合約的環境配置

PS:下一章將總結一下:truffle框架和Solidity語言