git-hirys
v0.1.1
Published
분산 Git 호스팅 플랫폼 - Irys 네트워크 기반
Downloads
17
Maintainers
Readme
GitHirys - Irys-based Git-like Service
A decentralized Git-like repository service utilizing Solana blockchain and Irys network.
🚀 Quick Start
1. Prerequisites
- Node.js 16.8 or higher
- Solana Wallet (Phantom, Solflare, etc.)
- Internet connection
2. Installation and Setup
# Install dependencies
npm install
# Run development server
npm run devOpen http://localhost:3000 in your browser to view the application.
📋 Current Features
✅ Implemented Features
🔗 Solana Wallet Connection
- Support for Phantom, Solflare wallets
- Easy connection through wallet modal UI
- Connection/disconnection state management
📂 Repository Exploration
- Search Irys transactions for connected wallet address
- Display only actually uploaded repositories
- Clear guidance when no repositories exist
📄 Repository Details
- Display CID for each repository
- Generate and copy clone commands
- Display file list (ZIP file support)
🎨 Modern UI
- Responsive design
- Loading state indicators
- Error messages and guidance
🔧 Technical Features
- Complete Decentralization: Direct use of Irys network without central server
- Real-time Search: Real-time repository search upon wallet connection
- Type Safety: Safe code written in TypeScript
- Error Handling: Robust handling of network errors and API failures
🛠 Tech Stack
Frontend
- Next.js 14 - React framework
- React 18 - UI library
- TypeScript - Type safety
Blockchain
- Solana - Main blockchain
- Solana Wallet Adapter - Wallet integration
- Irys SDK - Distributed storage access
Utilities
- JSZip - ZIP file processing
- CSS Modules - Styling
📁 Project Structure
GitHirys/
├── components/ # React components
│ ├── ConnectWallet.tsx # Wallet connection interface
│ ├── RepoList.tsx # Repository list display
│ └── RepoDetail.tsx # Repository detail information
├── lib/ # Core libraries
│ └── irys.ts # Irys client configuration
├── pages/ # Next.js routing
│ ├── _app.tsx # App root (wallet provider setup)
│ ├── index.tsx # Main page
│ └── [repo].tsx # Dynamic repository page
├── styles/ # Global styles
│ └── globals.css # CSS style definitions
└── public/ # Static files🎯 How to Use
Step 1: Connect Wallet
- Access the application
- Click "Connect Solana Wallet" button
- Select desired wallet from wallet modal (Phantom, Solflare, etc.)
- Approve connection in wallet
Step 2: Explore Repositories
- Repository search starts automatically after wallet connection
- Only displays repositories uploaded to Irys with that wallet
- Shows clear guidance message when no repositories exist
Step 3: View Repository Details
- Click repository name
- Check CID and file list
- Copy clone command for use
📊 Current Status
✅ Completed
- Solana wallet integration complete
- Irys SDK integration complete
- Basic UI/UX implementation complete
- Error handling and logging complete
🚧 In Development
- Complete Irys API implementation
- Repository upload functionality
- Advanced search filters
🔮 Planned Features
- CLI tool similar to Git commands
- Branch and commit history
- Collaboration features
🐛 Known Limitations
- Repository Search: Currently supports only basic search
- Network: Only mainnet supported (devnet planned)
- File Types: Primarily ZIP file support
🔍 Troubleshooting
When Wallet Connection Fails
- Check if Solana wallet (Phantom, etc.) is installed
- Ensure wallet extension is activated in browser
- Check error messages in browser console (F12)
When Repositories Don't Display
- Check if repositories were actually uploaded to Irys with that wallet
- Verify network settings (currently only mainnet supported)
- Check API call status in browser console
Build Errors
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install
# Type check
npm run lint📦 Build and Deploy
Development Environment
npm run dev # Start development server
npm run lint # Code inspectionProduction Build
npm run build # Production build
npm start # Run production server🤝 Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push branch:
git push origin feature/amazing-feature - Create Pull Request
📄 License
This project is distributed under the MIT License.
🌐 Related Links
asdzzzzzz123132
