2018年9月19日 星期三

在 AWS Lambda 執行 web3.py

這篇要紀錄想要在 AWS Lambda 上執行 web3.py 之前需要先做的準備。因為 web3.py 用了一些 C/C++ 編譯的函式庫,因此必須要事先準備好能夠在 AWS Lambda 上執行的編譯後結果。主要步驟也可以參考 [2-3]。

2018年9月14日 星期五

在 Sonatype Nexus 2 上設定 HTTPS

之前一直用 HTTP,但覺得 HTTP 很不安全,所以趁著這次升級 Sonatype Nexus 的時候,一併來實驗啟用 HTTPS。

2018年9月6日 星期四

使用 Python 存取 Ethereum:透過 web3.py

想要透過 Python 存取 Ethereum,從 Ethereum 官方的 Github 中可以看到有兩種套件可以達成:web3.py [1] 和 pyethereum [2]。就我目前的理解來說,兩者的差別在於 web3.py 主要是作為外部存取 Ethereum 的客戶端,也就是說 web3.py 函式庫本身不會成為區塊鏈節點,也不會進行區塊鏈同步,而是連接一個區塊鏈上的節點,把區塊鏈當成像是外部資料庫一樣取用而已;而 pyethereum 則比較像是 geth 那樣,是用來把自己做成一個區塊鏈節點,會正常進行區塊同步,也可以作為礦工開始挖礦。

在本篇當中,因為是想要一個輕量級的客戶端來與區塊鏈互動,並不想要準備龐大的儲存空間來存放區塊鏈的資料,因此會以 web3.py 為主。

在 Java 存取 Ethereum 區塊鏈:透過 ethereumj

嗯…標題寫是這樣寫啦,不過其實因為實驗到一半就終止了,因此這篇其實只是留下一點點紀錄而已,並不會真的有完整的範例和說明。

(書籤) Ethereum 的 light client protocol

在一般情況下,Ethereum 的客戶端都需要一定程度地下載區塊鏈上的資料,並在自己的本地端開始驗證、組成現在的狀態
能做的選項頂多也就是 full client 跟 fast sync 的差別。
不過在有 light Client [1] 的情況下就不同了,Light Client 的目的是避免同步 block 的需求,改為去問網路上的其他 client。
但至少到目前為止,light client 還不是一個完全準備好的協定,所以也不是所有 client 都能支援它(雖然說 geth 和 parity 都支援了)。

參考資料
  1. Light client protocol
  2. ethereumj - Add "light client" support