Blockstack on iOS
Topic: Discussion of what Casa has been doing on iOS and potential avenues of exploration for implementing Blockstack Browser and Core API on iOS.
Casa’s work on Blockstack iOS
Casa created a CocoaPod Core API library and an alpha of a Blockstack Browser app for iOS.
How to provide Blockstack Core API and Storage functionality on ios
Where will the Blockstack API endpoint run: on the local device or in the cloud?
We discussed the different areas of functionality provided by the Core API:
- Name lookup will probably always in be in the cloud for energy constrained devices
- Name registration logic currently needs to be on device because core handles the user’s private keys: this could change if we move to a templating paradigm for Core where the Core node generates bitcoin transaction templates that can be signed on the user’s device before being broadcast to the network.
- Storage currently needs to be on device because the core node has full read/write access to the user’s storage provider. If we move to the S3-based api paradigm we’ve discussed where each app gets its own storage keys, this becomes less of a problem - apps could directly read and rate to their own datastore with their keys.
We have two types of apps that need to work on iOS:
- Native apps
- Browser-based apps
Browser based apps need access to a localhost api endpoint to interact with blockstack so need to have a local server running for this to be possible.
Native apps can use the Swift API - it’s not critical that a local server be available.
Network Extension + DNS extension: The network extension could intercept calls to the API endpoint and spin up the server
App Extension - @jorge suggests possibility of using an action extension
@jorge will take a stab at a proof of concept NetworkExtension that detects requests to a core api endpoint and spins up a server to respond to the requests.
@jeremyrwelch will send out an invite for a follow up meeting on Tuesday, August 8, 2017 @ 12:00pm ET which will include Casa’s iOS developer.
See our earlier discussions about Blockstack on mobile here: Blockstack on Mobile