Pyethapp

  • 接觸 Ethereum 網路的工具
  • 架構
  • 基本操作

接觸 Ethereum 網路的工具

  • Go 語言實作
  • 專案安全性要求嚴格
  • 作為官方錢包 Mist 的底層
  • 適合作為前端開發的接口

Geth

Eth

  • C++ 語言實作
  • 搞平行運算、搞效能的
  • 搞 GPU 挖礦

pyethapp

  • Python 語言實作
  • 要求可讀性的專案
  • 適合學術研究或 hack 自己的鏈
  • 最歡迎外人貢獻

pyethapp 架構

pyethereum

pydevp2p

p2p 網路的函式庫

核心函式庫
區塊鏈、Ethereum 虛擬機、挖礦

管理帳號、送交易、做應用

基本操作

指令列

pyethapp run --console

指令列會跳出 ipython 界面

背景會慢慢尋找網路中的節點並下載區塊

eth 物件

所有的功能都躲在它底下

觀察區塊鏈

  • 觀察區塊
  • 看看長輩
  • 看看 header
  • 看一筆交易
  • 看看某個地址餘額

觀察節點

  • 觀察現在有幾個 peer
  • 停掉一些 peer

建立帳戶

$ pyethapp account new --uuid # 創建帳號
$ pyethapp account list # 列出帳號

做筆交易吧

In [12]: acc_service = eth.services.accounts
In [13]: acc_service.accounts
Out[13]: [<Account(address=80705c7633fa7dcc6e92438f8af1d5a87bf9545c, id=None)>]

# 檢查是否帳號鎖住

In [15]: acct = acc_service.accounts[0]
In [18]: acct.locked
Out[18]: True

# 輸入密碼解鎖

In [9]: from getpass import getpass
In [10]: pw = getpass()  # 避免密碼直接key 出來
    Password: 

In [21]: acct.unlock(pw)

In [22]: acct.locked
Out[22]: False

#送出交易
tx = eth.transact('80705c7633fa7dcc6e92438f8af1d5a87bf9545c', value=100)
Made with Slides.com