Slide 1

Slide 1 text

Writing Blockchain Clients in Swift Tamar Nachmany

Slide 2

Slide 2 text

"ܪ"

Slide 3

Slide 3 text

immutable decentralized database

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Ethereum

Slide 6

Slide 6 text

What is Ethereum? iOS App Store Facebook Messenger Alexa Ethereum

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Alamofire of iOS Ethereum Development

Slide 9

Slide 9 text

Cocoapods of iOS Ethereum Development

Slide 10

Slide 10 text

How does an iOS app built on top of the Ethereum blockchain work?

Slide 11

Slide 11 text

iOS Client —Requests data —Requests new transactions —Interprets responses in UI Ethereum Client —Issues RPC to node & interprets responses Ethereum Node —Node containing blockchain

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Thanks to Merkle trees, it is possible to build Ethereum nodes that run on all computers and laptops large and small, smart phones, and even internet of things devices - Vitalik Buterin

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Swift on the Blockchain

Slide 18

Slide 18 text

Swift on the Blockchain —Geth —Go with Objective-C runtime bindings —Parity —Rust with Objective-C runtime bindings —Web3j —Java with Java to Objective-C Translator

Slide 19

Slide 19 text

@interface GethEthereumClient - (GethBigInt*)getBalanceAt:(GethContext*)ctx account:(GethAddress*)account number:(int64_t)number error:(NSError**)error;

Slide 20

Slide 20 text

Swift on the Blockchain —Web3.js

Slide 21

Slide 21 text

Web3.js Frameworks web3 web3-utils web3-eth web3-eth-accounts web3-eth-contract web3-eth-abi web3-eth-iban web3-bzz web3-shh

Slide 22

Slide 22 text

Swift on the Blockchain —Web3.js —React Native —Run on JavaScript runtime

Slide 23

Slide 23 text

Swift on the Blockchain —Web3.js —WebKit

Slide 24

Slide 24 text

Challenges —Language —Go, Rust, JavaScript, Java —Peformance —JavaScript in WebKit —Architecture —JavaScript in React Native

Slide 25

Slide 25 text

Web3.swift

Slide 26

Slide 26 text

Web3.swift web3 web3-utils web3-eth web3-eth-accounts web3-eth-contract web3-eth-abi web3-eth-iban web3-bzz web3-shh

Slide 27

Slide 27 text

Web3.swift web3-uikit web3-universal-login

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

͘Π͢;͜ Tamar Nachmany @tamarshmallows

Slide 31

Slide 31 text

Watch this first Web3.js 1.0 Fabian Vogelsteller Ethereum Foundation Developers Conference http://bit.ly/2HU6sDN

Slide 32

Slide 32 text

Image Credits Slides 1, 14, 16: Mamie Rheingold