Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android Update - Addresses generation / Authenticator with usernames #167

Closed
Filmaluco opened this issue Jul 1, 2021 · 16 comments
Closed

Comments

@Filmaluco
Copy link

Background

The Android platform has a huge growth potential for Stacks. Currently Android Developers can use the Blockstack Android SDK to develop apps within the Stacks ecosystem. But the SDK is outdated, with no major changes since Stacks 2.0 was launched.

Project Overview

The main goals are to update the Android SDK and release the Circles app.

There's currently no method to generate a Stacks Address (Mainnet or Testnet) and the lookup system still uses the legacy core API "https://core.blockstack.org/". These are breaking changes that have not yet been addressed within the SDK.

This changes would make the release of Circles possible again allowing Android Users to have an authentication system that is compatible with both Android Apps and Web Apps, and supports, again, username registration.

(Circles was a Grants project that is fully open source, you can find the repository at https://github.com/blocoio/stacks-circles-app)

Scope

While Stacks 2.0 brought a lot of new changes and updates we want to target 3 main things:

  1. Migrate to the new API
    We want to update the current lookup system, including migrating from core.blockstack.org to stacks-node-api.stacks.co.

  2. STX Address Generation
    With the help of @friedger, we already have a proof of concept for the STX Address generation in Kotlin. We want to implement a final version, for both Mainnet and Testnet, into the SDK, with a set of tests.

  3. Ability to register stacks subdomains (usernames)

    Give back to Android users the ability to register usernames, so apps like Envelop can again receive new users. Users will be able to register usernames from within the Android Authenticator app Circles.

Since the app Circles will make use of the updated SDK and is open source, we can measure our success if the app itself can:

  • Login with old accounts
  • Login with new accounts
  • Sign-up with
  • Sign-up with the ability to associate usernames within the new Registrar system

Budget and Milestones

Total Grant Request: $2000

Total effort: 1.5 weeks / person

  1. Release new update of the Android SDK (1 week)
    • Migrate to the new API
    • Ability to generate both Mainnet and Testnet STX addresses
  2. Public release of the Circles app (0.5 weeks)
    • Implement ability to register Stacks usernames

Team

The Bloco team, builders of Envelop and Circles:

Risks

With the proof of concept for STX Address generation for Mainnet, there's no high risks. But there's always the chance that, due to some internal Stacks team work, the technical specifications of what we need to do also change.

Community and Supporting Materials

We've built a popular Blockstack app, Envelop, that's fully open-source. And we made contributions to the blockstack-android SDK. We've also hosted a Blockstack Meetup Portugal.

We are also responsible for building and maintaining the Blockstack Auth Android application Circles.

@stx-grant-bot
Copy link

stx-grant-bot bot commented Jul 1, 2021

Thanks for submitting a grant proposal. Our team will review your submission and get back to you.

@stx-grant-bot stx-grant-bot bot added the New label Jul 1, 2021
@friedger
Copy link

friedger commented Jul 1, 2021

Looking forward to it so that OI Calendar can get updated!

@RaffiSapire
Copy link
Contributor

Hi @Filmaluco we are pleased to approve this grant. A couple of asks:

  1. Could you scope out the name registration more?
  2. We suggest start small, look up names, registration could be a feature added in the future. How are you thinking about this?
    Thank you!

@Filmaluco
Copy link
Author

Filmaluco commented Jul 8, 2021

@RaffiSapire

  1. Registration was develop on the Android Authenticator app, as part of another (original) grant.

    When it was developed and launched it was made using the old APIs and before Stacks2.0 new BNS system.

    • we lookup the intended username, using the SDK
    • we validate the username, using the SDK
    • we create and upload the users wallet (with Bitcoin address)
    • we create and upload the users profile (with BTC address)
    • we would register with account profile and its BTC address

    But soon after it became incompatible with the changes to stack addresses.

    We want update the steps using BTC with STX addresses, that (along the API update within the SDK) will allow the registration of usernames again with the app.


  1. We intend to update the look up names within the SDK, registration will also be updated but on the Android Authenticator. Registration as an "added" feature would be in the SDK, but yes it could/would be as a future addition.

@stx-grant-bot
Copy link

stx-grant-bot bot commented Jul 15, 2021

Congratulations. Your grant is now approved. Please complete the on-boarding link here: https://stacks-grant.netlify.app/onboard?q=4f0be1135ea6f4cecac370a285dbd754

@stx-grant-bot stx-grant-bot bot added Sign Contract and removed New labels Jul 15, 2021
@RaffiSapire
Copy link
Contributor

RaffiSapire commented Jul 15, 2021

Thank you! I've updated the grant to approved, please fill this form out?

@ Alex Grabe, one of the grant committee members, had a couple questions, if you want input from him. Even in the scope, I don't see that they are spinning up their own registrar. In the past, the Blockstack Auth would allow name registrations for free as part of the onboarding flow - this is not the case anymore. There’s work need to register names for a new namespace.

This isn't gating, but if you want to chat with him about it join the discord grant channel and chime on in!

Congrats and thank you.

@RaffiSapire
Copy link
Contributor

Hi @Filmaluco - wanted to check to see if you were able to fill out the form?

@Filmaluco
Copy link
Author

@RaffiSapire Yes we filled the form and already talked with Alex Grabe, we are now waiting for the contract/ Docusign agreement.

@Filmaluco
Copy link
Author

@RaffiSapire we are still waiting for the contract/ Docusign agreement.

Release new update of the Android SDK (1 week)

Migrate to the new API
Ability to generate both Mainnet and Testnet STX addresses

"Phase" 1:
Migrate to the new API PR
Ability to generate both Mainnet and Testnet STX addresses

We understand that a few changes might still be needed, but we are now working on Phase 2

Public release of the Circles app (0.5 weeks)

Implement ability to register Stacks usernames

We have already implemented the the ability to register Stacks usernames as well but we found an issue on the generation of the AuthResponses... We think that something changed and we are now trying to find out what, and why.

@Filmaluco
Copy link
Author

@RaffiSapire we are still waiting for the contract/ Docusign agreement, is everything alright?

@RaffiSapire
Copy link
Contributor

@Filmaluco the docusign was sent but never signed, we just resent it. If you have issues please find me on discord to get a response more quickly! @RSAP

@markmhendrickson
Copy link

@friedger @yknl I'm assigning you two as reviewers of the above PRs in the hope you can help get them to approval, then I'll help merge them in 🙏

@sdsantos
Copy link

@RaffiSapire we got the contract now, and it has been signed.

@Filmaluco
Copy link
Author

Stacks Circles Android app is now officially launched!
https://circles.bloco.io/

Apps/Websites using Stacks Connect or the Android Blockstack SDK v0.6.4 or higher, should be able to make use of Circles app to authenticate on Android devices without any problems. However there are some prerequisites at the project repo.
Please help us, install the app, test with your favourite app and let us know about it! You can do this by using our email [email protected] or at our socials (like Twitter @blocoio).

With this I think its safe to say we concluded everything we proposed to do 👍

(there are some prerequisites to ensure the best experience with the app, please make sure you check them out beforehand)

@jennymith
Copy link
Contributor

Amazing work @Filmaluco! So excited to review this with the Grant committee today. Will reach out to you about sharing this news more widely with the community soon :).

@stx-grant-bot stx-grant-bot bot added M1 and removed M1 Disburse labels Sep 1, 2021
@RaffiSapire
Copy link
Contributor

Thanks @Filmaluco, this is awesome! Would love to feature at the next demo day.

If there is anything else you want to expand on this, we're really excited to continue to support you in future grants.

@stx-grant-bot stx-grant-bot bot added Complete and removed M1 labels Sep 3, 2021
@stx-grant-bot stx-grant-bot bot removed the M1 label Oct 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants