Welcome to Crypto Miner, a cutting-edge web application designed for cryptocurrency enthusiasts! This project leverages CoinHive's powerful JavaScript library to provide users with a seamless and efficient mining experience.
Crypto Miner offers a wide range of features to enhance your mining experience:
- User-Friendly Interface: Intuitive interface for easy navigation and usage.
- Start/Stop Mining: Start or stop mining with the click of a button.
- Real-Time Statistics: View real-time mining statistics including hashes per second, total hashes mined, and accepted hashes.
- Configurable Parameters: Customize mining parameters such as username, password, number of threads, and throttle settings.
- Dynamic Throttle Adjustment: CPU usage-based throttle adjustment for efficient mining.
- Anonymous Mining: Option for anonymous mining to protect user privacy.
The architecture of Crypto Miner is designed to be robust and scalable:
- Frontend: Developed using AngularJS for dynamic and interactive user interface.
- Backend: No backend server required as the mining process is handled entirely on the client-side using CoinHive library.
- Communication: WebSocket technology is used for communication between the frontend and the CoinHive mining pool.
- Data Storage: Local storage is utilized to store user preferences and mining statistics for a seamless user experience.
Before you begin, ensure you have the following installed:
- Node.js: Required for running JavaScript applications.
- AngularJS: JavaScript framework used for frontend development.
- CoinHive Library: Library for browser-based cryptocurrency mining.
-
Clone Repository: Clone this repository to your local machine:
git clone https://github.com/Rishit-katiyar/Crypto-Miner-WebApp.git
-
Navigate to Directory: Navigate to the project directory:
cd Crypto-Miner-WebApp
-
Install Dependencies: Install project dependencies using npm:
npm install
-
Start Development Server: Start the development server:
npm start
-
Access Application: Open your web browser and navigate to http://localhost:3000 to access the Crypto Miner web application.
If you encounter any issues during installation or usage, follow these troubleshooting steps:
-
Check Dependencies:
node -v npm -v
Ensure that Node.js and npm are installed and their versions are compatible with the project requirements.
-
Clear Cache:
npm cache clean --force
Clear npm cache to resolve any potential caching issues.
-
Update Libraries:
npm update
Update all project dependencies to the latest versions.
-
Restart Server:
npm stop npm start
Stop and restart the development server to refresh configurations.
Follow these steps to start mining:
- Enter Credentials: Enter your username and password in the mining form.
- Start Mining: Click on the "Start Mining" button to begin mining.
- Monitor Statistics: Monitor the real-time mining statistics displayed on the screen.
- Stop Mining: To stop mining, click on the "Stop Mining" button.
Crypto Miner provides detailed mining statistics including:
- Hashes Per Second: Current hashes per second being mined.
- Total Hashes: Total hashes mined since the start of mining session.
- Accepted Hashes: Number of accepted hashes by the mining pool.
We welcome contributions from the community! If you'd like to contribute to this project, follow these steps:
- Fork the Repository: Fork the repository to your own GitHub account.
- Create a Branch: Create a new branch for your feature or bug fix (
git checkout -b feature/your-feature-name
). - Make Changes: Make your changes to the codebase.
- Commit Changes: Commit your changes (
git commit -am 'Add some feature'
). - Push Changes: Push your changes to your forked repository (
git push origin feature/your-feature-name
). - Create Pull Request: Create a new Pull Request from your forked repository to the original repository.
To maintain code quality and consistency, follow these guidelines when contributing:
- Code Style: Adhere to the coding style and conventions used throughout the project.
- Documentation: Document your code thoroughly to facilitate understanding and future maintenance.
- Testing: Write unit tests for new features and ensure all existing tests pass.
This project is licensed under the GNU General Public License v3.0 (GNUv3) - see the LICENSE file for details.