iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
2
Blockchain

Smart Contract 開發 - 使用 Solidity系列 第 2

開發智能合約 - 交易 (Day02)

交易

在區塊鏈的世界需要保存任何資料時,需要產生一筆交易 (transaction),裡面包含了當下的狀態及資訊,等一段時間後,才由礦工批次處理,寫入一個區塊中。所以區塊裡面可以記錄多筆交易紀錄。

如下圖所示,可以看到編號 6000000 的區塊裡存了 101 筆的交易。

https://etherscan.io/block/6000000

將所有交易攤開一起看,就像是一個大型的賬本。如下圖所示,From 是指支出方和 To 則是指收款方,Value 則是指金額。

https://etherscan.io/txs?block=6000000

由於區塊鏈是以去中心化為基礎,所以每個區塊鏈中的節點,都保存相同的副本,所以又稱為分散式賬本 (Distributed ledger)。你可以暫時把節點想像成礦工的電腦,會比較好理解。

分散式賬本:https://en.wikipedia.org/wiki/Distributed_ledger
網路節點:https://wiki.mbalib.com/zh-tw/%E7%BD%91%E7%BB%9C%E8%8A%82%E7%82%B9

常見交易有三種

1. 一般轉帳交易

一般轉帳交易是最常見的交易類型,例如從 A 帳戶轉錢至 B 帳戶,如下圖所示:

https://etherscan.io/tx/0x5b0050024e244e5ca0a5bf1dc49d8874dc1c73a067d9d11f84be53b54f59438a

此筆交易總共轉了 4.95 Ether (1,115.09 USD),轉帳手續費是 0.00042 Ether (0.09 USD)。如果我們來拿跟一般銀行國際電匯來比較,計算方式如下:

匯出匯款
* 手續費:每筆按 0.05% 計收,最低 NT $100,最高 NT $800。
* 郵電費:一般匯款每筆 NT $300。
* 總計 100 + 300 = NT 400
匯入匯款
* 每筆按 0.05% 計收,最低 NT $200,最高 NT $800。
* 總計 NT 200

整筆交易銀行抽了 600 NT

但如果透過以太幣,卻只要大約 3 塊台幣,現在你應該可以感受到加密貨幣的魅力了。

Ether 是以太幣的一種貨幣單位

2. 發佈智能合約的交易

當要發布智能合約時,會將程式進行編碼寫入至交易的 inputData 值中。如下圖所示:

https://etherscan.io/tx/0x7c03009d52ec50069adb4311d5225fe2249ce5afb3a9951af258f0f680efb19a

從上面的連結點進去,還可以看到發佈的原始碼。

https://etherscan.io/address/0x952c9a569725d4cb710c69184e5eb8f56d6b8bd6

3. 呼叫智能合約的函示,所產生的交易。

你甚至可以看到它所呼叫的函示 (function) 名稱

https://etherscan.io/tx/0xea55aae509250286c601c22b5b6090f5c985b1d11d3cdc6ea00b919bc4641ad2

補充:Etherscan 是什麼?

它是一個網路服務,允許你透過網頁瀏覽和搜索以太坊區塊鏈上的資訊,查看在以太坊上發生的所有活動資訊。

常見用途:

  1. 查看ETH錢包餘額
  2. 查看交易狀態
  3. 查看帳戶資料

etherscan:https://etherscan.io/

小結

讀完此篇後,你了解區塊鏈所說的交易是指什麼,並懂得用 tx-hash 在 etherscan 上查詢詳細的資訊。


上一篇
開發智能合約 - 序 (Day01)
下一篇
開發智能合約 - 區塊 (Day03)
系列文
Smart Contract 開發 - 使用 Solidity31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言