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

Ledger Nano S Hardware Wallet Support #1340

Open
14 of 34 tasks
ryanRfox opened this issue Sep 26, 2018 · 22 comments
Open
14 of 34 tasks

Ledger Nano S Hardware Wallet Support #1340

ryanRfox opened this issue Sep 26, 2018 · 22 comments
Labels
1b User Story The User Story details a requirement. It may reference a parent Epic. It may reference child Task(s) 2a Discussion Needed Prompt for team to discuss at next stand up. 3a Request Classification (default) which does not fit as a Feature, Enhancement or Bug. Core Team to evaluate 6 Security Impact flag identifying system/user security 6 UX Impact flag identifying the User Interface (UX)

Comments

@ryanRfox
Copy link
Contributor

ryanRfox commented Sep 26, 2018

User Story
As a Ledger Nano S user I want an implementation to support BitShares accounts so that I may safely store my private keys, sign transactions and submit them to the network.

Additional Context

CORE TEAM TASK LIST

  • Evaluate / Prioritize Feature Request
  • Refine User Stories / Requirements
  • Define Test Cases
  • Design / Develop Solution
    • Initial Research:
    • Phase I: Implementation of Nano app and basic developer utilities
      • Device side: Nano app
        • Assigned: @christophersanborn
        • Estimated: between 40 and 80 hours for this component
        • Remittance: 10 hours in Weeks 48-49
        • Remittance: 15 hours in Weeks 50-51
        • Remittance: 36.5 hours in Weeks 1-5
        • Remittance: ?? hours in Weeks 6
        • Remittance: ?? hours in Weeks 7-8
      • Host side: Nano App
        • Assigned: @marcialvieira
        • Estimated: between 40 and 60 hours for this component
        • Remittance: 24 hours in Weeks 1-5
        • Remittance: ?? hours in Weeks 6
        • Remittance: ?? hours in Weeks 7-8
      • Phase II: User interface
        • Primary Goal: A connector for Beet support.
        • Primary Goal: A standalone GUI app for the Ledger app store providing basic wallet functionality
        • Secondary: Integration into cli_wallet
        • Secondary: Documentation and initial interface code for bitshares-ui team to use
  • Perform QA/Testing
  • Update Documentation
@ryanRfox ryanRfox added 1b User Story The User Story details a requirement. It may reference a parent Epic. It may reference child Task(s) 2a Discussion Needed Prompt for team to discuss at next stand up. 3a Request Classification (default) which does not fit as a Feature, Enhancement or Bug. Core Team to evaluate 6 Security Impact flag identifying system/user security 6 UX Impact flag identifying the User Interface (UX) labels Sep 26, 2018
@ryanRfox ryanRfox added this to New -Awaiting Core Team Evaluation in Project Backlog via automation Sep 26, 2018
@christophersanborn
Copy link
Member

christophersanborn commented Nov 10, 2018

@marcialvieira and I would like to take a crack at this one. @ryanRfox

@clockworkgr
Copy link
Member

@marcialvieira and I would like to take a crack at this one. @ryanRfox

fuck yeah!

It shouldn't be TOO hard if you use the EOS one as a starting point...I would've tried it myself but i'm not a C/C++ coder.

@christophersanborn
Copy link
Member

It shouldn't be TOO hard if you use the EOS one as a starting point...I would've tried it myself but i'm not a C/C++ coder.

Nice! I actually didn't realize there was progress already being made on the EOS front. Yes, that should definitely help ensure smooth sailing!

@christophersanborn
Copy link
Member

Adding a task for myself:

  • Do ten hours of immersive background research on the Ledger Nano S libraries and developer docs, to include, if possible compiling and loading the device components of one or both of the two wallets linked above, in order to identify which problems remain to be solved to get a BitShares app running.

@oxarbitrage
Copy link
Member

@christophersanborn I think that is reasonable.

@christophersanborn
Copy link
Member

Declaring the first task, "Do ten hours of immersive research" to be complete. Specific products of this research are:

  • Various discussions and information posted to the Telegram group dedicated to the developers on this task.
  • Transcripts of successful interaction between host and Nano S using ledger-app-eos as an example.
  • Familiarity with codebase in ledger-app-eos, (a logical starting point for the Bitshares Ledger app).
  • Forked repository in christophersanborn/ledger-app-bitshares (forked from ledger-app-eos)
  • Five initial issues in that repository to guide initial development efforts of ledger-app-bitshares.

Tagging: @ryanRfox

@christophersanborn
Copy link
Member

christophersanborn commented Dec 3, 2018

Overall Roadmap:

Goal is to have both a Nano S app that runs on the device, allowing any wallet developer to add support, and, at minimum, a simple GUI App to submit to the Ledger App Store to facilitate safe storage and transfer of assets. (I.e. basic "wallet" functionality). Beyond that, we may also work on adding support to the cli_wallet and/or providing the bitshares-ui team with the resources that they would need to add support to the reference GUI wallet.

  • Phase I: Implementation of Nano app and basic developer utilities
  • Phase II: User interface
    • Primary Goal: A connector for Beet support.
      • This should be a simple matter of adding an AppBitShares.js module as suggested by ledgerjs
    • Primary Goal: A standalone GUI app for the Ledger app store providing basic wallet functionality
      • (I'm assuming this is needed to get ledger-app-bitshares accepted into the Ledger app store... but it might not be. They might accept the Nano app without a corresponding GUI, in which case this goal may be of lower priority than Beet support.)
    • Secondary: Integration into cli_wallet
      • Write a C++ connector module
    • Secondary: Documentation and maybe some initial interface code to allow bitshares-ui team to integrate into Bitshares GUI
      • (The AppBitShares.js module mentioned for Beet support might be all that's needed for this.)

For the time being, work is being done in christophersanborn/ledger-app-bitshares, and detailed task management in christophersanborn/ledger-app-bitshares/issues.

@clockworkgr
Copy link
Member

Overall Roadmap:

Goal is to have both a Nano S app that runs on the device, allowing any wallet developer to add support, and, at minimum, a simple GUI App to submit to the Ledger App Store to facilitate safe storage and transfer of assets. (I.e. basic "wallet" functionality). Beyond that, we may also work on adding support to the cli_wallet and/or providing the bitshares-ui team with the resources that they would need to add support to the reference GUI wallet.

  • Phase I: Implementation of Nano app and basic developer utilities

  • Phase II: User interface

    • Primary Goal: A standalone GUI app for the Ledger app store providing basic wallet functionality
    • Secondary: Integration into cli_wallet
    • Secondary: Documentation and maybe some initial interface code to allow bitshares-ui team to integrate into Bitshares GUI

For the time being, work is being done in christophersanborn/ledger-app-bitshares, and detailed task management in christophersanborn/ledger-app-bitshares/issues.

as far as GUI app is concerned, I plan to be adding support for it to Beet once you have the device side working using https://github.com/LedgerHQ/ledgerjs

@sschiessl-bcp
Copy link

sschiessl-bcp commented Dec 4, 2018

Yes, you are cordially invited to use Beet as your standalone GUI app Christopher

@christophersanborn
Copy link
Member

Nice! @clockworkgr and @sschiessl-bcp; I love the idea of Beet support, and this looks very easy to achieve and opens up so many possibilities. I've added it to the roadmap above.

@clockworkgr
Copy link
Member

Nice. To be honest, if you finish the on-device work I should be able to handle the JS side myself. ofcourse, any help would be greatly appreciated :)

@marcialvieira
Copy link
Contributor

marcialvieira commented Dec 5, 2018

Estimating between 10 and 20 hours for this component, but may be less because of the similarities.

@ryanRfox
Copy link
Contributor Author

ryanRfox commented Dec 5, 2018

Thanks @christophersanborn and @marcialvieira for your estimates and roadmap. I'v updated the Core Team Task List to reflect them. Please continue with your design and development efforts.

@christophersanborn
Copy link
Member

Estimating between 40 and 80 hours for this component. This is based on the complexity and general inscrutability of code written for BOLOS devices. It also accounts for things like constructing test data packets to use during the dev process and other supporting tasks.

@dls-cipher
Copy link
Collaborator

As user of Nano Ledger, would love to see BTS supported on it. Keep up the great work and ideas!

@christophersanborn
Copy link
Member

Logging 10 hours complete towards target "Device Side: Nano app" within the Week 48–49 period.

@cloud-8
Copy link

cloud-8 commented Dec 17, 2018

Would love to see this come to Trezor also, given it is open hardware aswell as open software.

@christophersanborn
Copy link
Member

Logging 15 hours toward target "Device Side: Nano app" within the Week 50–51 time period. (Bringing total thus far toward the target to 25 hours.) Tagging: @ryanRfox

@ryanRfox
Copy link
Contributor Author

Thanks @christophersanborn for the update.

@christophersanborn
Copy link
Member

Logging 30 hours toward target "Device Side: Nano app" in the time period from 1/1/2019 to 1/27/2019. This covers 21 commits by me from b41063b up through e9f572c.

This brings total thus far toward the target to 55 hours.

Tagging: @ryanRfox

@marcialvieira
Copy link
Contributor

marcialvieira commented Feb 5, 2019

Logging 24 hours toward target "Host Side: Nano app" in the time period from 1/18/2019 to 2/4/2019. This covers 8 commits by me from d4e2ece up through 5cfbf3b.

Estimating between 40 and 60 hours for this component, including the 24 hours already done, depending on the need of operations, I'm expecting that the complexity decreases a lot by similarities between operations, already implemented operations: transfer, limit_order_create, limit_order_cancel and account_update.

Tagging: @ryanRfox

@ryanRfox ryanRfox added this to In development in Feature Release (3.1.0) Feb 13, 2019
@ryanRfox
Copy link
Contributor Author

I'm adding this to our Feature Release project board for visual reference. This does not have any impact on the release nor is it held the schedule. It's just may way to show the Community "we are working on it".

@ryanRfox ryanRfox removed this from New -Awaiting Core Team Evaluation in Project Backlog Feb 27, 2019
@ryanRfox ryanRfox added this to To do in Feature Release (3.2.0) via automation Apr 23, 2019
@ryanRfox ryanRfox removed this from In development in Feature Release (3.1.0) Apr 23, 2019
@ryanRfox ryanRfox moved this from To do to In development in Feature Release (3.2.0) Jun 19, 2019
@ryanRfox ryanRfox added this to To do in Feature Release (3.3.0) via automation Jul 15, 2019
@ryanRfox ryanRfox removed this from In development in Feature Release (3.2.0) Jul 15, 2019
@jmjatlanta jmjatlanta added this to To do in Protocol Upgrade Release (5.0.0) via automation Aug 7, 2019
@jmjatlanta jmjatlanta removed this from To do in Feature Release (3.3.0) Aug 7, 2019
@abitmore abitmore added this to New -Awaiting Core Team Evaluation in Project Backlog via automation Sep 13, 2020
@abitmore abitmore added this to the Future Feature Release milestone Sep 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1b User Story The User Story details a requirement. It may reference a parent Epic. It may reference child Task(s) 2a Discussion Needed Prompt for team to discuss at next stand up. 3a Request Classification (default) which does not fit as a Feature, Enhancement or Bug. Core Team to evaluate 6 Security Impact flag identifying system/user security 6 UX Impact flag identifying the User Interface (UX)
Projects
Project Backlog
  
New -Awaiting Core Team Evaluation
Development

No branches or pull requests

9 participants