Weekly Firo Development Meeting Minutes

August 2024 Week 1

Peter

  • CreateTransaction Refactor PR: Working on fixing tests for the CreateTransaction refactor PR. Encountered issues where tests fail on Linux but pass on macOS.
  • macOS Signing on Guix: Set up a repository for Guix signing.
  • Campfire/Stack Wallet Research: Researched the feasibility of implementing Campfire and Stack Wallet features. With prior experience in Flutter as a mobile developer, estimated implementation might take around a month.
  • Qt Wallet Bottleneck:
    • Investigated the bottlenecks in the Qt wallet, particularly reindexing performance.
    • Ported some optimizations from Bitcoin and noticed reindexing feels faster, though further timing tests are needed.

Levon

  • Qt Performance Fixes: Made fixes to improve Qt performance. Early testing with an old dev wallet shows promising results, but further testing with a current wallet is needed to verify the extent of the improvement.
  • Spark Spend 250kB Issue Investigation: Investigated an issue with Spark spending hitting the 250kB limit on extrapayload size. This was previously fixed for transparent spends (miner, masternode), but Spark might need adjustments, possibly requiring a hard fork.
  • Funding Website (funding.firo.org): Checked the funding website to add Spark support.

Narek

  • Wallet Scan Optimization:
    • Optimized wallet scanning by adding an option for users to choose the wallet start date, improving efficiency.
    • Completed the main logic for scanning with the wallet birth date and added a few UI elements for this feature.
  • FiroDEX: Planning to work on updating FiroDEX next.

Week 2

Levon

  • Code Review: Conducted code reviews for the multiscan code and spending optimization PR.
  • UI Improvements:
    • Worked on UI improvements, particularly testing solutions to freezing issues in big wallets.
    • Removed Lelantus UI code
    • Considering adding an option to not sync the transaction table on the UI for large wallets if a better solution isn’t found.

Peter

  • Guix Sign:
    • Successfully got Guix signing working.
    • Needs a repository on firoorg to store signatures (firoorg/firo-detached-sigs).
  • Qt Bottlenecks: Addressed Qt bottlenecks and identified the need to rebase on Levon’s work.

Narek

  • Scan Optimization: Completed scan optimization work and pushed it for review.
  • FiroDEX Updates: Finished upstreaming FiroDEX.
  • Funding Website: Plans to update the Firo funding website to support Spark address payouts.
4 Likes

Week 3

Narek

  • Spark Address Integration: Completed integration of Spark addresses on the funding.firo.org platform.
  • Wallet Scan Optimizations: Addressed Levon’s review feedback and made fixes. Will perform additional testing to finalize.
  • Upcoming Tasks: Finalize Spark address integration on the funding site.

Artur

  • macOS Build Instructions: In the process of finalizing the macOS build instruction updates.
  • Upcoming Task: to investigate UI freezing during batch verification.

Levon

  • Code Review & PRs: Continued reviewing PRs, working on finalizing Lelantus UI fixes.
  • Spark Coinbase.
  • Multisend PR Review
  • KomodoDEX/Campfire Research: Investigating what is required to implement DEX functionality in Campfire or similar projects.

Peter

  • CreateTransaction() Refactor: Fixed the major bugs identified by the tests. Still working on completing the refactor.
  • Guix Signatures: Populated the Guix sign repo and is in the process of setting up the complete signing process.
  • Code Review: Conducting code reviews for Levon’s PR.
  • Upcoming Work:
    • to add asynchronous console mode/finish review of Qt bottleneck
    • Begin coding for Spark aliases, which will allow users to register aliases for Spark addresses on the blockchain.
    • Variable registration fee for Spark aliases, with a max duration of 5 years.
    • Spark alias should resolve to a valid Spark address on the blockchain explorer.
    • Revisit warning PRs to address pending issues.

Week 4

Levon

  • Spark Coinbase:
    • Completed the Spark coinbase implementation. Now working on unit tests and conducting initial testing.
    • Finished the masternode payout to Spark address portion. Preparing for devnet launch with initial and smoke testing.
  • Spark Address Ownership Proof: Researched the feasibility of Spark address ownership proof and plans to meet with Aram this week for further discussion. The implementation might be straightforward.
  • Bitcore Masternodelist API
  • PR Review

Narek

  • Wallet Scan Optimization
  • Funding Site: Added Spark address support to the funding site, performed tests, and awaiting results.

Artur

  • UI Freezing During Batch Verification: Investigating the cause of UI hang during batch verification. Continued work to find a solution to the issue.

Peter

  • CreateTransaction() Refactor: Fixed most of the issues with the CreateTransaction() refactor. The UTXO selection mechanism still needs updates.
  • Spark Alias: Planning and started implementing Spark aliases, which are around 50% complete. Investigating whether this feature requires a hardfork for deployment.
  • Guix-Sign Testing: Conducted additional testing for Guix-sign functionality.
  • Warnings PR and Code Review
1 Like

September 2024 Week 1

Peter

  • Tokenomics Update:
    • Completed the update and PR will be up after redoing some tests
    • Planning to deploy devnet for the tokenomics update, and explorer will also need to be updated accordingly.
  • Warnings PR
  • Tokenomics Breakdown: Miners will receive 5%, masternodes 70%, with 15% allocated for development, and 10% for the community.
  • Testnet: Testnet has passed the second halving, and after a specific block number, the subsidy will increase.
  • Code Review

Levon

  • Spark Coinbase: Fixed bugs related to Spark coinbase implementation and continued unit tests and testing.
  • Sigma Mempool Close & Extrapayload: Prepared PR for closing Sigma mempool and extending the extrapayload size.
  • Bitcore: Worked on a Bitcore fix related to missing RPC functions.
  • Spark Ownership Proof: Had discussions with Aram regarding Spark address ownership proof.

Narek

  • Funding Site: Ongoing testing of Spark address support for the funding site. Will finalize it soon.

Artur

  • UI Hanging During Batch Verification:
    • Implemented changes that seem to resolve the UI hanging issue during batch verification. However, this has resulted in longer verification times.
    • Further testing is required to determine if the tradeoff between UI responsiveness and verification speed is acceptable or if further optimization is needed.

Week 2

Artur

  • UI Hanging Issue: Continued work on the issue of UI hanging during batch verification. Changes have successfully resolved the issue, and the fix will be pushed soon.

Narek

  • Spark Address Support:
    • Worked on adding Spark address support for the Funding Site.
    • Investigating Issue #1446.
    • Will rework the funding site to allow Spark addresses to be used for payouts.

Levon

  • Spark Alias Research:
    • Had a meeting with Aram regarding Spark alias.
    • Decided to prioritize registration as the first step, with additional features to be added later.
  • Spark Coinbase: Finished unit tests and fixed issues for Spark coinbase.
  • Bitcore: Finished work on Bitcore-related tasks.
  • Sigma Pool: Tested the PR for closing the Sigma pool.

Peter

  • Tokenomics Update: PR has been merged.
  • Devnet & Testnet Hard Forks:
    • Hard forks for Devnet and Testnet successfully took place
    • Planning to set up a simulated mainnet to test the transition process.
  • Stratum Proxy Research:
    • Researched the implementation of a stratum proxy and is nearing completion.

Week 3 Text update

Levon

Last Week:

  • Spark Coinbase:
    • Continued testing for Spark coinbase.
    • Resolved Aaron’s review comments on Spats (Spark Assets).

This Week:

  • Spark Coinbase: Ongoing testing.
  • Spats: Further work and review.

Narek

Last Week:

  • Spark Address Support: Implemented Spark address support on the funding site.

This Week:

  • Working on Issue #1446.

Peter

Last Week:

  • Hard Fork Preparations: Made preparations for the upcoming hard fork.
  • Mining Testing: Tested mining setups with various stratum implementations
  • Code Reviews: Conducted reviews and refinements.
  • Aliases: Began working on alias features.

This Week:

  • Continue working on aliases.

Artur

Last Week:

  • Performance Investigation: Investigated an issue where one CPU core is fully utilized when processing new blocks in large wallets.

This Week:

  • Continuing to work on the CPU and memory usage issue.
3 Likes

Week 4

Levon

  • Spark Coinbase:
    • Worked on cleaning up Spark coinbase code.
    • Preparing for a discussion with Aram regarding the coinbase verifier on the miner side, particularly for miner and masternode payouts.
  • Spark Assets: Continued research and reviewing the Spark Assets paper and existing code.
  • Plans to finalize ownership proofs for Spark once the mathematical aspects are ready.
  • Testing: Continued Spark coinbase testing

Peter

  • Spark Aliases: Finalizing the code for Spark aliases. Most of the code is completed
  • Tokenomics Update: Oversaw the hard fork related to tokenomics. It went smoothly with a noted decrease in mining difficulty, which has now stabilized.
  • Memory Issue Investigation

Artur

  • Performance Profiling: Focused on profiling areas of high memory and CPU usage to locate specific bottlenecks.

Narek

  • Issue #1446: Continued working on addressing the issue.
  • Masternode UI: Fixed the masternode sorting UI bug.
  • Memory Optimization: Investigating and working on high memory usage issues related to firod on the masternode side.

Week 5

Levon

  • Spark Address Ownership Proof: Awaiting feedback from Aram to finalize the ownership proof. Preparing a presentation on the topic, to be completed this week.
  • Spark Coinbase Testing: Continued testing of Spark coinbase. Discussed the coinbase functionality with Aram, with plans to conduct Spark coinbase testing on devnet.
  • Spark Wallet API: Made improvements to the API for Spark wallet receiving addresses.
  • Continue working on Spark coinbase and Spark address ownership/proof.

Artur

  • Performance Profiling: Focused on profiling high memory and CPU usage in the Firo wallet, especially for large wallets with many transactions.
  • Memory Leak Detection: Used Valgrind to detect memory leaks, identified several leaks, and implemented fixes.
  • macOS Build Instructions: Updated the build instructions for macOS and resolved some associated issues.

Narek

  • Memory Optimization: Working on issue #1481, which involves investigating and addressing heavy memory usage.

Peter

  • SparkNames (previously SparkAliases): Continued development on SparkNames, previously referred to as SparkAliases. Some initial code has been pushed.
  • Guix-Sign Testing: Conducted testing on guix-sign and implemented small fixes as needed.
  • Code Review
  • Memory Usage Investigation: Performed further investigation into memory usage to optimize performance.
1 Like

October 2024 Week 1

Levon

  • Spark Address Ownership Proofs: Completed work on Spark address ownership proofs.
  • Spark Coinbase:
    • Continued work on Spark coinbase, which operates differently from regular coinbase transactions.
    • Decided to exclude Spark coinbase from the anonymity set until 100 blocks have passed.
  • Spats Library Integration research
  • Tx InstantSend Lock Status for Mobile: Planned to add InstantSend lock status for transactions on the mobile platform.
  • Assisting Narek: Will assist Narek with resolving the heavy memory usage issue and technical issues on the Funding site.

Narek

  • Funding Site Fixes: Worked on resolving issues with the Funding site but encountered technical challenges that require assistance.
  • Memory Optimization for Masternodes: Continued investigating and addressing heavy memory usage on masternodes.

Artur

CPU and Memory Profiling: Attempted to profile CPU and memory usage using Xcode tools, but could not yet identify the exact cause of the high memory usage.

Week 2

Peter

  • Spark Ownership Proof Integration: Integrated Spark ownership proof into Spark Names.
  • Spark Names UI: Started testing Spark Names and began drafting the UI dialog box/tab layout for it.
  • Electrum Server API for Spark Names: Need for someone to work on an API for the Electrum Server to retrieve a list of valid Spark names.
  • Code Review and Guix Sign: Conducted code review and continued guix sign testing

Artur

  • Memory Optimization: Continued work on memory usage optimizations.
  • Assisting Levon with Spats Library Refactoring

Narek

  • Funding Site:
    • Worked on Spark address support for the Funding site, including fixing a QR code issue and enhancing documentation.
    • Improved address validation on the Funding site.

Levon

  • Memory Usage:
    • Paused further work on the memory usage issue after running a profiler. Found around 1 GB usage for block index and the rest attributed to Spark state and other minor components. Concluded that there’s limited optimization left.
    • Removing Sigma state could potentially reduce memory usage.
  • Mobile and Spark Features:
    • Implemented IS (InstantSend) locked coins for mobile.
    • Continued work on Spark coinbase immature implementation.
  • Spats Refactoring and Research:
    • Focused on Spats refactoring and Spark coinbase testing on devnet.
    • Continued Spats research for further improvements.

Gevorg (New Developer)

  • Focus on Spark Assets:
    • Introduced as a new developer, Gevorg will be focusing on Spark assets.
    • Scheduled a meeting with Levon this week for a briefing on Spark assets.

Week 3

Peter

  • Spark Names Testing and UI Improvements:
    • Spark Names is not yet fully tested; plans to improve this.
    • Working on additional features for UI and RPCs related to Spark Names.
    • Added a new window in the Send tab for Spark Names.

Levon

  • Spats Library Refactoring and Testing: Continued refactoring the Spats library and working on unit tests, aiming to finalize this week.
  • Qt UI Improvements: Worked on fixing the Qt UI hanging issue.
  • Spark Coinbase Testing: Plans to continue work on Spark coinbase testing in devnet.

Narek

  • Funding Site and UI Work:
    • Completed Spark address integration for the funding site.
    • Worked on database updates for the funding website.
    • Addressed UI issue #1489.
  • FiroDEX Issues: Currently on hold.

Artur

  • Spats Library Work: Continued refactoring work on the Spats library.

Gevorg (New Developer)

  • Initial Setup and Learning:
    • Successfully built and ran Firo with unit tests, reported a test failure to Levon.
    • Had a meeting with Levon for a detailed briefing on the Spats project.

Week 4

Gevorg

  • Spats Design Specification: Completed the initial draft of the Spats design spec and sent it to Reuben and Levon for review. Waiting for feedback and comments to make necessary adjustments. Plans to address comments and finalize the design specification.

Peter

  • Spark Names Development:
    • Focused on finalizing the UI for Spark Names, with the primary functions of buttons completed. Plans to share a screenshot with Reuben before deploying a working version.
    • Continued work on the internal implementation and small refactor of Spark Names.
    • Decision pending on the cost for Spark Names registration.

Levon

  • Spats Library Development:
    • Continued refactoring the Spats library and working on unit tests.
    • Aiming to finalize the Spats library refactoring this week.

Narek

  • Funding Site and Build Fixes:
    • Finalized the funding site database updates.
    • Fixed issues with build and run configurations for --disable-wallet.
  • To return to txlist issue task.

Artur

  • Spats Library Refactoring: Continued work on refactoring the Spats library, specifically focusing on the SpendTransaction component.
1 Like

November 2024 Week 1

Narek

  • Transaction List & UI Improvements:
    • Working on the transaction list but hasn’t been able to reproduce the issue yet.
    • Added a field for memos in the UI and needs to implement additional validation checks.
    • To work on addressing a Trezor issue for Electrum.

Artur

  • Spats Library Development:
    • Continued refactoring the Spats library.
    • Working on implementing additional unit tests for the Spats library.

Peter

  • Spark Names Development:
    • Progressed on Spark Names UI design and code, which is now successfully running.
    • Still needs to finalize the price list and tokenomics for Spark Names.
    • Plans to remove the limit on the number of years for Spark Names registration.
    • Working on pushing additional RPC codes required for Spark Names.
    • Cleaning up Spark Names code and performing code reviews.
    • Preparing for Spark Names deployment on devnet this week.

Levon

  • Spark Assets:
    • Continued with libspats refactoring, which now technically supports the desired features for Spats.
    • Doing further research on Spark assets as needed.
    • Focusing on Spark coinbase testing on devnet.
    • Considering whether to include a Spats ownership transfer feature.

Gevorg

  • Spats Design Spec & Research:
    • Conducted research on Zano Ionic Swaps.
    • Studied Firo’s code further to deepen understanding.
    • Had a brainstorming session with Levon on the overall Spats design.
    • Wrote a new “Design Cornerstones” section in the spec, summarizing key points of contention for which there’s no strong consensus.

Week 2

Peter

  • Spark Names Development:
    • Worked on Spark Names UI. Development took longer than expected, but is preparing to roll out updates tomorrow for testing.
    • Known issues:
      • Prolongation of Spark Names for multiple years not working at GUI level.
      • Missing GUI for listing Spark Names and address book.
      • Needs to ensure Spark Names do not interfere with the consensus layer.
    • To write additional RPCs for Spark Names.
    • Implemented autocomplete for Spark Names, debating whether it should pull from the address book only or from a global list of Spark Names.
  • Code review for other PRs.

Levon

  • Spark Coinbase Development:
    • Finalized Spark Coinbase PR, implementing the immature functionality that requires 100 confirmations.
    • Continued research on Spark Assets and ionic swap requirements, with plans to discuss with the CL team.
  • Worked on positive transparent balance addresses, expected to be completed by the end of the day.

Narek

  • Electrum and GUI Updates:
    • Addressed an invalid prev_hash issue with Electrum on Trezor.
    • Added Spark memo functionality to the GUI.

Artur

  • Spats Library Testing: Implemented unit tests for the Spats library.

Alef

  • Upcoming Tasks:
    • Will focus on transaction creation refactoring.
    • To investigate if Firo could benefit from adopting Bitcoin’s new CMake build system, replacing the old GNU autotools.

Gevorg

  • Spats GUI:
    • Addressed feedback from Reuben and Levon on the Spats design spec and updated it to version 0.3.
    • Had a call with Levon to determine the starting point in the codebase, agreeing to start with the UI.
    • Attempted a cross-compile Windows build of Firo on WSL (Windows Subsystem for Linux). Encountered errors but didn’t dive into resolving them as the main dev system is a Linux desktop without these issues.
    • To work on the Spats GUI and set up a Qt development environment on the Windows laptop currently available.
5 Likes

November Week 3

Peter

  • Spark Names:
    • Worked on core bug fixes and continued testing.
    • Added mempool conflict resolver.
    • Progressed on the Spark Names UI, including plans to introduce two icons to differentiate between global and local Spark Names.
  • Code Review
  • MacOS Build: Addressed warnings and compilation issues on the newest macOS version.

Gevorg

  • Qt Development for Spats:
    • Set up a Qt development environment
    • Created an initial draft for the “My Own Spats” tab in the Qt GUI.
  • Research:
    • Reviewed the Zano send/receive interface and compared it with ideas for Spats, discussing findings with Reuben.
    • Had a call with Levon to clarify development and testing questions.
  • Updated the Spats spec to remove symbol/name uniqueness constraints, following discussions with Reuben.
  • To continue to work on the business logic for the “My Own Spats” tab functionality.

Narek

  • Electrum Development: Continued working on the Electrum Firo issue related to Trezor wallet compatibility.

Artur

  • Awaiting Tasks: Was on leave the previous week and is currently waiting for new tasks.

Levon

  • Completed the address number with a positive balance RPC call. There may be slight deviations, but it seems acceptable for now.
  • Fixed bugs related to Spark Coinbase and addressed review comments from Gevorg.
  • Explorer Issue: Investigating a block explorer issue where it fails when trying to open blocks containing Sigma mint transactions.
  • Continued Spark Assets research, waiting for confirmation from the Confidential Layer (CL) team.
  • Upcoming Work:
    • Further Spark Coinbase testing.
    • Fixing the explorer issue.
    • Additional Spats library research and refactoring.

Alef

  • Initial Setup:
    • Set up a basic development environment.
    • Began reading through PRs to get familiar with the codebase.
1 Like

November Week 4

Peter

  • Spark Names Core:
    • Implemented fixes and unit tests.
    • Developed helper RPCs for listing all Spark Names (both global and user-specific).
  • Spark Names UI: Worked on the dialog for displaying personal and global Spark Names.
  • Spark Names functionality is based on Spark spend transactions.

Artur

  • Investigated the _send_server_features issue, which was caused by the updated PEERS list.

Narek

  • Continued work on resolving the Trezor issue in Electrum Firo.

Gevorg

  • Spats Development: Created PR for spats_admin_gui and started implementing the business logic for the “My Own Spats” tab in the GUI.

Levon

  • Worked on fixes for the Explorer.
  • Spats Library:
    • Cleaned up libspats, removing old and duplicated code from the Spark Library.
    • Finalized Spats library refactoring and initiated work on state implementation.
  • Spark Coinbase: Fixed bugs and completed unit tests. Planned to launch Spark Coinbase devnet testing this week.

Alef

  • Reviewed PR #1348 and ran it under tests to understand its functionality.
  • CMake:
    • Investigated Bitcoin’s CMake implementation.
    • Started writing small CMake scripts for Firo components.
1 Like

December 2024 Week 1

Peter

  • Spark Names (Core): Fixed mempool conflicts and refined tests.
  • Spark Names (UI):
    • Improved the UI for creating Spark Name transactions and distinguishing address book entries.
    • Merged transparent and Spark local address book entries, creating two clear categories: “Local Address” and “Spark Names.”
  • Completed additional work for Spark Names RPCs.
  • Finalized preparations for the Spark Names launch on the devnet.
  • Code Review

Levon

  • Spats Library: Refactoring nearly complete.
  • Public Transaction Refactoring: Began reviewing related PRs and will finalize soon.
  • Electrum RPC: Investigated RPC-related issues
  • Upcoming Tasks:
    • Finalizing Spats refactoring and moving on to implementing its state.
    • Addressing issue #1500.
    • Updating firod (daemon) to prevent splitting during minting and adding a GUI flag for this functionality.

Alef

  • CMake Integration:
    • Implemented CMake build for Firo’s secp256k1 fork.
    • Added CMake support for other subfolders, with plans to work on libspark and others next.
  • Node Testing: Successfully ran real-world tests with the #1348 node.

Gevorg

  • Spats Business Logic: Focused on coding the central registry for Spark Assets.
  • To continue developing the business logic for Spats functionality.

Narek

  • Electrum & Trezor Issue:
    • Investigated a problem where transaction input sequences are null.
    • Found the root cause: Coinbase transaction inputs had a sequence of 0, causing errors in Trezor transactions.

Artur

  • Electrum Server Issue:
    • Investigated why peers are marked as “bad” in the _send_server_features response due to mismatched hosts.
    • Identified the cause as a host mismatch in the server.features response.
7 Likes

Week 2

Narek

  • Trezor Issue: Continued testing the solution for the Trezor issue with Electrum Firo.

Artur

  • Electrum Server Fixes: Investigated the missing host issue with ElectrumX servers. Updated the server configuration to ensure proper host retrieval.

Levon

  • Mint Creation Refactoring: Added support for the “no split” option in mint creation for RPC calls, addressing issue #1500.
  • Started investigating the root cause of the crash.
  • Continued implementation of Spats state.
  • Finalize mint creation refactoring and further investigate Blockbook issues.

Alef

  • CMake Integration: Investigated all necessary components for CMake integration (#1504).
  • LevelDB Upgrade:
    • Upgraded LevelDB to version 1.22 for better performance and bug fixes.
    • Addressed compatibility by adding crc32c to the base system due to LevelDB’s new SSE requirements.

Gevorg

  • Spats Development: Continued coding business logic for Spats, focusing on the wallet management component.
  • System Setup:
    • Configured a new laptop and upgraded OS on both laptop and desktop systems.
    • Resolved issues with ./autogen.sh crashing after OS updates.
  • Meet with Levon to discuss further progress on Spats.

Peter

  • Spark Names:
    • Ironing out issues with core part of spark names
    • Making transition for the hardfork, as Spark Name transactions need to be recognized as valid by previous versions.
    • Fine-tuned parameters and made further UI design adjustments.
  • Code Review

Week 3

Alef

CMake Port Progress:

  • Customized and added the main CMakeLists.txt file for Firo with target adjustments.
  • Successfully added and tested CMake for multiple components:
    • bench
    • univalue
    • ZMQ
    • doc

Gevorg

  • Spats Development: Continued coding the Spats implementation and finalized changes needed for C++20 compatibility.
  • Code Review: Addressed comments from CodeRabbitAI on the spats_admin_gui PR.

Levon

  • RPC Improvements: Added new RPC calls to enable pagination for downloading anonymity sets on mobile wallets.
  • Completed mint creation refactoring. Added options for users to enable/disable splitting and Allowing user to choose from certain address like coincontrol
  • Spats:
    • Continued development to integrate Spats into the existing Spark structure and anonymity set.

Narek

  • Wallet Fixes: Fixed wallet scan for newly created wallets.
  • Trezor Issue: Implemented a fix for the Trezor issue but is currently exploring more robust solutions.

Artur

  • ElectrumX Enhancements: Finalized updates to improve peer discovery and network connectivity in ElectrumX.

Peter

  • Spark Names:
    • Added an information field to Spark Name records for additional details.
    • Implemented multiple UI fixes.
    • Tweaked core parameters for Spark Names.
    • To Launch Spark Names on devnet.
  • Next Steps:
    • To conduct final testing and prepare Spark Names for deployment.
3 Likes

December 2024 Week 4

Levon

  • PR Review: Reviewed Spark Assets GUI and C++ version update.
  • Spats: Continued work on Spats state implementation.
  • Spark Coinbase: Progressed devnet testing for Spark Coinbase functionality.
  • Proposed assigning Narek to work on Spark Name Explorer, pending Peter’s approval.
  • Work needed for Spark Names support on mobile platforms.

Alef

  • CMake Progress:
    • Added CMake configurations for:
      • Crypto component.
      • Wallet component.
      • src directory.
    • Successfully generating makefiles/ninja via CMake.
    • Debugging generation of multiple targets (firo_cli, firo_wallet, etc.).

Next Steps:

  • Debug all CLI targets to ensure correct generation.
  • Transition Firo’s dependency system to a toolchain similar to Bitcoin’s, including generating a CMake toolchain file post-dependencies setup.
  • Begin compilation for the GUI component.

Narek

  • Successfully fixed the Electrum Firo Trezor issue.

Artur

  • Started investigation and work on resolving Blockbook errors.
  • Progressing with repository updates to address related issues.

Gevorg

  • Continued work on Spats coding.
  • Suggested burning Spats fees, a decision to be reviewed.

December 2024 Week 5 Text Update

Artur

Last Week:

  • Merged the upstream master branch with Firo’s master branch via update-from-trezor.
  • Rebased the spendingIndex and specialAddresses branches with the upstream master branch.

This Week:

  • Continue resolving errors related to these updates and rebases.

Narek

Last Week:

  • Studied Spark Names code to understand its structure for future work.
  • Created the “getsparknames” RPC to return all Spark Names.

This Week:

  • Update the SparkMobile repository to support Spark Names functionality.

Levon

Last Week:

  • Held regular meetings with Gevorg to discuss progress and assign new tasks.
  • Worked on Spats Library: bug fixes and state implementation.

This Week:

  • Continue working on Spark Assets.

Peter

Last Week:

  • Continued bug fixing and testing Spark Names on devnet.
  • Worked on implementing the remaining missing RPCs for Spark Names.

This Week:

  • Finalize bug fixes and complete testing for Spark Names.
  • Address any outstanding RPC implementations.

Gevorg

Last Week:

  • Reviewed PR to fix wallet scanning for newly created wallets.
  • Continued coding work on Spats.
  • Fixed CI errors after getting access to ci.firo.org and pushed an update.
  • Created a new Docker image for CI builds based on Ubuntu 24.04.
  • Held a meeting with Levon to clarify tasks and collect action items.

This Week:

  • Address action items identified in the meeting with Levon.
  • Implement GUI binding code to connect asset creation functionality.
  • Prepare for testing asset creation on regtest.

Alef

Last Week:

  • Worked on fixing targets in src/CMakeLists.txt, focusing on firo_cli and firo_wallet, though some compilation issues persist.
  • Progressed on updating the toolchain.cmake.in file in the depends folder.

This Week:

  • Finalize required targets for firo_cli and firo_wallet.
  • Complete the toolchain.cmake.in file generation.
  • Use CPack to generate binary files, following Bitcoin’s approach.
  • Begin the final stage of the CMake process: GUI compilation.
4 Likes

January 2025 Week 1

Levon

  • To launch Spark Coinbase on devnet.
  • Progressed with Spark Assets State Implementation, converting the existing Spark state code to support a new scheme.

Narek

  • Added ownership proof functionality on Spark Mobile.

This Week:

  • Testing ownership proof cases on Spark Mobile.
  • Integrated ownership proof code from core to the SparkMobile repo and added relevant tests.
  • Fixing any issues identified during the testing phase.

Artur

  • Addressed various Blockbook errors, including broken pipe and context deadline exceeded issues.

This Week:

  • Continuing efforts to resolve the remaining Blockbook errors.

Gevorg

  • Completed all action items from prior meetings with Levon.
  • Finished backend code for creating new Spark Assets.

This Week:

  • Merge completed backend work with the spats_admin_gui branch.
  • Implement GUI binding code to fully integrate asset creation functionality.
  • Begin testing asset creation locally on regtest.

Peter

  • Fixed a bug that allowed ill-formed Spark Name transactions to be accepted.
  • Added unit tests to ensure correct transaction formation and to address Spark Name conflicts.

This Week:

  • Finalize the deployment of Spark Names.

Alef

  • Continued fixing targets in src/CMakeLists.txt, focusing on firo_cli and firo_wallet.
  • Completed the toolchain.cmake.in file and tested it to enable make depends to generate a CMake toolchain file.

This Week:

  • Finalize the targets for firo_cli and firo_wallet.
  • Utilize CPack to generate binary files, following Bitcoin’s methodology.
  • Begin GUI CMake compilation, which is the final phase of the CMake integration process.

Week 2

Peter

  • Spark Names:
    • Updated hard fork (HF) configurations and resolved mempool/block conflicts related to duplicate Spark Names.
    • Fixed several UI-related bugs for Spark Names.
    • Added automated tests to ensure Spark Names’ reliability.
  • New HF block number is needed for Sigma pool closure, aligning it with the Spark Name HF.

Gevorg

  • Integrated previous work on the spats_admin_gui branch.
  • Successfully implemented GUI binding code for end-to-end asset creation functionality.
  • Began local testing for asset creation on regtest and resolved a few testing errors.
  • Currently investigating a diversifier decrypt error while generating address ownership proof, collaborating with Levon for a resolution.
  • Upcoming:
    • Continue testing asset creation on regtest and address all errors encountered.
    • Expected to complete the base Spats functionality by the end of February.

Levon

  • Advanced Spats state implementation to support send and receive functionality.
  • Preparing for devnet testing of Spark Coinbase.
  • To conduct benchmarks during testing.

Artur

  • Resolved several Blockbook errors and is finalizing the remaining issues.
  • Preparing to push updates once all issues are resolved.

Narek

  • Spark Names: Developed additional RPCs and functionality for Spark Names.
  • Begin further development on Spark Mobile integration.

Alef

  • Successfully tested and pushed the toolchain.cmake.in file, which is now fully functional.
  • Continued work on src/CMakeLists.txt for firo_cli and firo_wallet, troubleshooting and fixing compilation issues. Currently, firo_cli is linked to libspark.
  • Upcoming Tasks:
    • Complete target fixes for firo_cli and begin work on firo_wallet and other targets.
    • Utilize CPack to generate binary files, adopting Bitcoin’s approach.
    • Start the GUI CMake compilation phase.

Week 3

Peter

  • Spark Names:
    • Conducted testing and bug fixes.
    • Refactored verification mechanisms.
    • Streamlined transaction creation workflows for Spark Names.
  • Conducted code reviews.
  • Planned to perform testing and fixes for the CMake build system.

Alef

  • CMake Progress:
    • firo_cli compilation with CMake is now complete and functioning.
    • Currently working on the firo_wallet compilation.
  • Upcoming Tasks:
    • Utilize CPack to generate binary files, modeled after Bitcoin’s approach.
    • Begin GUI CMake compilation, marking the final phase of the CMake integration process.

Artur

  • Blockbook Updates:
    • Finalized and pushed some updates.
    • Investigating post-merger changes in Blockbook.
    • Preparing to include new modifications and push updated branches.

Narek

  • Development Progress:
    • Fixed GitHub Actions for the firoorg/firo repository.
    • Worked on FiroDEX upstream sync, pending testing.
    • Added Spark Name support in both Spark Mobile and Insight (Explorer).
  • Upcoming Tasks:
    • Add new seed nodes to FiroDEX and re-enable Market Maker (MM) functionality.
    • Perform sanity checks for FiroDEX to ensure stability.

Levon

  • Spats: Focused on and nearing completion of Spats state implementation.

Gevorg

  • Asset Creation Testing:
    • Continued testing and debugging asset creation on regtest, resolving numerous issues.
    • Achieved a key milestone: Successfully creating new assets, having them recorded on the blockchain, and displaying them in the GUI.
  • Next Steps:
    • Perform additional testing with various input combinations, resolving any remaining errors.
    • Address known rough edges in the implementation.
    • Begin work on asset unregistration functionality.
1 Like

January 2025 Week 4

Peter

  • Spark Names:
    • Worked on Spark Names devnet, with instructions to be shared soon.
    • Addressed fixes and RPCs for Spark Names.
    • Continued testing and UI development for Spark Names.
  • Conducted code reviews.
  • Performed CMake testing.
  • Upcoming: Finalize the UI for Spark Names.

Gevorg

  • Asset Creation & Spats:
    • Continued testing asset creation on regtest, experimenting with various input combinations, and resolved a few errors.
    • Addressed some known rough edges, with a few remaining.
    • Began implementation of asset unregistration.
  • Next Steps:
    • Finalize and test asset unregistration.
    • Further refine rough edges.
    • Add block ID to Spats registry bookkeeping as requested by Levon.
    • Begin work on asset modification implementation.

Levon

  • Spats Development: Progressed on Spats state implementation.
  • Upcoming Tasks:
    • Complete the state implementation.
    • Begin work on transaction creation for Spats.

Narek

  • Continued Spark Name support integration into Spark Mobile.
  • Updated FiroDEX to the latest upstream version.
  • Re-enabled the DEX button in FiroDEX.
  • Added seed nodes to FiroDEX.
  • Upcoming Tasks:
    • Finalize work on Spark Mobile and FiroDEX updates.

Artur

  • Blockbook: Investigated post-merger changes in Blockbook and pushed updates to named branches.
  • Next Steps:
    • Create PRs for recent changes.
    • Test all updates and merge them with the current branches.

Alef

  • CMake Build System: Completed firod, firo-tx, and firo-cli compilation with CMake.
  • Upcoming Tasks:
    • Utilize CPack to generate binary files, following Bitcoin’s approach.
    • Begin work on GUI CMake compilation, which will be the final step in the process.
3 Likes

February 2025 Week 1

Gevorg

  • Completed and tested asset unregistration.
  • Fixed GUI issues, including:
    • Handling 64-bit inputs for asset type and identifier.
    • Adding destination public address input for Spats.
    • Added block ID (hash) to Spats registry bookkeepings as requested by Levon.
  • Next to Implement asset modification.
  • To Improve GUI further:
    • Ask users to confirm fees before proceeding.
    • Ensure total supply value reflects precision setting.
    • Improve thread safety in some functions.

Alef

  • All executables built with CMake, including firod.
  • To Complete CPack integration for binary distribution.
  • To Start work on GUI CMake compilation.

Peter

  • Made Spark Names case insensitive.
  • Optimized and refactored Spark Names code.
  • Conducted code reviews and testing.
  • To Roll out Spark Names on testnet.

Levon

  • Almost finished Spats state modifications.
  • Started implementing Spats transaction creation.
  • To Continue Spats transaction work.
  • To Conduct code reviews.
  • To Update hard fork block number (1477) once Spark Names PR is merged.

Narek

  • Made progress on FiroDEX and Spark Mobile Spark Name support.
  • To Finalize Spark Mobile integration.

Artur

  • Created PRs for Blockbook repository.
  • Encountered issues testing changes on Linux.
  • To Resolve minor issues and finalize changes.

Week 2

Peter

  • Improved Spark Names:
    • Made Spark Names case insensitive, allowing both formats.
    • Modified block index structure for safer rollbacks in case of block disconnection.
    • Fixed edge cases for Spark Name extensions.
  • Spark Names on devnet: RPC is the current focus—some errors remain, but it’s works
  • Updated UI to align with recent changes.
  • Code reviews.
  • Add additional RPCs for easier access to Spark Name features.

Gevorg

  • Worked on asset modification.
  • Fixed unit test failures on Spats branch.
  • Improved thread safety for spats::Registry::get_* functions.
  • Added spats::Registry::get_asset() for Levon.
  • Fixed issues:
    • Corrected Spats headers listing in Makefile.am.
    • Resolved assertion failure for specific NFT unregistration cases.
    • Added a user prompt for unregistering an entire NFT line if multiple NFTs exist on the same line.
  • To Finalize and test asset modification.
  • To Implement asset minting.
  • To Fix Windows build failure in the spats-integration branch.
  • To Rebase Spats branch over the latest spats-integration branch.

Levon

  • Addressed UI improvements PR: Resolved more review comments.
  • Investigated a “vulnerability” report—found and fixed a minor UX bug.
  • Began implementing Spats minting.
  • Reviewing Gevorg’s code.
  • To Finalize minting and begin working on Spats spending.

Alef

  • Fixed macOS CMake build for CLI.
  • [Completed, testing before pushing] Integrated CPack for binary file generation (.tar.gz format).
  • To Create .deb and .rpm packages for Linux distributions.

Narek

  • Continued work on Spark Name support for SparkMobile.
  • To Addressed a FiroDEX transaction broadcast issue.

Artur

  • Continued work on Blockbook.
  • To Finalize and push the latest changes.
5 Likes

Week 3

Alef

  • Successfully built all tests and ran them on Ubuntu and macOS.
  • Enabled CPack to generate binary files for macOS and Ubuntu (.tar.gz and .sh files).
  • To Begin work on GUI CMake compilation, the final step in the process.

Peter

  • Made fixes for Spark Names and API communication with lower-level components.
  • Updated the UI to reflect changes in Spark Names at the core level.
  • Conducted code reviews.
  • To do Testing, deployment, and fixing any issues.
  • View Keys: to Implement a feature to watch Spark addresses for receiving/sending transactions.
  • Decide on implementation for watch Spark address:
    • Campfire route
    • -wallet (Qt) route

Levon

  • Completed Spats Mint implementation.
  • Began working on Spats Spend.
  • To Finalize Spats Spend.
  • To Implement unit tests and RPC calls.
  • To Start integrating Campfire for Spark Names implementation.

Gevorg

  • Completed asset modification implementation and testing.
  • Fixed GitHub CI Windows build failure on spats-integration branch.
  • Rebased Spats branch over the latest spats-integration branch.
  • Added missing validations and behavioral improvements.
  • Started Spats Mint implementation.
  • To Finalize and test Minting.
  • To Fix GitHub CI failures on Spats branch and attempt Jenkins fixes if time allows.
  • To Implement Burn functionality.

Narek

  • Completed Spark Name support on SparkMobile.
  • Worked on Spark Names RPC.
  • Addressed a FiroDEX transaction display issue.
  • Updated FiroDEX Git CI workflow.
  • To continue work on FiroDEX improvements.

Artur

  • Blockbook: Finalized changes and conducted testing. Encountered upstream update issues during testing.
  • To Work on resolving upstream issues to stabilize Blockbook.

Week 4

Peter

  • Fixed several Spark Name core issues, including names older than one year.
  • Fixed UI problems and refactored name creation in the UI for better clarity.
  • Implemented address book support for Spark Names.
  • Conducted code reviews.
  • Reviewed CMake build progress.

Alef

  • Completed GUI compilation for Linux-based systems.
  • Successfully ran CMake build GUI tests on Ubuntu.
  • To Finalize GUI compilation for macOS this week.
  • To Initiate full Windows support (MSVC).

Levon

  • Worked on Spats Spend implementation, refactoring functions and adding new validation checks.
  • To Finalize Spend creation and add unit tests.
  • To Implement new RPC calls for Spats.

Gevorg

  • Completed Minting implementation (excluding crediting new supply, pending integration with libspats).
  • Fixed GitHub CI failures on Spats branch.
  • Improved Spark Asset Dialog:
    • Proper handling of precision changes.
    • Correct display of precision & total supply for NFTs.
  • Made behavioral improvements in Spats core.
  • To Complete Burn implementation (excluding GUI).
  • To Modify Overview page to display Spats balances.
  • To Add Burn functionality to the Overview page.
  • If feasible, to start integrating with libspats.

Narek

  • Investigated FiroDEX transaction history issue:
    • Debugging why some transactions are missing.
    • Verified API responses to ensure correct transaction retrieval.
    • Checked for frontend-backend connection issues.

Samizdat

  • Successfully set up IDE for development.
  • Started working on Qt improvements.

Anwar

  • Released FiroDEX 0.8.2.
  • Tested Spark Name RPCs on testnet.
  • Prepared figures and comparisons for total supply posts.
  • To Update Insight Explorer with:
    • gettotalsupply for firod.
    • getmoneysupply API.
  • To Test Spark Name UI:
6 Likes

March 2025 Week 1

Alef

  • Completed CMake GUI build on macOS.
  • CMake build branch is ready for review (Ubuntu & macOS).
  • To start on full Windows support (MSVC), the final step for CMake build support.

Peter

  • Fixed various Spark Names issues and improved the UI.
  • Implemented unit test updates for Spark Names.
  • Started reviewing UI improvements PR from Levon.
  • To address missing QR code in QT

Gevorg

  • Finished Burn implementation for Spats.
  • Updated the Overview page to display Spats balances.
  • Added Burn functionality UI to the Overview page.
  • Made some minor fixes and improvements.
  • To Implement Levon’s suggested changes, mainly adding Spats transaction checks in more areas.
  • To Start integration with libspats after Levon merges pending Spats changes.
  • GUI improvements: to change transaction list to differentiate

Artur

  • Reviewed final Blockbook changes.
  • To Merge Blockbook updates into the master branch.

Narek

  • Investigating FiroDEX transaction broadcasting issue.

Levon

  • Continued Spats Spend implementation, focusing on code refactoring.
  • Debugged transactions from Enkrypt.
  • To Finalize Mint and Spend implementation.
  • To Merge changes into spats-integration branch.
  • To Add unit tests and RPC implementations.

Samizdat

  • Nearly finished implementing view key exporting in Qt/RPC.

Week 2

Alef

  • Worked on full Windows support (MSVC).
  • vcpkg is functioning, but bls-dash and relic libraries are outdated and lack proper Windows support.
  • Implemented workarounds but need a few more fixes.
  • Other required libraries are available via vcpkg.

Peter

  • Spark Names: Fixed minor bugs and improved code quality.
  • Resolved incorrect fee issue that was interfering with transaction propagation.
  • Implemented multiple unit tests for Spark Names.
  • UI Refactor: Reviewed code and explored ideas to improve UI performance.
  • Addressed warnings in Spark Names code.

Levon

  • Spats Spend implementation: Nearly finished, now working on bug fixes. Unit tests failing, currently debugging.
  • Code review: bitcore-node-zcoin and Blockbook.
  • To Push Sigma pool closure to testnet once Spark Names testing is complete.

Artur

  • Blockbook: Sent changes to Levon for review.

Narek

  • Worked on EvoZnode count API for Insight Explorer.
  • Started addressing Masternode Tool issue.
  • To Continue working on FiroDEX.
  • To Update GitHub Actions for Windows.
  • To Introduce a new RPC for Spark-to-exchange transactions.

Week 3

Samizdat

  • Exporting Spark View Key implementation is in progress.
  • Researching Flutter and Stack Wallet for possible integration.

Levon

  • Insight Znode count API: Reviewed and completed (originally started by Narek).
  • Blockbook upstream upgrade: Reviewed and finalized (originally started by Artur).
  • Testnet HF block pushed for Sigma pool closure PR and synced with Spark Names branch.
  • Bug fixes for Spats Mint.
  • Assisting Enkrypt developers.
  • Upgraded Tor to v0.4.8.9.
  • Continue Spats backend integration with asset registry & UI, plus unit tests.

Narek

  • FiroDEX: Resolved transaction parsing issue related to Spark.
  • Masternode Tool issue: Debugging Trezor error (‘unsupported hash type ripemd160’)
  • To Continue working on the Masternode Tool fix.

Alef

  • Discontinued vcpkg support (temporarily) due to libtor compatibility issues.
  • Fixed BLS-Dash in vcpkg, but libtor was unfixable.
  • Started working on MinGW support for Windows.
  • Firo-tx compilation completed, but minor linking issues with ZMQ remain.
  • To Finalize MinGW (CMake) compilation.

Peter

  • Spark Names UI & RPC improvements:
    • Separated “own” vs. “someone else’s” Spark Names in UI and RPC.
    • Cosmetic improvements.
    • Developing Spark Name creation for mobile (APIs/RPCs).
    • Spark Names testing in progress.
  • Possible implementation of Spark Address Ownership Proof RPCs.
  • To get mainnet hard fork (HF) block for Spark Names.
4 Likes

Week 4

Samizdat

  • Backend view key implementation is mostly completed for Stack Wallet. UI for Stack Wallet is already mostly done.

Alef

  • Finished CMake MinGW cross-compilation.
  • Completed Stacktrace support with CMake compilation.
  • To Start the next task and fix warning issues.

Levon

  • Reviewed spats_central_logic branch.
  • Worked on minor fixes.
  • To Continue refining Spats logic and integration.

Narek

  • Tested Spark support on mm2.
  • Tested Spark Name support on Spark Mobile.
  • Identified the cause of the “unsupported hash type” issue on Trezor in the Masternode Tool.
  • To Fix Masternode Tool issue and finalize it.

Artur

  • Started working on Firod Tor support.
  • Creating automatic onion services for better privacy and network security.

Gevorg

  • Developed Spats actions user confirmation dialog, with final adjustments needed.
  • Worked on integrating Spats minting functionality with Levon’s implementation.
  • Finalize Spats actions confirmation dialog.
  • Complete Spats minting integration.

Week 5

Peter

  • Conducted code and UI reviews, with planned PR updates tomorrow.
  • Thinking implementation for Spark Name transfer protocol
  • To Issue full-fledged UI improvement PR.
  • To Continue code review and finish the last Spark Name fixes.
  • To Conduct thorough testing before the hard fork.
  • To Further develop Spark Name transfer mechanics.

Levon

  • Reviewed Gevorg’s Spats code and worked on spend integration.
  • Finalize Spats functionality and begin regtest testing.

Alef

  • Fixed Clang/LLVM warnings in multiple components, including bip47, bls, liblelantus, libspark, rpc, wallet, and zmq.
  • Finalized the CMake build branch.
  • To Complete remaining Clang/LLVM warning fixes.
  • To Work on GCC and MinGW warnings.

Samizdat

  • Worked on View Key import/export functionality.
  • Studied Dart and Flutter.

Narek

  • Fixed Masternode Tool invalid hashtype issue.
  • Updated CI/CD pipeline and requirements list for Masternode Tool.
  • Pushed Spark integration for mm2 to the mm2 team for review.
  • To Work on CFC Wallet Anonymize button issue.

Artur

  • Investigated Bitcoin commits related to Tor integration.
  • Begin integrating Tor-related Bitcoin commits into Firo’s codebase.
2 Likes