IOTA 是一個為了物聯網而設計的開放原始碼分散式賬本技術,為機器提供無需手續費的微交易 (micro-transactions)。
在 IOTA 上,您需要仰賴一個節點 (node) 來發起交易,或是查詢曾經的交易紀錄。但如果我們這樣想,很快就會遇到以下的一些問題:
這樣的使用情境,對物聯網之類的裝置而言,是難以接受的。就像我們不能要求家裡的微波爐儲存著快 100 GB 的分散式帳本, 24 小時上電,就為了達成 fully-synced 這樣的任務。
因此,對於我們週邊的物聯網裝置,合理的使用情境應該是:
所以我們可以將 iota-swarm-node 佈署在便宜的 Arm 開發板上,作為物聯網裝置端微型支付的基礎建設。解釋 iota-swarm-node 之前,我們先看 IOTA 交易是如何連接到 Tangle。IOTA 在發起一筆交易時候,需要在 Tangle 上選擇兩個交易驗證,可以被選的交易,稱之為 tips,如同下列的灰色方塊所示。所以現在我們知道,iota-swarm-node 只需要這些 tips 就可以發起交易了,這些 tip 大概會佔去幾 MB 的空間。
經過上文的解釋, iota-swarm-node 與 full-node 分工就很明白了,分工如下:
full-node
iota-swarm-node
詳細的架構如下圖所示:
順帶一題,iota-swarm-node 採用 dcurl 實現 PoW (proof of work),支援 GPU 加速以及 multi-thread Curl function,在交易的處理上有顯著的效能改善。
以下為 iota-swarm-node 在 Raspberry Pi 3 Model B 上安裝的過程:
sudo unzip -p 2018-03-13-raspbian-stretch-lite.zip | sudo dd of=/dev/mmcblk0 bs=4M conv=fsync
touch ssh /mount_point/boot/
vim /mount_point/boot/wpa_supplicant.conf
Update apt list:
$ sudo apt-get update
Pre-Installation:
sudo apt-get install git
sudo apt-get install python-pip python-setuptools python-dev python3-dev build-essential libssl-dev libffi-dev
Official Python library for the IOTA Core:
$ pip install pyota
Install iota-swarm-node:
您可以隨意將 swarm_node.py 檔案裡的 node 位址換成 light Wallet Servers 上的任意 node,例如:http://cryptoiota.win:14265
$ python examples/send_data.py
在 Asus Tinker board 上的測試結果:
$ python examples/send_data.py