[Grant Update] Zcash Wallet Community Developer - Milestone 1
Hello community!
I’m posting the first update to the ZWCD Grant
Let’s recap!
Milestone 1: Objectives
Deliverable 1
NightHawk Apps: Support and Review Pull Requests for DAG Sync adoption and customizations in the new Nighthawk Wallet architecture based on Secant. (ongoing)
Deliverable 2
Zingo Labs: General support and Integration tests with Darksidewalletd (ongoing)
Deliverable 3
Zcon4 activities
Deliverable 4
LCWG re-launch: take ownership of the call schedule (Is ECC’s), coordinate with ZF to set up seminar or similar call with a public schedule and per-invite participation.
Deliverable 5
Attend Arborist Call, present myself and announce the position.
Updates on the Proposed deliverables of Milestone 1
In the following sections I will detail:
- achievements: things that I was able to achieve in the defined objectives
- Remarks/Comments: Details of things that I learned along the way of situations that
are worth mentioning too add context of decisions made along the way/
Deliverable 1: Support NH on DAG Sync and other Tasks
Status: Ongoing (delivered but still be ongoing)
Achievements:
- Helped NH reviewing their code, pointing out possible issues and bugs.
- Reviewed User Data Migration path from legacy to new codebase and tested.
- Contributed w/ a better workflow of the migration path that will only delete legacy data after it has been migrated successfully
- Caught a bug in a 3rd party dependency that wouldn’t make that possible in the first place.
Remarks / Comments:
- NH’s new app has interesting UX approaches that others wallets should explore.
- Clean, lean and yet custom designs
- Interesting feature 1: leverage local notifications that don’t go through Google or Apple servers but still let the OS remind the user to sync the wallet weekly or Monthly if the user chooses to.
- Interesting feature 2: Crypto on-ramps with non-KYC CEXs
Open Source Contributions
Task | Link |
---|---|
Update NightHawk iOS to SPM: | Remove Cocoapods from NH wallet · Issue #14 · nighthawk-apps/zcash-ios-wallet · GitHub |
Review Tx flow part 1: | Review "Transaction Flow" PR on NightHawk wallet · Issue #15 · pacu/zwcd · GitHub |
Review Tx flow part 1: | Pull requests · nighthawk-apps/nighthawk-ios-wallet · GitHub |
Nighthawk migration path review Pass 1: | GitHub - nighthawk-apps/nighthawk-ios-wallet: Nighthawk Wallet 2.0 |
Nighthawk migration path review, test and fixes Pass 2 | nighthawk apps · GitHub |
Nighthawk migration path review, test and fixes Pass 3 | nighthawk apps · GitHub |
NH PR Review Pass 4 | Migration flow enhance proposal by pacu · Pull Request #8 · nighthawk-apps/nighthawk-ios-wallet · GitHub |
NH Sync Notifications PR | Settings - sync notifications + new icon and splash by tw0po1nt · Pull Request #11 · nighthawk-apps/nighthawk-ios-wallet · GitHub |
Deliverable 2: Zingo Labs: support and Integration tests
Status: Ongoing (delivered but still be ongoing)
Achievements:
- We were able to identify a case that is very important for Zcash wallets called “Second Flush of Enthusiasm” which measures the time that a wallet takes to be fully usable after being offline for 100 days of its user being onboarded.
- I was able to create the SFoE dataset in a condensed form to later expand using darksidewalletd,
also to start to document the bumps I hit along the way and even write a tutorial on Free2z
Remarks / Comments:
- This was the hardest part of the grant because Zingo (formerly ZecWallet) has a complex stack due to dependencies to Zcashd Regtest. Zcashd imposes its limitations and also scarsely documented APIs.
- I was able to create the SFoE dataset in a condensed form to later expand using darksidewalletd
- We hit too many bumps on the road because of Zcashd Regtest being slow, resource heavy and not very docker friendly.
- ZingoLabs is very heavily invested on integration testing and continously improving their codebase.
- I’m continously in touch with the Zingo folks and they provide insights and support on questions
I might have on their codebase and tooling.
Task | Link |
---|---|
Craft SFoE specs | Create SFoE Dataset · Issue #16 · pacu/zwcd · GitHub |
Command line Tool to derive Regtest Addresses | ZingoLabs · GitHub |
SFoE implementation | Test generating script first pass by pacu · Pull Request #8 · zingolabs/darksidewalletd-datasets · GitHub |
Tutorial to use Zcashd on Regtest with Docker | |
Free2z | |
Transaction and Block Extraction Scripts | Test generating script first pass by pacu · Pull Request #8 · zingolabs/darksidewalletd-datasets · GitHub |
ZingoLabs Darkside Mode configuration flag | [#451] Detach --regtest from local zcashd environment setup by pacu · Pull Request #452 · zingolabs/zingolib · GitHub |
Deliverable 3 & 5: Zcon4 Activities and Participating actively on arborist call
Status: delivered
Achievements:
We could identify and follow up on the frustrated attempt on LCWG to take action on the mempool spam issues. It came up that Ecosystem Outreach had been dropped as ECC responsibility and no one was actually informing wallets and exchanges what to do with ZIP-317 fees being now enforced
ZF and ZWCD will team up to carry on an Ecosystem outreach to address this problem.
Remarks / Commments:
The Role has been well received by all teams.
Deliverable 4: Light Client Working Group
Status: mostly delivered. Ongoing.
Achievements
- Contact ECC Managers and request them to transfer the scheduling, note taking repos and other resources to ZWCD
- Organize Zoom Seminar or other kind of conference venue
- gathered feedback of more global times (like arborist call) and propose new cadence
- Provisional facilitated by Decentralistdan from ZF
- Contact all wallet teams and previous attendees to invite them again to the LCWG calls those include:
- Eiger
- ChainSafe
- Unstoppable
- Edge
- ZF Core team
- ECC Core Team
- Nighthawk Apps
- Hahn / YWallet
- I could help the ECC and NH teams to come up with action items to face the mempool bloat issue that wallets and nodes were facing because of not wallets not enforcing ZIP-317.
Remarks:
- The ongoing changes and transitions made this bumpier as one would have predicted it would be, but overall nothing too blocking.
- There’s a bottleneck on LCWG notes reviews that needs to be addressed. Either by relocating the repo under another Org and Maintainers or by agreeing on repo current maintainers to commit to reviewing the notes.
See Pull requests · zcash/lcwg · GitHub
Miscellaneous or Uncategorized items:
There were some items not categorized as deliverables for this milestone but that were relevant for my duties since they would unblock people and teams.
Ad-Hoc Code Review of Pull Requests for ECC’s Core Team and other tasks for Zec Wallet team.
Task | Type | Team | Date | Link |
---|---|---|---|---|
Review Darkside proto PR from iOS SDK | Development | ECC | 8/25/2023 | Migrate to latest `darkside.proto` to help fix Darkside tests by str4d · Pull Request #1191 · zcash/ZcashLightClientKit · GitHub |
Review of Transaction Proposal | Development | ECC | 8/22/2023 | https://github.com/zcash/librustzcash/pull/891#pullrequestreview-1589874205 |
Respond to ZecWallet Lite Outage incident | Community | ZecWallet | 8/22/2023 | Zcash Wallet Community Developer · GitHub |
Test and Debug of DAGSync issue reported by NH | Community | NH & ECC | 8/29/2023 | [#1223] Requested height [over latestheight] does not exist in the bl… by LukasKorba · Pull Request #1224 · zcash/ZcashLightClientKit · GitHub [Spend-before-Sync] Requested height [over latestheight] does not exist in the block cache · Issue #1223 · zcash/ZcashLightClientKit · GitHub |
Review Draft for Possible ZCG Applicant | Community | To Be disclosed | 8/28/2023 | N/A |
Adminstrative tasks | Grant Task | ZWCD | – | – |
Project Management Tasks | Grant Task | ZWCD | – | – |
Catching up with forums and community interactions | Community | ZWCD | – | – |
Plans for Next Milestone: Sept 1st to Sept 14
These were the estimated task for the next milestone.
- Zingo Labs: pull request review and support development, ongoing Integration testing work
- Preparations for needed updates for iOS 17 public release usually mid september
- Nighthawk Apps: Pull request reviews
- Ecosystem outreach: Support partners (Unstoppable and Edge) adopting ECC’s SDKs release of Sbs (which will be paused)
- Ecosystem outreach: ZIP-317 adoption efforts along with @decentralistdan from ZF.
- LCWG, Arborist and other community tasks
It has to be noted that I won’t be working the second part of september (and it was detailed on the grant).