Below are the latest meeting summaries. Expand the table of contents below to jump to a particular date.
Tech Meeting Summaries
Meeting #103 to #110
AI Summary of development progress, from Jan 20 to March 3:
FCMP++ Implementation
- FCMP++ (Full Chain Membership Proofs) is being implemented to replace the existing RingCT system
- jberman and jeffro256 are leading development, with significant progress on:
- Transaction construction and verification implementation
- Proper FFI (Foreign Function Interface) between Rust and C++ components
- Consensus changes to validate FCMP++ transactions
- Integration with the Carrot addressing protocol
- A competition is being organized to optimize FCMP++ cryptographic operations, focusing on:
- Prove/verify functions and tree-building optimization
- Helioselene curve arithmetic and ec-divisors optimization
Carrot Addressing Protocol
- jeffro256 completed end-to-end testing of the protocol from payment proposals to receiver side
- Integrated fast X25519 key exchange, reducing scanning CPU time by ~37%
- Introduces new wallet types: “two key legacy wallets” vs “six key Carrot wallets”
- Provides improved quantum resistance through amount blinding factor bindings
- rbrunner7 created educational materials about Carrot for the community
Wallet API Improvements
- sneedlewoods working on removing wallet2 dependencies from CLI and RPC wallet
- Implementation will allow better testing of the improved Wallet API
- Work on improving password handling security in the GUI to eliminate cached passwords
- Exploration of using wipeable_string for more secure password management
Hardware Wallet Integration
- jeffro256 working on adapting hardware wallet interfaces for FCMP++ and Carrot
- Development of a unified API for both “cold signing” and “live device signing”
- Plans to address the integrated address display issue on hardware wallets
- Initial contacts with hardware wallet developers pending
Timeline and Coordination
Hard Fork Timing Estimates
- Most likely timeframe for FCMP++ hardfork: Q4 2025 to Q1 2026
- Potential bottlenecks identified:
- Audits and sufficient security review
- Hardware wallet integration
- Multisig implementation
Multisig Support
- Traditional multisig will need to be largely rewritten for Carrot compatibility
- Carrot-derived multisig will eliminate the need to sync key images
- Legacy multisig compatibility is being researched
- May not be available at testnet launch
Documentation Efforts
- Emphasis on improving documentation for consensus mechanisms
- jberman providing extensive documentation in the FCMP++ PR
- Cuprate project (Rust implementation of Monero) has created valuable documentation in their book: https://monero-book.cuprate.org/
Project Coordination
- Teams coordinating through the seraphis-migration repository for FCMP++ and Carrot work
- Discussions regarding transaction weight calculation approaches
- Regular workflow discussions between developers to ensure smooth integration
- Debates on handling the transition period between pre-FCMP++ and post-FCMP++ transactions
The development shows steady progress toward a significant protocol upgrade combining FCMP++ and Carrot, with careful consideration of backward compatibility, hardware wallet support, and security implications. While the implementation is moving forward well, complete audits and integration with the broader ecosystem remain critical steps before the hard fork can occur.
Jan 13, 2025
Source: Github
AI Summary:
Participants
rbrunner7, jeffro256, jberman, syntheticbird, sneedlewoods, selsta, rottenwheel
Progress Reports
sneedlewoods:
- Working on Wallet API PR, but hasn’t removed “WIP” tag due to failing CI tests
- selsta confirmed the failing test (node_server.race_condition) is intermittent and not necessarily due to the PR
- Started working on other items from personal task list
jeffro256:
- Completed end-to-end testing of Carrot addressing protocol from payment proposals to receiver side
- Integrated fast X25519 key exchange into Carrot, reducing scanning CPU time by ~37%
- Planning to create a flow chart for the new transaction construction pipeline
jberman:
- Set up FCMP++ proving over the FFI using C++ components, but still investigating a verification error
- Confirmed the performance impact of crossing Rust-C++ boundary is minimal compared to crypto operations
Key Discussion Points
FCMP++ and Carrot Integration:
- jeffro256 plans to merge RCT type code changes for FCMP++ first
- Proposed workflow: Carrot creates pruned transactions and bulletproofs, FCMP++ handles signing, wallet completes membership proofs
- Transaction weight calculation may shift to being based on input/output counts rather than bytesizes
- Current transaction construction logic in wallet2 described as “horrific” – may be better to replace than modify
Code Complexity Concerns:
- Replacing transaction construction logic might add 1-3k lines of code
- New approach could be nominally larger but simpler for human review
- Need to decide between integrating into existing wallet2 code (requiring duplication) or replacement
Hardfork Transition:
- Will need to support both old and new fee calculation during transition
- Updated wallets shouldn’t submit pre-FCMP++ transactions during transition
- Original transaction logic needs to be kept until after the hardfork
Other Topics:
- No current work on GPU acceleration
- Performance regression issues previously noted by Kayaba have been resolved
- First hardfork for some participants (sneedlewoods, syntheticbird)
Next Steps
- jeffro256 to create a flow chart for transaction construction pipeline
- Further discussion needed on transaction weight calculation approach
- Continue work on integrating FCMP++ and Carrot
The meeting concluded with plans to reconvene the following week.
Jan 6, 2025
Source: Github logs
AI Summary:
Here’s a summary of the meeting in bullet points:
- Attendance:
- Present: rbrunner7, sneedlewoods, jberman, jeffro256, gatsby, syntheticbird
- Development Updates:
- sneedlewoods:
- Replied to PR #9368
- Worked on small details for the new API (PR #9308)
- Considering putting PR #9464 up for review
- jberman:
- Integrated torsion check into tree building
- Tested faster sync from genesis
- Pushed code and started integrating FCMP++ prove
- Continuing work on branch: fcmp++-tree-sync-dev
- jeffro256:
- Implemented internal messaging in Carrot
- Conducted blinding factor switch commitment tests
- Close to finishing fast X25519 key exchange
- Discussion Points:
- PR #9368 (reordering):
- More opinions requested to decide on merging or closing
- Carrot Internal Messaging:
- Uses 16 bytes of free data in change transactions
- Can be used for transaction memos, data attestation, etc.
- Encrypted by default to view-balance key
- Flexible implementation (can have change with/without memo, or memo without change)
- Quantum Computing (QC) and Carrot:
- To be discussed in upcoming MRL meeting
- Wallet API Development:
- Suggestion to review previous issues and questions while waiting for PR reviews
- Miscellaneous:
- Acknowledgment of ongoing efforts in complex code changes
- Mention of the long-term nature of some development efforts
Closing summary:
The first meeting of the new year focused on development updates across various areas of the Monero project. Key progress was reported in Carrot development, including innovative uses of transaction data for messaging. The team discussed ongoing PRs and the need for further review and opinions. The upcoming MRL meeting was noted as an important event for discussing Carrot and quantum computing implications. The meeting concluded with encouragement for continued work on existing issues while awaiting PR reviews.
Dec 30, 2024
Source: Github logs
AI Summary:
Here’s a summary of the meeting in bullet points:
- Attendance and Updates:
- jeffro256 was unable to attend but reported continuing work on ongoing projects.
- jberman and sneedlewoods were present and provided updates.
- Development Updates:
- sneedlewoods: Caught up with recent merges, rebased their PR, and made progress on PR #9464.
- jberman: Completed faster torsion check implementation in C/C++.
- Benchmarking shows ~55% faster than initial torsion clear.
- Expected to speed up tree building by ~30-40%.
- Affects both daemon sync and current wallet sync.
- Working on integrating faster torsion check into tree building.
- Plans to move back to constructing FCMP++ transactions.
- Technical Discussion:
- The torsion check improvement is based on a paper from 2 years ago: https://eprint.iacr.org/2022/1164.pdf
- Suggestion for an academic review of the new torsion check approach.
- Ongoing Work:
- sneedlewoods requested feedback on the Wallet API, mentioning they’ll work on tests if unsure how to proceed.
- Miscellaneous:
- Noted that there was no MRL meeting the previous week.
- Acknowledged the upcoming year (2025) as potentially significant for the FCMP++ hardfork.
Closing summary:
The meeting was brief but productive, focusing on recent development progress, particularly the significant improvements in torsion check speed. The team discussed the importance of academic review for new implementations and continued to emphasize the ongoing work towards the FCMP++ hardfork. Despite the holiday season, developers showed continued progress on their respective tasks. The meeting concluded with a look forward to the potential historical significance of the upcoming year for the Monero project.
Dec 23, 2024
Source: Github logs
AI Summary:
- This was the 100th meeting of the group.
- Development updates:
- jberman is continuing to implement a faster torsion check in C/C++ to improve sync (tree build) time.
- The implementation is taking longer than expected due to differences in available crypto library operations.
- Build system improvements:
- Bootstrappable builds have been merged, which is a major milestone for preparing the build system for FCMP++.
- The switch from Gitian to Guix allows for shipping a modern Rust compiler while still targeting older versions of glibc.
- Guix offers ‘substitutes’ (like binary packages) for those who don’t want to build everything from source.
- Future possibilities:
- Potential for producing portable static binaries that can run on almost any Linux distro, including Android.
- Musl is not currently supported for release builds, but could be targeted in the future.
- Discussion on build processes:
- Confirmation that simple compile processes (git clone and make) will still be available.
- The new build system is a replacement for the Gitian release build process, not for developer builds.
- Additional notes:
- The innovations in build systems and bootstrappability were noted as exciting developments.
- Links were provided for more detailed information on the benefits of Guix and bootstrappability.
Closing summary:
The meeting focused primarily on ongoing development work and significant improvements to the build system. The switch to bootstrappable builds and the move from Gitian to Guix represent important steps forward in preparing for FCMP++ implementation and improving the overall build process. The group discussed the implications of these changes and potential future improvements, while confirming that accessibility for developers will be maintained.
Dec 9, 2024
Source: Github logs
AI Summary:
- vthor and sneedlewoods are working on reconciling their respective PRs (Wallet API and vthor’s PR).
- jberman reported progress on sync from arbitrary sync and a potential simplification of trim handling.
- jeffro256 is focusing on a faster Carrot integration and working on FCMP++ benchmarks.
- The team agreed to prioritize the upcoming fork over large changes to wallet2.
- There’s a consensus to focus on reducing technical debt after the fork, including efforts to replace wallet2.
- Regarding the Wallet API PR, the team agreed to only offer methods that address by key image, removing freeze/thaw/is_frozen() methods that use indexing.
- The meeting concluded with agreement to reconvene next week.
Overall, the meeting focused on coordinating ongoing development efforts, prioritizing work for the upcoming fork, and discussing specific implementation details for the Wallet API.