狠狠撸
Submit Search
在 Kotlin/Android 使用 Ethereum Smart Contract
?
Download as PPTX, PDF
?
5 likes
?
1,105 views
Yenwen Feng
Follow
在 Kotlin/Android 使用 Ethereum Smart Contract
Read less
Read more
1 of 30
Download now
More Related Content
在 Kotlin/Android 使用 Ethereum Smart Contract
1.
在 Kotlin/Android 使用 Ethereum
Smart Contract 馮彥文 tempofeng@gmail.com http://m.me/tempofeng https://medium.com/@tempofeng
2.
Agenda ? Ethereum 乙太幣,Smart
Contract 智慧合約,Solidity ? 不信任的环境下的好处 ? EtherSpace ? A Retrofit-like Ethereum client for Android, Java, and Kotlin
3.
Ethereum 乙太幣 Smart Contract
智慧合約 Solidity
4.
什麼是 Blockchain 區塊鏈?
5.
Blockchain 區塊鏈 ? 去中心化的分散式資料庫 ?
運行在不被信任的 node 節點上 ? 每個節點皆儲存且驗證資料的正確性來獲得獎勵 ? 已經存入的資料不可更改 ? 用戶/錢包 ? private key ? public address ? 所有對 Blockchain 的操作都會簽章
6.
什麼是 Ethereum 乙太幣? ?
可以執行程式(智慧合約)的區塊鏈系統 ? 節點(礦工)驗證程式與交易的正確性 ? 第二大的虛擬貨幣經濟體 ? 最多人使用的智慧合約區塊鏈 ? 每次執行智慧合約需要付費給節點(礦工),稱為 gas
7.
Ethereum 與 Blockchain 呼叫
Smart Contract 節點執行 Smart Contract
8.
什麼是 Smart Contract
智慧合約? ? 智慧合約在 Ethereum 不是合約,是一段程式 ? 在不信任的節點上的 EVM 執行,所有資訊都是公開的 ? 執行結果的 log 會被合併進 Block 區塊 ? 合約不可更改 ? 只有 Address,沒有 Private Key ? 使用 Solidity 為程式語言
9.
什麼是 Solidity? ? 以太幣的智慧合約語言 ?
類似 Javascript ? Type-Safe ? 物件導向 ? 執行在 EVM 之上
10.
Solidity 範例
11.
Solidity 範例
12.
Solidity 範例
13.
什麼是 Ethereum Virtual
Machine (EVM)? ? Ethereum Smart Contract 的執行環境 ? Sandbox 環境,沒辦法存取外界資訊,如時間,網路,...
14.
AWS Lambda 與
EVM 比較 AWS Lambda EVM 執行環境 Java, Javascript, … Solidity 執行速度 快 超級慢(每秒 20 筆) Scalability 根據流量擴充 單執行緒般 信任 可信任的環境(Amazon) 在不信任的環境
15.
不信任的环境下的好处
16.
不信任的环境下的好处? ? Ethereum 是不信任的環境,完全公開的資料,資料不可修改 ?
反而造成程式與資料可以被信任 ? 參與者可以達到共識
17.
什麼環境是參與者互相敵對不信任? ? 毒品 ? 對方是否為臥底? ?
轉帳是否為假錢? ? 賭博 ? Random number 怎麼產生? ? 莊家是否有特別照顧某一方?
18.
在信任的環境下,智慧合約可以用在哪裡? ? 虛擬貨幣 ? 交易所 ?
中心化 vs 去中心化 ? Programmable Money ? 選擇權 ? 投票 ? 新組織 Decentralized autonomous organization ? Incentive
19.
在信任的環境下,智慧合約可以用在哪裡? ? 供需關係 ? 礦工
vs 使用者 vs ... ? filecoin: https://filecoin.io/ ? 資料保存 ? 收集品 ? 遊戲角色 ? cryptokitties: https://cryptokitties.co
20.
在信任的環境下,智慧合約可以用在哪裡? ? Hybrid Application ?
On-chain vs Off-chain ? 追求最小程度信任
21.
EtherSpace
22.
如何在 Java 環境下呼叫
Ethereum Smart Contract? ? Web3j ? https://github.com/web3j/web3j ? Codegen ? solidity → java file ? EtherSpace ? https://github.com/Wraecca/etherspace-java ? Retrofit style ? 推薦使用!
23.
如何使用 EtherSpace?
24.
如何使用 EtherSpace?
25.
如何使用 EtherSpace?
26.
EtherSpace 的 Smart
Contract 設定 ? Annotation ? @Call ? 不會變更 Smart Contract 內容的 Transaction 的呼叫 ? 與一般 RPC 相同,速度快 ? @Send ? 會變更 Smart Contract 內容的呼叫 ? @Gas ? 設定交易所需的 Gas
27.
EtherSpace 的 Smart
Contract 設定 ? Solidity ? Java Data Types ? https://github.com/Wraecca/etherspace-java/wiki/Smart-Contract-Interface
28.
EtherSpace 範例 ? Java ?
https://github.com/Wraecca/etherspace-java/tree/master/etherspace-java- example ? Android ? https://github.com/Wraecca/etherspace-java/tree/master/etherspace- android-example
29.
EtherSpace 使用情境 ? Server-side ?
使用固定的 Private Key 呼叫 Smart Contracts ? Android ? 提供用戶錢包功能 ? DApp 開發不應該承受這個風險 ? 錢包與 DApp 分離(MetaMask 方式) ? Future Work!
30.
Thank You!
Download now