Weekly Firo Development Meeting Minutes

What’s the latest? When does Lelantus Spark upgrade the main network?

1 Like
3 Likes

Week 2 October 2023

Levon

  • Trezor Integration: Successfully synchronized Trezor blockbook with upstream, implementing necessary changes to ensure Spark support.
  • Spark Wallet Unlock UI: Implemented a wallet unlock UI for Spark’s initial run. Resolved issues related to command-line interface (cli) and remote procedure call (rpc) to enable wallet unlocking
  • Ownership Proof UI: Worked on developing the UI for ownership proofs if implementing a special type of addresses.
  • Bitcore and Masternode Tools Support: Started Spark support for bitcore and masternode tools

Narek

  • Unlock UI Assistance: Collaborated with Levon on the implementation of the Unlock UI
  • Upcoming Task: To work on issue #1327 regarding generated Spark address which does not show the correct truncated form (cosmetic)

Sproxet

  • Coinswap Enhancement: worked on coinswap functionality within the Firo-Client, including API integration.
  • CreateTransaction Refactor: Refactoring process for Spark mints are done. Now progressing efforts to refactor Spark spends.

Peter

  • Super Transparent Address: Implemented an additional flag in transactions, ensuring private transactions cannot be spent to super transparent addresses
  • Refactor PR: Testing and finalization of the refactoring process, expected completion in the coming days
  • Code Review and View Keys: Conducted code reviews and view keys, both for Spark.

Week 3 October 2023

Levon

  • Fuzzing PR Review: Did a review of the Fuzzing PR
  • Spark QT PR Review: In the final stages of reviewing the Spark QT PR, with several comments
  • Blockbook Improvements: addressed issues related to blockbook and fixed. Anwar’s feedback indicates positive results
  • Bitcore and Masternode Tools Support: Completed the integration of Spark support into bitcore and masternode tools.
  • Upcoming task: to finalize the QT review

Narek

  • Issue #1327 Resolution: Successfully resolved issue #1327
  • Masternode Tools Integration: finalize the upstream merge and build fix for masternode tools, finalized Gevorg’s work

Peter

  • Supertransparent Address: to introduce a different prefix to differentiate it from normal transparent addresses.
  • Consensus Layer Verification: to introduce consensus layer verification for supertransparent addresses using OP_CODE, reject transaction (at the consensus level) to supertransparent address if it has private inputs.
  • Address Creation and Parsing: Transparent addresses (getnewaddress) returns P2PKH (Pay to Public Key Hash) instead of P2SH (Pay to Script Hash). Supertransparent address only supports P2PKH.
  • Spend Transaction Creation: Going through several ways to create a spend transaction via GUI, RPC for Supertransparent addresses and doing proper checks for it.
  • Refactor PR: Ongoing work on the Refactor PR
  • Supertransparent Address Devnet Deployment: Preparing to deploy the supertransparent branch to the development network for testing.

Sproxet

  • Coinswap Enhancement: Continuously working on refining coinswap functionality
  • Spark CreateTransaction: Working on Spark CreateTransaction

Week 4 October 2023

Binaries Release: Release of Spark binaries in mid-November 2023
Mainnet Activation: Targeting mid-January for the mainnet activation of Spark

Sproxet

  • CreateTransaction Enhancement: Optimizing the CreateTransaction feature
  • Firo Client: Nearly ready for release, with one exception with Houdini swap. Actively coordinating with Houdini to address CoinSwap issues. Anwar to gather details.

Peter

  • Supertransparent Transactions PR: Preparing for deployment on the devnet. Will require new RPCs to be implemented.
  • Refactor PR: Works are still ongoing on refactoring. Aiming to complete it on schedule before Spark

Levon

  • Spark QT PR Review: Completed the Spark QT PR review
  • Spark Testing and Bug Fixes: Spark testing, addressing minor bugs, and resolving issues, such as the Lelantustospark RPC failure.
  • FiroDEX Preparation: Working on preparations for the FiroDEX release

Narek

  • Masternode Tool Build Fix: Fixed and merged the Masternode tool build with the upstream codebase.
4 Likes

Week 5 October 2023

Sproxet

  • CreateTransaction: Addressing most bugs.
  • HoudiniSwap: Provided instructions to Anwar for information gathering to proceed
  • PR reviews: Reviewing PR #1238 (Fix undefined behavior in CHDChain).

Levon

  • Reviewed Fuzzing PR: Resolved comments, and further review pending.
  • Spark development: Bug fixing, minor issue resolution.
  • PR investigation: Investigated issue #1328, (automintspark & gasfee settings leads to unmined spark mints).
  • FiroDex: Merged Upstream PR and awaiting Anwar’s initial testing before release.
  • PR reviews: Reviewing PR #1312, (Qt crash fix).

Narek

  • MasternodeTools Build: Near completion.

Peter

  • Vulnerability PR: Fixed all bugs and extensively did testing.
  • Supertransparent tx (aka Exchange Addresses):
    • Deployed to devnet.
    • Additional implementation is needed for indicators, UI changes, etc.
    • SuperTransparent Address to be rebased to the master branch.
  • Fuzzing PR: PR being reviewed
  • PRs: Assisted with compilation PR #1343; further fixes required from Sproxet and Addressing Elysium test in PR #1345.

November Week 1 2023

Sproxet

  • CreateTransaction: The task is near completion

Levon

  • Spark issues: Resolved remaining issues.
  • Spark fixes: Fixed issue #1328. (automintspark & gasfee settings leads to unmined spark mints)
  • Spark testing: Conducting comprehensive testing.
  • Spark QT PR: Addressing comments in QT PR review.
  • Code cleanup: Preparing for final code cleanup ahead of release.

Peter

  • Exchange Address (formerly known as SuperTransparent Address):
    • Renamed references in the code to “Exchange Address.”
    • Modified prefix to start the address with “EX”; the third letter indicates the network type.
    • For example, “EXA” for mainnet.
    • Implemented unit tests for the exchange address.
    • Added support for the exchange address in transaction view and RPCs.
    • Made necessary changes for the explorer to display the exchange address properly.
  • PR Reviews: To conduct PR reviews post-meeting

November Week 2 2023

Sproxet

  • CreateTransaction: Public PR is ready for review, but additional tests are needed.
  • Addressed build issues: Working on addressing issues with Github Actions, specifically on Windows.
  • Reformatting PRs: Worked on formatting PRs for improved code structure.

Levon

  • Spark QT PR Merge: Merged QT-related changes into the Spark branch.
  • Bug fixes: Addressed failing tests and performed bug fixes.
  • Spark: Preparing for the Spark release.

Narek

  • MasternodeTools: Completed the upstream merge for masternode tools. Ongoing testing and bug fixes before code push.

Peter

  • Spark Runaway Exceptions PR: Added the latest fixes to the Spark runaway exceptions PR.
  • Exchange Addresses(formerly Supertransparent addresses):
    • Renamed Supertransparent addresses to exchange addresses
    • Reworked exchange addresses so that the implementation looks much better
    • Testing; preparing for a proper PR.
  • Spark: Preparing work on Spark testing.

November Week 3 2023

Peter

  • Vulnerability PR: Test components have been added, and the Elysium test has been removed (to be fully removed). Deployment to testnet is scheduled for later this week.
  • Exchange Addresses:
    • The Exchange Address PR has been issued and is successfully running on Devnet.
    • Deployment to testnet is also scheduled for later this week.
    • Both unit tests and UI tweaks are currently in progress.

Levon

  • Spark bug fixes: Bug fixes have been implemented and the Spark branch is now being prepared for release. It will be ready for deployment after UI adjustments.
  • Fuzzing PR: The fuzzing PR has been reviewed and merged.
  • Exchange Addresses: Comments have been added on checks for transaction creation to exchange addresses, as well as error messages, etc.
  • Explorer support for Spark: The explorer for mainnet will be updated to support Spark.
  • Masternode Tools: Time has been dedicated to assist with bug fixes for masternode tools

November Week 4 2023

Sproxet

  • Firo-Client: Worked on merging the latest master into the client-api.
  • Firo-Client Light Client Implementation: Explored design considerations for the transition to a Firo-client light client.
  • Firo Client Testing: Addressed failing tests.

Peter

  • Exchange Addresses PR: Prepared for release, conducted testing, implemented fixes, and updates. Ready for deployment.
  • Mac Build Fixes: Need to upgrade libboost and Qt version. Bitcoin doesnt link to OpenSSL anymore. BIP70 was removed from Bitcoin in 2019. This will allowl removal of two dependecies: protobuff and openssl

Levon

  • Spark: Implemented minor fixes for the Spark release.
  • Explorer support for Spark: Merged separate Spark branches related to the explorer.
  • Masternode Tools: Assumed responsibility for the Masternode Tool bug fixes task from Narek.

Narek

  • Fixing Issue #1354 (Top bar not visible in firo-qt on Fedora)
  • Elysium Code Removal: Initiated the removal of Elysium code.
5 Likes

December Week 1 2023

Peter

  • OP_CHECKLOCKTIMEVERIFY Fix: Potential issue causing transactions unable to be mined. Compatibility concerns with RBF and InstantLock. Testing complexities, script creation needed. Non-hardfork resolution by algorithm rewrite for transaction block selection (BlockAssembler).
  • OpenSSL 1.1.1 EOL:Used in Spark library and Qt (BIP70). Needs to be replaced with OpenSSL 3.
  • Elysium Removal PR Review: Ongoing review of Elysium removal PR.

Sproxet

  • Tx Refactor: Successful testing, except for one case.
  • Spark Test: Test failures detected, addressing undefined behavior. BLS and Bip47 (deprecating)

Levon

  • Elysium Code Removal: Did a comprehensive review and additional cleanup commits.
  • Spark Unittests: Increase stability Spark unittests.
  • Spark Library: Examination of Aram’s PR for inclusion in the next minor release.
  • Masternode Tools: Addressing issues and finalizing Masternode tool updates.
  • Hardware Wallet Crashes: Investigating crashes on Nano S Plus and Electrum Firo post-spending under Spark output transactions.

Narek

  • Elysium Code Removal: Im process of code removal process.
  • Blockbook Build Fix: Resolving issues with the Blockbook build.
  • UI Issue Check: Investigating UI issue #1354(Top bar not visibile in firo-qt on Fedora).

New developer: Artur

Exchange addresses support for Explorer, Blockbook, Electrum, Firo Client

December Week 2 2023

Peter

  • OP_CHECKLOCKTIMEVERIFY: Anticipated completion by Wednesday.
  • Exchange Addresses Bug Fixes: PR addressing bugs and limitations is prepared.

Levon

  • Blockbook Testnet Issue: Successfully investigated and resolved.
  • Spark Unittest Fixes: Completed fixes on Aaron’s branch by incorporating size checks.
  • Mobile Implementation Assistance: Aiding in resolving coin identification issues.
  • Exchange Address Support: Upcoming work to support exchange addresses on the explorer.

Narek

  • Masternode Tool Build Fixes: Fix build issues in the Masternode tool.

Artur

  • Client-api Branch: Starting work on addressing failing tests in the Client-api branch.

December Week 3 2023

There was no Week 4 development meeting as it falls on Christmas

Levon

  • Mobile Development: Successfully addressed and completed Mobile API fixes.
  • Code Review: Thoroughly reviewed and commented on pending PRs.
  • Explorer Enhancements: Almost finalized the implementation of exchange address support for Insight and Blockbook in the Explorer.

Narek

  • Masternode tool fixes
  • Fixed Qt UI issue: defaults to private mode everytime even when private balance is zero. Unable to mint.

Artur

  • Client-api Failing Test: Worked on addressing and resolving failing tests within the Client-api.

Peter

  • OP_CHECKLOCKTIMEVERIFY: relied on BIP65 and BIP66, currently not enabled at the consensus layer on the mainnet. Awaiting discussion on how to proceed. Can fix undefined behavior on devnet/testnet, but fixing on mainnet will be a hardfork
  • Compilation Fixes: Implemented fixes for compilation on multiple platforms, including Mac. Additionally, removal of BIP70.
  • Did some code reviews
2 Likes

January Week 1 2024

  • getnewexchangeaddress Enhancement: getnewexchangeaddress functionality can accept an existing transparent address as an argument.

  • Electrum Firo Release: To release Electrum Firo soon with known issues.

Peter

  • Exchange Addresses Testing: Successfully conducted final testing on pseudo mainnet for exchange addresses, confirming their functionality.
  • BIP70 Removal PR: Addressing test failures in the BIP70 removal PR, with reference to Bitcoin PR #17165.
  • Mac Compilation Fix: Completed the Mac compilation fix, contingent upon BIP70 removal.
  • Automated Tests for Exchange Addresses: To introduce more automated tests for exchange addresses.
  • Refactor PRs: Continued focus on ongoing refactor PRs.

Narek

  • Masternode Tool GitHub Actions: Successfully implemented GitHub Actions for Masternode Tool.
  • Testing and Error Fixes: Resolved several errors encountered during testing.

Artur

  • Elysium Removal: Completed the master merge with Elysium removal.
  • Client Flag Update: Finalizing the update with the client flag.

Levon

  • Explorer and Blockbook Support: Progress made on exchange address support for Explorer and Blockbook, nearing completion.
  • Testing and Finalization: Plans to finalize exchange address support on Explorer and Blockbook.
  • FiroDex Windows Build: Addressing issues with FiroDex Windows build, preparing for release.
5 Likes

Week 2

Proof of Payment for Spark: Exploring the development of a proof of payment mechanism for Spark, considering user-friendly options for non-technical users.

Peter

  • BIP70 Removal: Ongoing work on the BIP70 removal PR. Will plan the Mac compilation PR once the BIP70 PR is approved.
  • Exchange Addresses Testing: Successfully conducted initial testing of Exchange Addresses, reporting positive results. To continue testing and refinement.
  • PR Reviews

Levon

  • Code Logic Fixes: Addressed a minor code logic issue related to braces, identified by Peter.
  • Build fixes: Fixed a building issue associated with the --disable-wallet flag.
  • Spark Mobile Lib: Synced Spark mobile lib with the main repository to fix identified issues.
  • Explorer and Blockbook: Completed support for exchange addresses on Explorer and Blockbook.
  • Ongoing Tasks:
    • Continued testing on Explorer and Blockbook.
    • Addressing Electrum Firo crash with Nano S Plus.
    • Focusing on FiroDex Windows build fixes.

Narek

  • Masternode Tools: Successfully completed the merge fix for Masternode Tools. To work on Hardware wallet testnet connection to Masternode Tools.

Artur

  • Client API Spark: Merged changes from master into client-api_spark. Removed Elysium and resolved the --enable-clientapi flag issue.
  • RPC Test Fixes: To continue RPC fix test issues.

Anwar

  • Forwarded smoke tests to Valist for validation.

Week 3

Levon

  • Exchange Addresses: Successfully implemented exchange addresses explorer support on Insight, thoroughly tested, and confirmed functionality.
  • Exchange addresses blockbook: Investigated exchange addresses on Blockbook, noting it’s non-critical as addresses are visible, just unparsed, and Blockbook remains stable.
  • Continue code reviews
  • FiroDEX PR: Completed FiroDex PR review and merge, preparing for basic testing before release.
  • Client API Investigation: Investigated remaining issues on Client API.

Peter

  • BIP70 Removal and Sonoma Compilation: Continued work on the BIP70 removal PR. Prepared Sonoma compilation PR (dependent on BIP70 removal).
  • Exchange Addresses Testing: Conducted additional testing on exchange addresses, confirming proper functionality.
  • Supervised the launch of Spark and related tasks.
  • Continued involvement in code review activities.

Artur

  • Client API Fixes: Addressed minor bugs in the Client API. Ongoing works on bug fixes and resolving RPC failing tests.

Sproxet

  • Elysium Removal: Testing Elysium removal which broke some stuff in Client API.

Narek

  • Masternode Tools and Ledger: Worked on the testnet connection to Masternode Tools with the Ledger wallet. To create a mini application for Ledger for testnet use.

Week 4

Sproxet

  • Firo Client: Firo Client PR nearing completion, collaborated with Artur. Planned testing on Firo Client with an old dev wallet (empty).

Artur

  • Client API Work: Investigated failing client-api tests.Attempted fixes for Firo Client CI.
  • Firo Client: Addressing Firo Client issues (Valist).

Narek

  • Ledger Development: Successfully created a testnet application for the Ledger device. Ongoing testing of masternode tools on the testnet.
  • Electrum Firo: Addressing Electrum Firo crash issues, particularly Spark spend transaction crash on Nano S Plus.

Levon

  • Client API: Addressed several minor issues and failing tests on the Client API branch.
  • Post-Hardfork:
    • Implemented RPC code for tracking Spark addresses and associated coins in ownwallet.
    • Resolved a slow Spark batch verification issue by removing a check.
    • Fixed Spark spend creation with large transactions that were created but not accepted to the mempool.
    • Investigated migration issues
    • Investigatedcrash on block 819301, likely related to pre-HD wallets.

Peter

  • Spark Spork PR: Encountered issues with failing unit tests in the Spark spork PR. Planning modifications to unit tests for better reflection of wallet usage.
  • Did some testing and ongoing code reviews.

Week 5

Peter

  • Spark Spork PR Fixes: Conducted bug fixes for Spark Spork PR. Resolved Lelantus-related issues noted and fixed by Levon.
  • Did Spork testing and PR reviews.
  • Exchange Addresses: Extended validateaddress for exchange address.
  • Tx Creation Refactor: Reviewed transaction creation refactor and implemented small fixes.

Sproxet

  • Client API: Worked on performance considerations for initial sync and addressed minor bugs. Explored optimization of datetime in logs for improved performance.

Levon

  • Bug Fixes: Fixed getsparkcoinaddr RPC bug.
  • Resolved crash issues for non-HD wallets upon reaching the HF block.
  • UI Enhancements: Worked on disabling Spark transaction creation at the UI level when the spork is active.
  • Added Spark address support for validateaddress.
  • PR reviews: Conducted PR reviews and worked on adding exchange address support for Electrumx.
  • Attempted to fix unstable unit tests.

Artur

  • Firo Client Troubleshooting: Investigating the issue where Firo Client can’t start.

Narek

  • Masternode Tool Development:

    • Fixed UI issues in the masternode tool.
    • Conducted testing of the masternode tool with hardware wallets.
    • Functional testing and bug fixing for the masternode tool on the testnet.
  • Firo Client: Minimum maintenance for Firo Client and explored the possibility of switching to Stack Wallet.

February Week 1 2024

  • Pending for macOS sync issue fix PR before releasing v0.14.13.2

Peter

  • CreateTransaction() Refactor: Addressed fixes, re-based, and reviewed the PR. This refactor is crucial as CreateTransaction is reused extensively in Sigma/Lelantus/Spark transaction creation.
  • Spark Spend Claim: Reviewed and awaiting RPC for checking and issuing spark spend claim.
  • QT Wallet Profiling: Conducted testing improvements to resolve cs_main bottleneck, which causes wallet lag with numerous transactions. Has an idea for a fix.
  • Ongoing Tasks: Continuation of work on CreateTransaction() and fixing the bottleneck.

Levon

  • Exchange Addresses: Implemented support on ElectrumX.
  • Spark UI Fee Estimation Fix: Identified and fixed the issue on QT UI. Plans to conduct tests and push the fix within a day.
  • Investigation on macOS Syncing Issue: Investigated syncing issue on macOS (testnet only) and found a deviation from Linux. Occurs with or without Spark batching.
  • Ongoing Tasks: Code reviews, fixing unstable unittests, and resolving syncing issue on MacOS.

Narek

  • Batch Verification: Assisted Levon with Spark batch verification failure on MacOS.
  • MasternodeTool: Investigating an issue regarding registering a masternode.

Artur

  • Investigation of Startup Lag Issue: Currently investigating the startup lag issue.
  • Error Log Resolution: Resolving error logs to enhance stability and performance.

Week 2

Narek

  • MasternodeTool: Working on masternode registration and bug fixes within the tool.
  • Electrum Firo on Nano S Plus: To address issues related to Electrum Firo on Nano S Plus.

Artur

  • Firo Client: Investigated and worked on resolving the startup lag issue specific to Firo Client on Windows.

Levon

  • Spark Mobile Lib Refactor: Conducted a small refactor on Spark mobile library.
  • Spark Fee Estimation: Completed work on Spark fee estimation.
  • macOS Sync Issue: Resolved the syncing issue on macOS.
  • Ongoing Tasks: Code reviews, finalizing ElectrumX exchange address support, investigating Spark sync optimizations, and fixing unstable unittests.

Peter

  • Create Transaction Refactor: Implemented fixes for the Create Transaction refactor PR.
  • Spark Spend Implementation: Started implementing Spark spend within the Create Transaction refactor.
  • cs_main Bottleneck: Continued profiling to address the cs_main bottleneck.

Week 3

Narek

  • MasternodeTool: Investigated and tested Masternode tool errors.Working on fixing remaining issues.

Artur

  • Firo Client MacOS: Investigating the build issues of Firo Client on MacOS Sonoma.
  • Client API: Completed master merge into the client-api branch.
  • Firo Client Startup Lag Issue: Investigating startup lag issues of Firo Client on Windows.

Levon

  • ElectrumX: Working on ElectrumX exchange addresses integration.
  • Spark Sync Optimization: Profiling to investigate sync performance issues.

Peter

  • CreateTransaction: Refactoring for Spark, around 70% complete.
  • Preparations for addressing cs_main bottleneck
1 Like

Week 4

Levon

  • Spark Optimization: Profiling and investigating Spark sync performance. Trying to implement and test possible optimization ideas.

Artur

  • Firo-Cilent
    • Investigating Firo Client performance.
    • Fixing the setargsfornextrun issue on Firo Client.
  • FiroQT UI: Addressing Qt cosmetic errors (#1416) and more.

Narek

  • Masternodetool: Completed Masternode tool and opened a PR.
  • Ledger: Working on resolving Electrum Firo Spark Transaction fail issue with Ledger Nano S Plus.

Peter

  • CreateTransaction refactor: PR is about 90% complete, needs modification to spark state after creating a transaction.
  • QT Optimization: Testing if Qt bottleneck fix improves the situation.
  • Firod performance issue: Checking on slow startup/restart “Loading BlockIndex” issue.
2 Likes

March Week 1 2024

Peter

  • Optimization: Addressing slow startup issue, specifically for masternodes, by resolving CheckProofOfWork() in LoadBlockIndexGuts().
  • CheckTransaction PR: Continuing work on CheckTransaction() refactor PR.
  • QT Optimization: Resolving QT bottleneck issue, improving situation, especially during wallet launch and syncing last transactions.

Levon

  • Spark Optimization: Optimizing Spark syncing process, initial fix pushed. Continuing to find more optimizations.
  • Fixing unstable tests.

Narek

  • Electrum Firo: Fixing Electrum Firo issue #12 (masternode payouts pending issue).
  • Trezor: Resolved Trezor connection issue on masternode tool.
  • MasternodeTool: Addressing masternode tool fetching transactions issue with Trezor.

Artur

  • Continuing investigation and fixing of Firo client setargsfornextrun issue.
  • QT UI improvements: Working on QT cosmetic errors.
3 Likes

March Week 2 2024

Narek

  • Electrum-Firo: Working on resolving Electrum Firo issue.
  • Masternodetool: Fixed Trezor Masternode Tool issue.

Artur

  • Firo Client: Investigated and attempting to fix the Firo client setargsfornextrun issue, aiming for resolution this week.
  • Firo UI: Planning to address a UI issue on Firo Qt for Linux.

Levon

  • Spark Optimization: Focused on optimizing Spark batch verification, achieving 2x faster verification on the testnet (needs verification by another team member). Planning to optimize batching=0 case
  • Unit tests: Investigated and aims to finalize fixes for unstable unit tests this week.
  • Initiating current supply calculation.
  • Starting work on an RPC to detect masternode collateral when using mobile

Peter

  • Optimization: Implemented the optimization for loading block index PR. Investigated other potential bottlenecks in slow block index loading.
  • Continuing work on the refactor PR for CreateTransaction, addressing coderabbit comments.

Week 3

Levon

  • Optimization: Optimized batch syncing, including batching=0 case.
  • Unittest: Fixed failing unit tests.
  • RPC implementation:
    • Implemented an RPC code to calculate supply accurately.
    • Working on an RPC code to detect masternodes for mobile to prevent minting of collaterals.

Narek

  • Masternodetool: Completed and tested fixes for Masternode tools issues.
  • Electrum Firo: Working on Electrum Firo Trezor (masternode payout) issue.

Artur

  • Firo Client: Fixed Firo client “setargsfornextrun” issue for Mac and Linux, will be addressing Windows next.
  • FiroQT UI: Investigated Firo-Qt cosmetic error on Debian OS, focusing on OS-specific issues.

Peter

  • Optimization: Conducted research on the slow startup issue.
  • Continued work on the CreateTransaction refactor PR.
3 Likes

Week 4

  • Introduction of Alef to the team

Peter

  • Performance Optimization: Conducted thorough investigations into the causes of slow block load indexing, such as low memory and CPU constraints. Profiling the code to reduce memory requirements.
  • Code Refactoring: Continue improvements on the CreateTransaction refactor PR

Levon

  • Testing and Debugging:
    • Resolved issues identified in failing tests and finalizing the fixes.
    • Investigating and debugging unconfirmed Spark spend issues related to exceptionally low transaction fees.
  • Working on current supply calculation

Artur

  • UI Enhancements and Bug Fixes:
    • Resolved a cosmetic error in Firo-QT (#1416) and addressed UI issues on Linux (#1418).
    • Investigated and addressed an issue where the top bar was not visible in Firo-QT on Fedora systems (#1354).

Narek

  • Trezor: working on Electrum Firo integration on Trezor
2 Likes

April Week 1 2024

Week 1

Levon

  • Spark Fixes: Submitted a PR to address an issue with incorrect Spark transaction fees.
  • Progressing on implementing accurate current supply calculations.
  • Finalizing fixes for failing tests.
  • Working on implementing private outputs to coinbase transactions to enhance privacy features.

Artur

  • UI Improvements and Resolutions:
    • Continued investigation into the Firo UI issue on Linux (#1418).
    • Successfully fixed an issue where the top bar was not visible in Firo-QT on Fedora systems (#1354).

Narek

  • Issue Resolution: Focused efforts on resolving issue #1403, enhancing stability and performance.

Peter

  • Assisted with integrating Binance exchange addresses.
  • Performance Enhancements: Identified and began addressing a memory-related issue causing slow index loading, particularly noticeable on low-spec VPS.
  • Refactor PR: Progressing on CreateTransaction refactor PR and conducted thorough code reviews.

Alef

  • Addressed and fixed several GCC/Linux warnings.
  • Fixing clang warnings.
  • Plans to resolve warnings specific to OSX.

Week 2

Peter

  • Performance Enhancements: Successfully tested and finalized a solution for memory issues on low-memory Linux machines. The new approach checks only 50 blocks for Progpow hash if the available memory is less than 2GB
  • Continued research into mobile framework optimizations
  • Did code reviews and progressing with the ongoing refactor PR

Levon

  • Completed the current supply calculation
  • Spark enhancements: Finalized enhancements to the Spark Coinbase feature, with testing set to commence shortly.
  • Code Review: Conducted thorough reviews of all PRs submitted by Alef

Narek

  • Addressed ongoing issues with Electrum Firo on Trezor devices
  • Working on Firo-qt UI, Created wallet creation birthad info.
  • Continued his work on resolving Electrum Firo issues

Artur

  • Resolving scaling issues within Firo QT
4 Likes

April Week 3

Peter

  • Performance Enhancements: Finalized and tested a solution for memory issues on low-memory Linux machines. The new approach checks only 50 blocks for progpow hash if the available memory is less than 2GB
  • Conducted research into mobile frameworks
  • Continued with code reviews and the ongoing refactor PR for improved code efficiency.

Levon

  • Completed the current supply calculation
  • Finalized Spark Coinbase, final touches being applied before testing.
  • Conducted thorough reviews of all PRs submitted by Alef

Narek

  • Investigated issues with Electrum Firo on Trezor devices
  • Firo-QT UI: Created wallet birthday info
  • Electrum Firo: Continued work on resolving Electrum Firo issues and requested additional access for detailed issue creation and investigation.

Artur

  • User Experience and Scaling: Made further progress on investigating and resolving scaling issues within Firo QT.

Week 4

Peter

  • Research and Development: Investigated DASH’s new DIPs, with a focus on DIP22, which introduces additional messaging for InstantSend.
  • Continued work on the refactor PR
  • Did code reviews
  • Investigated timeout issues related to InstantSend to enhance the reliability of instant transactions.

Levon

  • Calculated balances for Zerocoin and Sigma
  • Continued work on Spark Coinbase creation
  • Looking into adding support for Spark addresses in masternode payouts

Artur

  • User Experience and Scaling: Resolving scaling issues within Firo QT

Narek

  • Added warnings for different transaction types
  • Developed methods for QT tests
  • Began work on implementing MultiSend functionality

Week 5

Peter

  • DASH InstantSend (BIP22) Implementation: Began initial work on integrating Dash InstantSend BIP22. Not all components are implemented in Dash code, so we are writing some of our own code. Added a timestamp to the InstantSend lock to allow it to timeout.
  • Warning PR Tweaks: Made adjustments to the warning PR to ensure compatibility and successful compilation on various platforms.
  • Refactor PR: Continued to work on the refactor PR
  • Guix for macOS: Plans to fix issues with Guix for macOS. Builds on native macOS are running perfectly. Will obtain the latest Guix diff from Bitcoin.

Levon

  • Spark Coinbase Testing: Conducted testing on Spark coinbase and started work on masternode payouts.
  • Wallet Creation Date Encoding: Researching ways to encode the wallet creation date in the seed phrase.
  • Spark Coinbase Development: Continuing development and testing of Spark coinbase functionality.

Narek

  • Firo-QT Tests: Created a method for running QT unit tests.
  • MultiSend Implementation: Started work on MultiSend functionality to allow users to send multiple transactions simultaneously.
  • Electrum Firo Issues with Trezor: Ongoing work to resolve issues related to Electrum Firo and Trezor.

Artur

  • Firo QT Scaling Issue Fix: Nearly completed the fix for the scaling issue in Firo QT.
  • Dynamic Scaling Compatibility: Working on updating the remaining components to ensure dynamic scaling compatibility.

May Week 1 2024

Peter

  • Refactor PR: Continued work on the refactor PR
  • Warning PR: Handling the warning PR, seeking more information on Alef’s plans. Considering creating a separate PR for required changes.
  • Masternode Collateral Cool Down Time: Analyzing potential improvements for the cooldown period on masternode collateral.

Levon

  • Spark Coinbase and Masternode Payouts: Completed all coding for Spark coinbase and masternode payouts. Both masternode and miner payouts now accept both transparent and Spark addresses, which are optional.
  • Testing and Cleanup: Focused on testing Spark coinbase and performing necessary cleanups.

Narek

  • MultiSend Implementation: Completed the MultiSend functionality. Planning to discuss changes with Levon before pushing the update.
  • QT Tests and Linux Build Fix: Addressed issues with the Linux build for QT tests.
  • Electrum Firo and Trezor Integration: Continued work to resolve issues related to Electrum Firo and Trezor integration.

Artur

  • Firo QT Scaling Issue Fix: Completed the fix for the scaling issue in Firo QT, including adjustments for dynamically sizing components. Preparing to open a PR for this fix.
  • Bug Fixes: Prepared to address any bugs that may arise during testing.

Week 2

Peter

  • Collateral Lock PR: Opened a PR for locking collateral for masternodes in case of deregistration. To spend collateral, the masternode needs to be in a deregistered state but can still receive payouts during this period. Testing on devnet will provide performance feedback. (on hold)
  • Guix Build for macOS: Worked on the Guix build for macOS. While binaries built on macOS run fine, those built on Guix face issues.
  • Refactor PR: Continued efforts on the refactor PR

Levon

  • Spark Coinbase Testing: Conducted tests on Spark coinbase. Although everything appears to be working, several issues remain:
    • Generating a good serial context.
    • Including unique data in the coin creation process.
    • Ensuring Spark coinbase rewards mature after 100 blocks, similar to the transparent layer.
  • Deployment: Aiming to solve the remaining issues and deploy to devnet.
  • Masternode Spark Payout Address: Focusing on integrating masternode Spark payout addresses instead of owner addresses.
  • Addressing how to handle RPC defaults to payout addresses if no feeSourceAddress is specified.
  • Performance Benchmark: Planning to obtain a performance benchmark for Spark coinbase.

Narek

  • MultiSend Implementation: Continuing work on MultiSend and discussing changes with Levon.
  • QT Unit Test Fix: Working on fixing issues with QT unit tests and aiming to complete both tasks.
  • Electrum Firo and Trezor Integration: Continuing efforts to resolve integration issues with Electrum Firo and Trezor.

Artur

  • QT Scaling Fix PR: Implemented dynamic text resizing and fixed bugs in the QT scaling fix PR.
  • Unclickable Migration Banner Issue (#1391): Investigated the issue with the unclickable migration banner.
2 Likes

May week 3 2024

Levon

  • Spark Coinbase Issues: Successfully resolved the issues with Spark coinbase. Proceeding with Spark coinbase testing and cleanup and testing on devnet
  • Transaction Size Limit: Planning to update the transaction size limit and conduct tests.

Artur

  • Text Resizing Functionality: Continued work on text resizing
  • Migration Banner Issue (#1391): Made attempts to resolve the issue with the unclickable migration banner.
  • Finalizing the migration banner issue and addressing any remaining bugs and text resizing issues.

Narek

  • MultiSend Progress: Nearing completion on the MultiSend feature.
  • QT Unit Test Fixes: Working on fixing QT unit tests, with just one test remaining to be resolved.

Mobile Development Improvements

  • Caching issues related to the anonymity set on mobile devices.
  • Spark Balance Restoration
  • Spark Mempool Display

Week 4

Peter

  • Transaction Creation Refactor PR: Finalizing the first stage of the transaction creation refactor PR, focusing on code cleanup without adding new functionality.
  • Private to Exchange Address Automation: Automated the process for spending from a private address to an exchange address within the Firo-Qt wallet. Users will be shown a specific sequence of messages if they attempt to perform this action, which is not directly supported.
  • Code Reviews
  • Upcoming Tasks: Continue with refactor and private-to-exchange PRs.

Levon

  • Spark Coinbase Development: Addressed manual bug fixes, testing, and code cleanup for Spark coinbase functionality. Implemented unit tests for Spark coinbase.
  • ElectrumX: Worked on bug fixes related to exchange address
  • Electrum-Firo: Continued implementing exchange address support
  • Plan to start Spark coinbase testing on devnet.
  • Deployment of the Spark coinbase code to GitHub.

Narek

  • MultiSend Feature: Completed work on the MultiSend feature.
  • Unit Tests: Planning to write unit tests for MultiSend and QT unit tests.
  • Upcoming Tasks: Address issues related to Ledger on GitHub.

Artur

  • Continued work on bug fixes in the existing PR.
  • Migration Banner Issue (#1391): Worked on resolving the unclickable migration banner issue.
  • Upcoming Tasks:
    • Finalize the migration banner issue.
    • Address any remaining bugs that surface during testing.
1 Like

June 2024 Week 1

Peter

  • Private to Exchange Spend Automation (Qt UI Only): Implemented automation for spending from private to exchange addresses through the Qt UI. This is a UI-specific feature, and no RPC support was added.
  • Transaction Refactor PR
  • Postponed Task: Deferred the task of fixing the macOS build for a later time.

Narek

  • MultiSend & Unit Tests: Completed the MultiSend feature along with the necessary unit tests, which have been pushed for review.
  • Upcoming Tasks:
    • Focus on resolving issues with Electrum Firo, particularly related to Ledger and Trezor devices.
    • Complete remaining Qt tests.

Artur

  • Migration Banner Issue (#1391): Investigated and addressed the unclickable migration banner issue. It was discovered that the banner was clickable, but the wallet state wasn’t always suitable for migration
  • macOS Build Instructions (#1444): Worked on addressing the macOS build instruction issue. Plans to test the changes on macOS Sonoma 14.5, specifically on an M chip Mac.
  • Dynamic scaling bug fix: Continued making bug fixes related to dynamic scaling in the existing PR.

Levon

  • Electrum Client Development: Fixed a bug related to exchange address support in the Electrum client.
  • Mobile Development:
    • Researched into caching functionality for the mobile platform.
    • Implemented RPC calls for mobile mempool support and fixed an issue with missing transactions.

To start researching the possibility of registering an alias for Spark addresses on the blockchain.

Week 2

Peter

  • Private to Exchange Address PR (Qt UI): Completed the PR for automating private-to-exchange address transactions in the Qt UI. Testing was carried out by Anwar.
  • GUIX macOS Build Fixes: Continued working on GUIX build fixes for macOS.
  • CreateTransaction Refactor PR: Completion of the CreateTransaction refactor PR was delayed due to an ongoing issue with the Qt PR.
  • Code Review

Narek

  • Qt Unit Tests: Successfully completed the Qt unit tests. However, Jenkins build failed, and Narek is currently investigating the cause and working on a fix.
  • Electrum/Trezor Issues: Focus on resolving Electrum and Trezor-related issues.

Artur

  • Migration Banner Issue (#1391): Improved the migration banner interaction by adding a warning message. This message prompts users to unlock their wallet if they click the banner while it’s locked.
  • Bug Fixes in PR: Addressed several bugs in a recent pull request.
  • macOS Build Issues (Sonoma 14.5): Identified inconsistencies with Boost libraries during testing, where they were installed but not detected during the configuration phase.
  • Planned to resolve the macOS build instruction issues to ensure proper detection and utilization of Boost libraries.

Levon

  • Electrum Client Development: Finalized fixes for exchange address support in the Electrum client. Encountered an issue with Trezor not being able to sign transactions, which is currently being addressed.
  • Mobile Development: Completed the implementation of RPC calls for mobile mempool support and introduced a new RPC to fix missing transactions on mobile.
  • Additional Work:
    • Reviewed Narek’s multi-send PR.
    • Continued research on mobile caching and Spark coinbase.

Week 3

Peter

  • macOS Signing Fixes: Worked on the actualization of GUIX scripts related to macOS signing. This is important as unsigned executables won’t run on macOS.
  • Detached Signatures Research:
    • Researched on detached signatures, similar to Bitcoin’s approach. Needs a separate repository for this purpose( GitHub - bitcoin-core/bitcoin-detached-sigs at v27.1), allowing signatures to be created on Linux without macOS, using GUIX-sign that links to the repo and generates a signed DMG that can be executed on macOS.
  • Code Review: Reviewed Alef’s warning PRs

Levon

  • New Release Preparation: Focused on the new release by conducting code reviews and resolving issues and comments on various PRs.
  • Worked on Mobile Caching Implementation
  • Electrum Firo Hardware Wallet: Investigating issues with hardware wallet transaction signing for exchange addresses on Electrum Firo.
  • Spark Coinbase: Working on finalizing and starting devnet for Spark coinbase integration.

Artur

  • Migration Banner PR (#1456): Enhanced the migration banner functionality by adding a warning message when the wallet is locked, prompting the user to unlock it before proceeding.
  • Dynamic Scaling PR (#1437): Completed the dynamic scaling feature adjustments. The pull request is prepared for final testing and review.
  • macOS Build Issues on Sonoma 14.5: Continued work on resolving macOS build issues related to Boost library detection during configuration tests.

Narek

  • PR #1434 (Warning Messages): Added warning messages when sending transactions.
  • Electrum Firo Ledger Issue: Investigated issues related to the Ledger device on Electrum Firo.

Week 4

Levon

  • Release preparation on the upcoming release, code reviews and minor fixes
  • Electrum Firo Exchange Address Fix: Resolved Trezor and Ledger issues related to Electrum Firo exchange addresses.
  • Nearing completion of mobile caching implementation within the C++ library.
  • To finish Spark Coinbase

Peter

  • GUIX Signing Repository: Preparing to create a new repository within the firoorg group for GUIX signing. Will push the repository after testing is complete.
  • EX Fee Calculation: Identified and resolved the issue with EX fee calculation. Successful simulation tests on regtest.
  • CreateTransaction() Refactor: Continuing work on the CreateTransaction() refactor PR.
  • Warning PRs: Reviewed Alef’s warning PRs.

Narek

  • Electrum Firo - Ledger & Trezor Issues:
    • Continued work on fixing issues with Ledger and Trezor on Electrum Firo.
    • Awaiting the release of Firo App 2.4.5 on Ledger.
    • Discovered a method to consistently reproduce Trezor issues.

Artur

  • macOS Build Instructions: Successfully completed the macOS build instructions and able to build. Planning to test on another macOS device before submitting a PR.
  • Dynamic Scaling Fixes: Addressed text font size bugs related to the QT scaling issue.
1 Like

July 2024 Week 1

Narek

  • Electrum Firo Issues:
    • Continued working on Trezor and Ledger issues related to Electrum Firo.
    • The Firo app version 2.4.5 on Ledger was working on release day, but encountered issues afterward.
    • Addressing the Trezor coinbase issue to ensure

Levon

  • Exchange Address Trezor/Ledger Fix:
    • Worked on fixing signing issues related to exchange addresses on Trezor and Ledger. The fix requires changes to their firmware, tried doing it on our side only but doesn’t work.
    • Submitted a pull request to Trezor’s and Ledger’s repositories about the issue.
  • Continued work on mobile caching
  • Did code reviews

Week 2

Artur

  • Scaling Issue: Continued work on resolving the scaling issue.
  • macOS Build Instructions: Investigated the macOS build process. Initial testing was done on machines with Xcode installed, but complications arise when Xcode is not present. Exploring alternative solutions that do not require users to install Xcode.
  • GitHub Actions: Updated GitHub Actions for the migration of actions/upload-artifact from version 1 and 2 to version 4,

Narek

  • Electrum Firo Ledger Fix:
    • Successfully completed the fix for Ledger compatibility issues in Electrum Firo.
  • Electrum Trezor Issues:
    • Continued addressing issues related to spending masternode payouts and other transactions on Trezor. Work is ongoing to ensure smoother operations.

Levon

  • Firmware for Trezor/Ledger:
    • Working on building and testing firmware for Trezor and Ledger to support exchange addresses. Testing is still required to confirm the changes.
  • Mobile Caching:
    • Finalized the implementation of mobile caching, optimizing performance and reducing loading times.
  • Multi-send PR:
    • Finalizing the review of the multi-send pull request. This feature is crucial for efficiently sending multiple transactions.

Upcoming task

Trust Wallet: to Implement exchange address support in Trust Wallet.

Campfire Wallet: new Firo-only desktop and mobile wallet, which will include masternode support.

Qt Optimization: To optimize Qt to prevent freezing when a new block arrives.

Spark in Electrum Firo: Exploring whether adding Spark to Electrum Firo is worthwhile, considering its primary use as an interface with hardware wallets.

Week 3

Artur

  • Scaling Issue: Completed the changes addressing the scaling issue.
  • GitHub Actions: Updated GitHub Actions to the latest versions for improved build automation.
  • Firo Qt Issue (#1461): Investigated the problem where Firo Qt starts, shows the splash screen, then unexpectedly closes.
  • macOS Build Instructions: Continued work on improving macOS build instructions.

Narek

  • Electrum Firo Ledger Issue: Working on issues related to private spends as inputs on Ledger.
  • Trezor: Working on a test suite for the masternode payout issue.
  • Planning to suggest a workaround for users with old Lelantus spends on hardware wallets (before the extrapayload).

Levon

  • Exchange Address Support for Hardware Wallets: The code for EX-address support on hardware wallets is ready, but security checks need to be bypassed for thorough testing.
  • Ledger/Trezor Issues:
    • Assisting Narek with debugging Ledger and Trezor issues, building a test suite that uses the user’s UTXOs to replicate and resolve the problems.
    • Identified and suggested closing issues #35 and #36.
  • Qt Performance Investigation: Exploring ideas for caching on the Qt side to improve speed.

Peter

  • Warnings PR: Completed the warnings PR, ensuring that builds are successful across all platforms and that tests pass. Doesn’t remove all the Qt build warnings
  • Continued work on the CreateTransaction PR.

Week 4

Artur

  • GitHub Actions: Made several changes, but Anwar resolved the issue earlier. Closed the PR and allowed Anwar to open his own PR.
  • Scaling Issue: Continued work on resolving the scaling issue using various methods, but was not successful. Decided to put the scaling issue on hold for now.
  • Windows Issue Investigation: Investigated the Windows issue, where Firo Qt crashes after showing the splash screen, but was unable to reproduce the problem.
  • macOS Build Instructions: Continued updating the macOS build instructions to address previous configuration and dependency issues.

Narek

  • Ledger Issue Fix: Fixed the coinbase error 6700 on Ledger.
  • Begin investigating the Windows Firo Qt crash (issue #1461), where the application fails to start after the splash screen with nothing appearing in the debug logs.

Levon

  • Hardware Wallet (HW) Exchange Address Support: Finished implementation of HW exchange address support and is now conducting double-checks before submitting for acceptance by Trezor/Ledger.
  • Qt Performance: Working on implementing caching improvements on the UI side.
  • Code Review: Reviewed code for Electrum Firo fixes, PR #1445, and PR #1470
  • Spark Verification: Investigating the cause of Spark verification failures during the mempool acceptance step.

Peter

  • CreateTransaction Refactor PR: Worked on fixing and reimplementing recent PRs to support the refactored codebase. However, these changes could not be merged safely with the previous base, so some parts need to be rewritten.
  • Warning Removal PR: Continued work on warning removal, including adding support for macOS.
  • Guix Signing: Focusing on testing the refactor PR and work on the Guix signing process.

Week 5

Artur

  • macOS Build Instructions: Worked on refining the macOS build instructions, testing them on two different Macs. Planning to test on another Mac with Sonoma 14.5
  • Scaling Issue: Continuing to work on resolving the scaling issue.

Narek

  • Windows Issue #1461: Trying to reproduce the Windows issue where Firo Qt crashes after the splash screen.
  • Mnemonic Wallet Creation Date:
    • Exploring encoding the wallet creation date into the mnemonic’s additional word to allow faster wallet scanning. However, this may cause confusion with existing 12+passphrase/24+passphrase setups.

Levon

  • Warning Fix PR: Finished reviewing the warning fix PR. Will test before merging.
  • Trezor and Ledger Firmware: Prepared PRs for Trezor and Ledger firmware updates. Trezor has two types of implementations: Trezor One and others. Currently unable to test other types but has ordered a Trezor Safe 3 for further testing, as some users have requested support for this device.
  • Qt Performance Fix:
    • Current logic causes slowdowns when a new block arrives, as it updates the entire transaction list. This is particularly slow for wallets with many transactions, as the balance is also updated in several places, creating bottlenecks.
    • Plan to add fields into the wallet and update only the relevant fields, improving performance.
  • Campfire: Implementing additional features, such as swaps and DEX functionality, within Campfire.
  • FCS Spark Address Support: Planning to implement Spark address support on the funding website.
1 Like