Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ipfs functionality #15

Merged
merged 11 commits into from
Jan 9, 2025
Merged

Ipfs functionality #15

merged 11 commits into from
Jan 9, 2025

Conversation

ametel01
Copy link
Collaborator

@ametel01 ametel01 commented Jan 9, 2025

No description provided.

- Create new ipfs-utils crate for IPFS file operations
- Implement IpfsManager for database file upload and download
- Add comprehensive test suite including edge cases:
  - Basic upload and fetch functionality
  - Empty file handling
  - Invalid hash handling
  - Non-existent file handling
  - Invalid path handling
Add new ipfs-utils crate for handling MMR database files through IPFS. Features include:

- Basic IPFS file upload and download functionality
- File size limits and validation
- Atomic file writes using temporary files
- Error handling with custom error types
- Basic hash validation
- Comprehensive test suite

Key functionality:
- Upload .db files to IPFS and get CID
- Fetch .db files from IPFS using hash
- Connection checking and error handling
- Configurable file size limits (default 50MB)

Tests cover:
- Basic upload/fetch operations
- Empty file handling
- Invalid hash handling
- Invalid path handling
- Nonexistent file handling
- Add new ipfs-utils crate for IPFS operations
- Integrate IPFS storage in BatchProcessor
- Upload MMR state to IPFS after each update
- Add proper error handling for IPFS operations
- Clean up temporary files after batch completion

Key changes:
- Upload MMR state to IPFS after every update, not just on completion
- Use temporary local files during processing
- Add StorageError variant for IPFS-related errors
- Add IPFS manager to BatchProcessor
- Convert paths properly between String and PathBuf
- Modified deploy-ethereum.sh to update both environment files in docker mode
- Modified deploy-starknet.sh to update both environment files in docker mode
- Added ENV_FILES array to handle multiple environment files
- Added verification steps for environment file updates
- Maintained backward compatibility for non-docker environments
- Replace felt!(hash) with Felt::from_hex() for IPFS hash conversion
- Remove unused felt macro import
- Use existing FeltConversion error handler
- Replace felt!(hash) with Felt::from_hex() for IPFS hash conversion in starknet-handler
- Remove unused felt macro import
- Use existing FeltConversion error handler
- Add IPFS hash to BatchResult in batch processor
- Update accumulator to handle IPFS hash storage
@ametel01 ametel01 force-pushed the ipfs-functionality branch from 3efccf5 to cff8cda Compare January 9, 2025 21:43
@ametel01 ametel01 merged commit ca997e7 into main Jan 9, 2025
2 checks passed
@ametel01 ametel01 deleted the ipfs-functionality branch January 9, 2025 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant