2018-05-24 Developer Products Engineering Meeting


#1

Date/Time: 2018-05-24 @ 13:15 UTC / 09:15 EDT / 21:15 HKT
Click here to convert to your time zone
Length: 30 minutes
Meeting link: https://zoom.us/j/966890423

This meeting is for issues around our developer-facing products such as the blockstack.js and the mobile SDKs.

Agenda

Please reply to this forum post with items you would like included on the agenda.

Each item should include:

Item name
Background information: Links to github issues, forum posts, etc with background information on the item
Desired outcome: what decision or deliverable would you like from the discussion of this topic at the meeting?

We’ll save ~10 minutes or so for community questions or comments at the end of the meeting.


#2

Item name: Blockstack SDK Encryption
Background information:

  1. https://blockstack.github.io/blockstack.js/#encryptcontent & https://blockstack.github.io/blockstack.js/#decryptcontent
  2. https://github.com/blockstack/blockstack-ios/issues/11
  3. https://github.com/blockstack/blockstack-ios/issues/22

Desired Outcome:

  1. The public API page for the regular Blockstack API mentions the functions encryptContent and decryptContent, but I’ve never come across these in the code–we’re calling encryptECIES and decrpytECIES in Stealthy instead. Do these methods exist somewhere that I missed or should this documentation be updated?
  2. I’m seeing the iOS javascript environment bail when I call encryptECIES through swift with this: some(“TypeError: null is not an object (evaluating \’this.rand.getBytes\’)“). Basically, rand is set to null for some reason in the underlying blockstack.js code. I’ve documented the issue further here (screencaps and traced it down to the failing code)
  3. Stealthy uses the getPublicKeyFromPrivate for each user to generate the app public key, allowing users to interact with eachother with encrypted messages. As far as I know, the sign in user data does not include this public key (it includes the user’s blockstack public key, but not the user’s app public key).
    The Keys Swift class features this method and we need to expose that to Objective C for our integration with React Native.

#3

It says Invalid meeting ID?


#4

Thanks - investigating. Looks like that zoom account doesn’t exist anymore.


#5

Item name: Making Relations between user data.

Desired outcome:

I’m building a custom blockchain as an aggregator server to keep relations for my blockstack app, without any PoW or something. It’s pretty simple and clients can add data through websocket. Is sounds good to you?
my question is, how can I make sure it is the user who logged in. what is the proper route to the developer for this case?

My solution works without any PoS of PoW integration. It’s pretty simple and clients can add data through websocket.


#6

Attendees

  • Larry
  • Thomas
  • Ken
  • Hank
  • mehmetkose
  • Aaron
  • Jude
  • Robert Bo Davis
  • TN
  • Justin
  • Jeff
  • Shankar

Gaia decentralization options & replication

Raised by Justin
(see related notes from consumer products engineering meeting on same day here: 2018-05-24 Consumer Products Engineering Meeting)

  • Ability to choose storage: Aaron agrees we need this
  • Data replication: complexity makes it a question if it is something we want to attack in the short term

Relevant Github issue: https://github.com/blockstack/gaia/issues/102

Justin: replication solves the decentralization question - no single point of failure

Jude: what about a primary writer, with secondary replication

  • Aaron: this could be implemented in the client-side (blockstack.js), without too much difficulty — you’d read the additional hubs out of the apps dictionary in the profile.
  • This would also let us surface errors in the client

Blockstack SDK Encryption

  1. The public API page for the regular Blockstack API mentions the functions encryptContent and decryptContent, but I’ve never come across these in the code–we’re calling encryptECIES and decrpytECIES in Stealthy instead. Do these methods exist somewhere that I missed or should this documentation be updated?

Answer: We believe we have never exported encryptECIES as part of the public API - encryptContent is the public API method that developers should use.

  1. iOS encryption is not working. When building tests for iOS encryption, we should generate test data from blockstack.js

  2. Expose getPublicKeyFromPrivate to developers in iOS: https://github.com/blockstack/blockstack-ios/issues/22

Making Relations between user data.

Raised by mehmetkose

There needs to be an open source and configurable indexing service.

Blockstack search endpoint does something similar to this.

We should consider speccing out a generic solution to this. Tracking issue: https://github.com/blockstack/gaia/issues/117


User-Selected Storage
#7

@Jude – want to write up a proposal on the forum for doing simple replication in blockstack.js and I’ll start a proposal post for the generic search/indexing service?


Proposal: Replication Strategies in blockstack.js
User-Selected Storage
#8

Added: Proposal: Replication Strategies in blockstack.js