diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml new file mode 100644 index 0000000..cbbe29e --- /dev/null +++ b/.github/workflows/build-and-deploy.yml @@ -0,0 +1,41 @@ +name: Build and Deploy VuePress Site + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + workflow_dispatch: # Manual trigger + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout edgemining.energy repository + uses: actions/checkout@v4 + with: + path: edgemining-energy + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + cache-dependency-path: edgemining-energy/package-lock.json + + - name: Install dependencies + working-directory: edgemining-energy + run: npm ci + + - name: Build VuePress site + working-directory: edgemining-energy + run: npm run docs:build + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./.vuepress/dist + destination_dir: ./ + cname: edgemining.energy diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..25ed3a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# VuePress temp files +.vuepress/.temp/ +.vuepress/.cache/ +.vuepress/dist/ diff --git a/.vuepress/config.js b/.vuepress/config.js new file mode 100644 index 0000000..9328d28 --- /dev/null +++ b/.vuepress/config.js @@ -0,0 +1,95 @@ +import { viteBundler } from '@vuepress/bundler-vite' +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' + +export default defineUserConfig({ + // Site configuration + lang: 'en-US', + title: 'Edge Mining', + description: 'Mine your energy - A research-driven, open-source project turning surplus energy into Bitcoin-powered digital value', + + // Bundler configuration + bundler: viteBundler(), + + // Theme configuration + theme: defaultTheme({ + // Logo - Using the official Edge Mining organization logo + logo: '/images/logo.png', + + // Repository + repo: 'https://github.com/edge-mining', + repoLabel: 'GitHub', + + // Navbar configuration + navbar: [ + { + text: 'Home', + link: '/', + }, + { + text: 'Docs', + link: '/docs/intro.html', + }, + { + text: 'Discord', + link: 'https://discord.com/invite/VQa9UY5SsS', + target: '_blank', + }, + ], + + // Sidebar configuration + sidebar: { + '/docs/': [ + { + text: 'Documentation', + children: [ + '/docs/intro.md', + '/docs/about-us.md', + { + text: 'Product', + children: [ + '/docs/product/product-cycle.md', + ], + }, + { + text: 'Modelling', + children: [ + '/docs/modelling/domain-driven-architecture-overview.md', + '/docs/modelling/glossary.md', + ], + }, + '/docs/contribution.md', + '/docs/faq.md', + ], + }, + ], + }, + + // Footer configuration + editLink: true, + editLinkText: 'Edit this page on GitHub', + lastUpdated: true, + lastUpdatedText: 'Last Updated', + + // Page configuration + docsDir: 'docs', + }), + + // Additional configuration + head: [ + ['link', { rel: 'icon', href: '/favicon.ico' }], + ['link', { rel: 'apple-touch-icon', href: '/images/logo.png' }], + ['meta', { name: 'theme-color', content: '#667eea' }], + ['meta', { name: 'description', content: 'Edge Mining - Mine your energy. A research-driven, open-source project turning surplus energy into Bitcoin-powered digital value.' }], + ['meta', { property: 'og:title', content: 'Edge Mining' }], + ['meta', { property: 'og:description', content: 'Mine your energy - A research-driven, open-source project turning surplus energy into Bitcoin-powered digital value' }], + ['meta', { property: 'og:url', content: 'https://edgemining.energy' }], + ['meta', { property: 'og:image', content: '/images/logo.png' }], + // DaisyUI theme + ['script', {}, 'document.documentElement.setAttribute("data-theme", "edge-mining")'], + ], + + // Development configuration + port: 8080, + open: true, +}) \ No newline at end of file diff --git a/.vuepress/public/CNAME b/.vuepress/public/CNAME new file mode 100644 index 0000000..2dd7f61 --- /dev/null +++ b/.vuepress/public/CNAME @@ -0,0 +1 @@ +edgemining.energy \ No newline at end of file diff --git a/.vuepress/public/favicon.ico b/.vuepress/public/favicon.ico new file mode 100644 index 0000000..2784a55 Binary files /dev/null and b/.vuepress/public/favicon.ico differ diff --git a/.vuepress/public/images/logo.png b/.vuepress/public/images/logo.png new file mode 100644 index 0000000..2784a55 Binary files /dev/null and b/.vuepress/public/images/logo.png differ diff --git a/.vuepress/styles/daisyui.css b/.vuepress/styles/daisyui.css new file mode 100644 index 0000000..d613db7 --- /dev/null +++ b/.vuepress/styles/daisyui.css @@ -0,0 +1,50 @@ +/* Import Tailwind CSS and DaisyUI */ +@import 'tailwindcss/base'; +@import 'tailwindcss/components'; +@import 'tailwindcss/utilities'; + +/* DaisyUI theme variables */ +[data-theme="edge-mining"] { + --p: 102 126 234; /* primary */ + --s: 118 75 162; /* secondary */ + --a: 240 147 251; /* accent */ + --n: 44 62 80; /* neutral */ + --b1: 255 255 255; /* base-100 */ + --in: 58 191 248; /* info */ + --su: 54 211 153; /* success */ + --wa: 251 189 35; /* warning */ + --er: 248 114 114; /* error */ +} + +/* Custom component styles */ +.btn { + @apply px-4 py-2 rounded-lg font-semibold transition-all duration-300; +} + +.btn-primary { + @apply bg-primary text-primary-content hover:bg-primary-focus; +} + +.card { + @apply rounded-lg border border-base-300; +} + +.card-title { + @apply text-lg font-semibold; +} + +.alert { + @apply rounded-lg p-4; +} + +.alert-info { + @apply bg-info text-info-content; +} + +.table { + @apply w-full; +} + +.table-zebra tbody tr:nth-child(even) { + @apply bg-base-200; +} diff --git a/.vuepress/styles/index.scss b/.vuepress/styles/index.scss new file mode 100644 index 0000000..327bcef --- /dev/null +++ b/.vuepress/styles/index.scss @@ -0,0 +1,322 @@ +// Custom styles for Edge Mining + +// Custom variables +:root { + --primary-color: #667eea; + --secondary-color: #764ba2; + --accent-color: #f093fb; + --text-primary: #2c3e50; + --text-secondary: #5a6c7d; + --bg-light: #f8fafc; + --border-color: #e2e8f0; + --shadow-light: 0 4px 20px rgba(0, 0, 0, 0.08); + --shadow-medium: 0 8px 30px rgba(0, 0, 0, 0.12); + --border-radius: 12px; + --transition: all 0.3s ease; +} + +// Global styles +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; + line-height: 1.6; + color: var(--text-primary); + background: #ffffff; +} + +// Homepage hero customization +.home .hero { + background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%); + color: white; + text-align: center; + padding: 4rem 0; +} + +.home .hero .hero-text { + font-size: 3rem; + font-weight: 700; + margin-bottom: 1rem; +} + +.home .hero .tagline { + font-size: 1.5rem; + font-weight: 300; + margin-bottom: 2rem; + opacity: 0.9; +} + +// Action buttons +.action-button { + display: inline-block; + padding: 0.75rem 1.5rem; + border-radius: var(--border-radius); + text-decoration: none; + font-weight: 600; + transition: var(--transition); + margin: 0.5rem; + background: var(--primary-color); + color: white; + border: none; + cursor: pointer; +} + +.action-button:hover { + background: var(--secondary-color); + transform: translateY(-2px); + box-shadow: var(--shadow-medium); +} + +// Features section +.home .features { + padding: 4rem 0; +} + +.home .feature { + text-align: center; + padding: 2rem; + border-radius: var(--border-radius); + transition: var(--transition); + background: white; + border: 1px solid var(--border-color); + box-shadow: var(--shadow-light); + margin: 1rem; +} + +.home .feature:hover { + transform: translateY(-4px); + box-shadow: var(--shadow-medium); +} + +.home .feature .feature-title { + font-size: 1.25rem; + font-weight: 600; + margin-bottom: 0.5rem; + color: var(--primary-color); +} + +.home .feature .feature-details { + color: var(--text-secondary); + line-height: 1.6; +} + +// Tip boxes +.tip { + background: linear-gradient(135deg, var(--accent-color) 0%, #f5576c 100%); + color: white; + border-radius: var(--border-radius); + padding: 1.5rem; + margin: 2rem 0; + border: none; +} + +.tip .tip-title { + font-weight: 600; + margin-bottom: 0.5rem; +} + +.tip p { + color: white; + opacity: 0.9; + margin: 0; +} + +// Navbar customization +.navbar { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-bottom: 1px solid var(--border-color); + box-shadow: var(--shadow-light); +} + +.navbar .navbar-brand { + font-weight: 700; + font-size: 1.5rem; + color: var(--primary-color) !important; +} + +.navbar .navbar-item { + font-weight: 500; + transition: var(--transition); +} + +.navbar .navbar-item:hover { + color: var(--primary-color) !important; + transform: translateY(-1px); +} + +// Sidebar customization +.sidebar { + background: var(--bg-light); + border-right: 1px solid var(--border-color); +} + +.sidebar .sidebar-item .sidebar-link { + border-radius: var(--border-radius); + margin: 2px 8px; + transition: var(--transition); +} + +.sidebar .sidebar-item .sidebar-link:hover { + background: rgba(102, 126, 234, 0.1); + color: var(--primary-color); +} + +.sidebar .sidebar-item .sidebar-link.active { + background: var(--primary-color); + color: white; +} + +// Content styling +.content h1, .content h2, .content h3, .content h4, .content h5, .content h6 { + color: var(--text-primary); + font-weight: 600; + margin-top: 2rem; + margin-bottom: 1rem; +} + +.content h1 { + font-size: 2.5rem; + border-bottom: 2px solid var(--primary-color); + padding-bottom: 0.5rem; +} + +.content h2 { + font-size: 2rem; + color: var(--primary-color); +} + +.content h3 { + font-size: 1.5rem; +} + +.content p { + color: var(--text-secondary); + line-height: 1.8; + margin-bottom: 1rem; +} + +.content a { + color: var(--primary-color); + text-decoration: none; + transition: var(--transition); +} + +.content a:hover { + color: var(--secondary-color); + text-decoration: underline; +} + +.content code { + background: var(--bg-light); + color: var(--primary-color); + padding: 0.2rem 0.4rem; + border-radius: 4px; + font-size: 0.9em; +} + +.content pre { + background: var(--bg-light); + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + padding: 1rem; + overflow-x: auto; + + code { + background: none; + padding: 0; + } +} + +.content blockquote { + border-left: 4px solid var(--primary-color); + background: var(--bg-light); + padding: 1rem; + margin: 1rem 0; + border-radius: 0 var(--border-radius) var(--border-radius) 0; + + p { + margin: 0; + color: var(--text-secondary); + } +} + +.content ul, .content ol { + color: var(--text-secondary); + padding-left: 1.5rem; + + li { + margin-bottom: 0.5rem; + } +} + +.content table { + border-collapse: collapse; + width: 100%; + margin: 1rem 0; +} + +.content table th, .content table td { + border: 1px solid var(--border-color); + padding: 0.75rem; + text-align: left; +} + +.content table th { + background: var(--bg-light); + font-weight: 600; + color: var(--text-primary); +} + +.content table tr:nth-child(even) { + background: var(--bg-light); +} + +// Responsive design +@media (max-width: 768px) { + .home .hero .hero-text { + font-size: 2rem; + } + + .home .hero .tagline { + font-size: 1.2rem; + } + + .action-button { + display: block; + margin: 0.5rem auto; + width: 200px; + } + + .navbar .navbar-brand { + font-size: 1.25rem; + } + + .content h1 { + font-size: 2rem; + } + + .content h2 { + font-size: 1.75rem; + } +} + +// Dark mode support (if needed) +@media (prefers-color-scheme: dark) { + :root { + --text-primary: #e2e8f0; + --text-secondary: #cbd5e0; + --bg-light: #2d3748; + --border-color: #4a5568; + } + + body { + background: #1a202c; + } + + .navbar { + background: rgba(26, 32, 44, 0.95); + } + + .sidebar { + background: #2d3748; + } +} \ No newline at end of file diff --git a/README.md b/README.md index 9d7ac29..6661b01 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,109 @@ -# edgemining.energy +# Edge Mining Website Repository -**Edge Mining** is a FOSS project that integrates Bitcoin mining with renewable energy systems. -This repository contains the source code for the project's official landing page: [edgemining.energy](https://edgemining.energy) +This repository contains the **VuePress website** for Edge Mining. The documentation content is automatically synced from the [edge-mining/docs](https://github.com/edge-mining/docs) repository. ---- +## 🎯 For Website Developers -## ⚑ Why Edge Mining? +This repository is specifically for **website development and deployment**. The documentation content is automatically synced from the [edge-mining/docs](https://github.com/edge-mining/docs) repository. -In many renewable energy setups (like solar or wind), there are periods of excess energy generation that don’t align with consumption. Instead of wasting this energy or investing in expensive storage systems, **Bitcoin mining offers a flexible and profitable way to use it.** +> **πŸ› οΈ For Developers**: This repository is for **technical development** - VuePress configuration, styling, build processes, and deployment. If you're an **editor** making content changes, use the [edge-mining/docs](https://github.com/edge-mining/docs) repository instead. -Edge Mining helps: -- Automate the mining process based on solar/battery conditions -- Use surplus energy efficiently -- Reuse miner heat for space heating -- Make mining accessible and useful for small/medium energy producers +## πŸ“ Repository Structure ---- +``` +edgemining.energy/ +β”œβ”€β”€ docs/ # VuePress site (auto-synced from edge-mining/docs) +β”‚ β”œβ”€β”€ .vuepress/ # VuePress configuration +β”‚ β”‚ β”œβ”€β”€ config.js # Site configuration +β”‚ β”‚ β”œβ”€β”€ styles/ # Custom CSS styles +β”‚ β”‚ └── public/ # Static assets (logo, favicon) +β”‚ β”œβ”€β”€ docs/ # Documentation content (auto-synced) +β”‚ └── README.md # Homepage content +β”œβ”€β”€ package.json # Dependencies and scripts +└── .github/workflows/ # Build and deploy workflows +``` -## 🌐 Live Website +## πŸ”„ Workflow for Website Changes -➑️ [https://edgemining.energy](https://edgemining.energy) +### **How to Contribute:** -This landing page explains the project’s purpose and links to: -- πŸ’¬ Community (Discord) -- πŸ§ͺ Early Testing Form -- πŸ› οΈ GitHub Codebase +1. **Edit Website**: Modify VuePress configuration, styling, or build processes +2. **Test Locally**: Use the development server to preview changes +3. **Commit Changes**: Push to this repository +4. **Auto-Deploy**: Changes are automatically deployed to [edgemining.energy](https://edgemining.energy) ---- +### **Repository Relationships:** + +``` +Documentation Repository (edge-mining/docs) - FOR EDITORS + ↓ (Auto-sync) +Website Repository (edge-mining/edgemining.energy) - FOR DEVELOPERS + ↓ (Auto-deploy) +Live Site (edgemining.energy) +``` + +## πŸ› οΈ Local Development + +### **For Website Development:** + +```bash +# Clone this repository +git clone https://github.com/edge-mining/edgemining.energy.git +cd edgemining.energy + +# Install dependencies +npm install + +# Start development server +npm run docs:dev + +# Build for production +npm run docs:build + +# Clean build files +npm run docs:clean +``` + +### **Access:** +- **Development**: `http://localhost:8080/` +- **Production**: [edgemining.energy](https://edgemining.energy) + +## πŸ“ Development Guidelines + +### **File Organization:** +- **`docs/.vuepress/config.js`**: VuePress site configuration +- **`docs/.vuepress/styles/`**: Custom CSS and styling +- **`docs/.vuepress/public/`**: Static assets (logo, favicon) +- **`docs/docs/`**: Documentation content (auto-synced, don't edit) + +### **Development Standards:** +- Follow VuePress 2.0 conventions +- Use consistent styling and theming +- Test changes locally before committing +- Keep build process optimized + +## πŸ”— Important Links + +- **Documentation Repository**: [edge-mining/docs](https://github.com/edge-mining/docs) (for editors) +- **Live Website**: [edgemining.energy](https://edgemining.energy) +- **Community**: [Discord](https://discord.com/invite/VQa9UY5SsS) + +## ⚠️ Important Notes + +- **Auto-deploy**: Changes here automatically deploy to the live site +- **Documentation sync**: Documentation is automatically synced from edge-mining/docs +- **No direct editing**: Don't edit documentation content here +- **Developer-focused**: This repository is for technical development, not content editing -## πŸ§‘β€πŸ’» License +## 🎯 Next Steps for Contributors -This project is released under the **MIT License**. +1. **Fork this repository** (if you haven't already) +2. **Make your changes** to the website/VuePress configuration +3. **Test locally** using the development server +4. **Create a Pull Request** to this repository +5. **Wait for review and merge** +6. **Changes will automatically deploy** to the live site --- -Let’s mine smarter, together βš’οΈ \ No newline at end of file +**Note**: This repository is for the VuePress website only. Documentation content should be edited in the [edge-mining/docs](https://github.com/edge-mining/docs) repository. \ No newline at end of file diff --git a/docs/about-us.md b/docs/about-us.md new file mode 100644 index 0000000..50069db --- /dev/null +++ b/docs/about-us.md @@ -0,0 +1,74 @@ +# About Us + +## Our Story + +Edge Mining was born from a simple observation: energy often goes unused during low-demand periods. Instead of selling this energy cheaply, investing in costly storage solutions, or simply wasting it, we saw an opportunity to convert surplus energy directly into Bitcoin, creating sustainable and intelligent value. + +## Our Mission + +We believe that energy should never go to waste. Our mission is to unlock new economic possibilities from otherwise wasted resources by leveraging the power of Bitcoin mining to create value from surplus energy. + +## Why We Exist + +Energy often goes unused during low-demand periods. Instead of selling cheaply, investing in costly storage, or wasting this energy, Edge Mining converts it directly into Bitcoin, creating value sustainably and intelligently. + +## Our Approach + +### Research-Driven Development + +We take a research-driven approach to everything we do. Our team continuously explores new technologies, methodologies, and approaches to ensure that Edge Mining remains at the forefront of energy optimization. + +### Open Source Philosophy + +We believe in the power of open source. By making our code transparent and accessible, we enable collaboration, innovation, and community-driven development. There are no licensing fees - Edge Mining is 100% open source. + +### Community Focus + +Our community is at the heart of everything we do. We believe that the best solutions come from collaboration and shared knowledge. Whether you're a developer, energy enthusiast, or simply curious about the project, there's a place for you in our community. + +## We're in Alpha + +Edge Mining is currently in an early, alpha stage of development. Our research-driven approach is rapidly evolving, and features, performance, and reliability are continuously improving. + +### What This Means + +- **Active Development**: We're constantly working on new features and improvements +- **Research Phase**: We're exploring different approaches and technologies +- **Community Input**: Your feedback and contributions are invaluable +- **Rapid Evolution**: The project is changing and improving quickly + +## Key Features + +### Smart Automation + +Intelligent automation based on energy availability to maximize efficiency. Our systems automatically adjust to energy availability, ensuring optimal performance. + +### Heat Recovery + +Advanced heat recovery systems for practical applications. We don't just mine Bitcoin - we also recover and utilize the heat generated during the mining process. + +### Versatile Sizing + +Designed for small to medium energy installations. Whether you have a small solar setup or a medium-sized wind farm, Edge Mining can work for you. + +### 100% Open Source + +Fully open-source with no licensing fees. You can inspect, modify, and contribute to the codebase. + +## Get Involved + +Join our growing community of developers and energy enthusiasts. Together, we're building the future of energy optimization. + +### Discord + +Connect with our community to discuss ideas, ask questions, and collaborate on new features. + +### GitHub + +Explore our codebase, contribute to development, or fork the project to create your own solution. + +## Contact + +- **GitHub**: [edge-mining](https://github.com/edge-mining) +- **Discord**: [Join our community](https://discord.com/invite/VQa9UY5SsS) +- **Website**: [edgemining.energy](https://edgemining.energy) \ No newline at end of file diff --git a/docs/contribution.md b/docs/contribution.md new file mode 100644 index 0000000..959863c --- /dev/null +++ b/docs/contribution.md @@ -0,0 +1,168 @@ +# Contribution + +## Get Involved + +Join our growing community of developers and energy enthusiasts. Together, we're building the future of energy optimization. + +## How to Contribute + +There are many ways to contribute to Edge Mining: + +### πŸ› Report Bugs + +If you find a bug, please: + +1. Search existing [issues](https://github.com/edge-mining/docs/issues) to see if it's already been reported +2. Create a new issue with: + - Clear description of the problem + - Steps to reproduce the bug + - System information (OS, version, etc.) + - Screenshots if applicable + +### πŸ’‘ Suggest New Features + +To suggest new features: + +1. Create an issue with the `enhancement` tag +2. Describe the feature and its value to users +3. Include mockups or examples if possible + +### πŸ“ Improve Documentation + +Documentation is crucial! You can contribute by: + +- Fixing grammatical errors +- Adding examples +- Improving clarity +- Translating to other languages + +### πŸ”§ Contribute Code + +#### Prerequisites + +- Node.js 18+ +- Git +- Knowledge of JavaScript/TypeScript +- Familiarity with Domain-Driven Design principles + +#### Development Environment Setup + +```bash +# Fork and clone the repository +git clone https://github.com/your-username/edge-mining.git +cd edge-mining + +# Install dependencies +npm install + +# Start development server +npm run docs:dev + +# Run tests +npm test +``` + +#### Contribution Process + +1. **Fork** the repository on GitHub +2. **Create a branch** for your feature/fix: + ```bash + git checkout -b feature/your-feature-name + ``` +3. **Make changes** and commit: + ```bash + git add . + git commit -m "feat: add new feature" + ``` +4. **Push** to your fork: + ```bash + git push origin feature/your-feature-name + ``` +5. **Create a Pull Request** on GitHub + +#### Commit Conventions + +We use [Conventional Commits](https://www.conventionalcommits.org/): + +- `feat:` for new features +- `fix:` for bug fixes +- `docs:` for documentation changes +- `style:` for formatting changes +- `refactor:` for code refactoring +- `test:` for adding or modifying tests +- `chore:` for build/configuration changes + +### πŸ§ͺ Testing + +Help us test: + +- Try new features +- Verify bug fixes +- Test on different operating systems +- Report performance issues + +## Code Guidelines + +### Code Style + +- Follow the project's ESLint conventions +- Write readable, well-commented code +- Add tests for new features +- Maintain high test coverage + +### Architecture + +- Keep code modular +- Follow SOLID principles +- Avoid code duplication +- Document public APIs + +### Domain-Driven Design + +Since Edge Mining follows Domain-Driven Design principles: + +- **Entities**: Implement as classes with identity and lifecycle +- **Value Objects**: Immutable objects representing concepts +- **Aggregates**: Clusters of entities with consistency boundaries +- **Repositories**: Abstract data access for aggregates +- **Services**: Domain logic that doesn't belong to entities + +## Review Process + +1. **Automatic checks**: All PRs must pass automatic tests +2. **Code review**: At least one maintainer must approve +3. **Testing**: Changes must be tested +4. **Documentation**: Update documentation if necessary + +## Community + +### Communication Channels + +- **GitHub Issues**: For bugs and feature requests +- **GitHub Discussions**: For general discussions +- **Discord**: [Join our community](https://discord.gg/edgemining) +- **Main Website**: [edgemining.energy](https://edgemining.energy) + +### Events + +- **Hacktoberfest**: Participate every October +- **Community calls**: Monthly community calls +- **Development sprints**: Intensive development sessions + +## Acknowledgments + +All contributors are listed in the [CONTRIBUTORS.md](https://github.com/edge-mining/docs/blob/main/CONTRIBUTORS.md) file. + +## License + +By contributing to Edge Mining, you agree that your contributions will be released under the MIT license of the project. + +## Questions? + +If you have questions about contributing, don't hesitate to: + +- Open an issue on GitHub +- Ask on GitHub Discussions +- Contact the maintainers on Discord + +Thank you for your contribution! πŸš€ \ No newline at end of file diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 0000000..e62a35e --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,157 @@ +# Frequently Asked Questions (FAQ) + +## General Questions + +### What is Edge Mining? + +Edge Mining is a research-driven, open-source project that transforms surplus energy into Bitcoin-powered digital value. Instead of wasting energy during low-demand periods, Edge Mining converts it directly into Bitcoin, creating sustainable and intelligent value. + +### Why does Edge Mining exist? + +Energy often goes unused during low-demand periods. Instead of selling cheaply, investing in costly storage, or wasting this energy, Edge Mining converts it directly into Bitcoin, creating value sustainably and intelligently. + +### What stage of development is Edge Mining in? + +Edge Mining is currently in an **alpha stage** of development. Our research-driven approach is rapidly evolving, and features, performance, and reliability are continuously improving. + +## Technical Questions + +### What are the key features of Edge Mining? + +- **Smart Automation**: Intelligent automation based on energy availability to maximize efficiency +- **Heat Recovery**: Advanced heat recovery systems for practical applications +- **Versatile Sizing**: Designed for small to medium energy installations +- **100% Open Source**: Fully open-source with no licensing fees + +### What energy sources does Edge Mining support? + +Edge Mining is designed to work with various energy sources, including: +- Solar power +- Wind energy +- Hydroelectric power +- Any other renewable or surplus energy source + +### How does the heat recovery system work? + +Our advanced heat recovery systems capture the heat generated during Bitcoin mining and convert it into useful energy for practical applications, improving overall efficiency. + +### Is Edge Mining really 100% open source? + +Yes! Edge Mining is fully open-source with no licensing fees. You can inspect, modify, and contribute to the codebase. + +## Getting Started + +### How can I get involved with Edge Mining? + +There are several ways to get involved: + +1. **Join our Discord community** to discuss ideas and ask questions +2. **Explore our GitHub repository** to understand the codebase +3. **Contribute to development** by submitting pull requests +4. **Help with documentation** and testing +5. **Share feedback** and suggestions + +### Do I need technical skills to contribute? + +While technical skills are helpful, there are many ways to contribute: +- **Documentation**: Help improve our documentation +- **Testing**: Test features and report bugs +- **Community**: Help answer questions and support other users +- **Feedback**: Share ideas and suggestions + +### How can I stay updated on Edge Mining development? + +- **GitHub**: Follow our [repository](https://github.com/edge-mining) for code updates +- **Discord**: Join our [community](https://discord.com/invite/VQa9UY5SsS) for real-time discussions +- **Website**: Check [edgemining.energy](https://edgemining.energy) for updates + +## Community and Support + +### Where can I get help? + +- **Discord**: [Join our community](https://discord.gg/edgemining) for real-time support +- **GitHub Issues**: Report bugs and request features +- **GitHub Discussions**: Ask questions and share ideas +- **Documentation**: Explore our comprehensive documentation + +### How can I report a bug? + +1. Search existing [issues](https://github.com/edge-mining/docs/issues) to see if it's already been reported +2. Create a new issue with: + - Clear description of the problem + - Steps to reproduce the bug + - System information (OS, version, etc.) + - Screenshots if applicable + +### How can I suggest a new feature? + +1. Create an issue with the `enhancement` tag +2. Describe the feature and its value to users +3. Include mockups or examples if possible + +## Development and Architecture + +### What is Domain-Driven Design (DDD)? + +Domain-Driven Design is an approach to software development that focuses on creating a shared understanding between technical and non-technical stakeholders. Edge Mining uses DDD principles to organize code around business domains. + +### What technologies does Edge Mining use? + +Edge Mining uses modern web technologies and follows best practices for: +- **Backend**: Node.js/TypeScript with clean architecture +- **Frontend**: Modern web frameworks +- **Database**: Efficient data storage solutions +- **Infrastructure**: Scalable deployment options + +### How is the project organized? + +The project follows a modular architecture with clear separation of concerns: +- **Mining Domain**: Core mining functionality +- **Network Domain**: Communication and connectivity +- **Wallet Domain**: Cryptocurrency management +- **User Domain**: User management and authentication + +## Future Plans + +### What's the roadmap for Edge Mining? + +**Short Term (Next 6 Months)**: +- Complete alpha stage development +- Stabilize core features +- Improve documentation +- Expand community engagement + +**Medium Term (6-12 Months)**: +- Release beta version +- Implement advanced automation features +- Enhance heat recovery systems +- Scale to larger installations + +**Long Term (1+ Years)**: +- Production-ready release +- Advanced AI-powered optimization +- Integration with multiple energy sources +- Global community adoption + +### Will Edge Mining support other cryptocurrencies? + +Currently, Edge Mining focuses on Bitcoin. Future support for other cryptocurrencies will be considered based on community needs and technical feasibility. + +## Contact and Links + +### Where can I find more information? + +- **Website**: [edgemining.energy](https://edgemining.energy) +- **GitHub**: [edge-mining/docs](https://github.com/edge-mining/docs) +- **Discord**: [Join our community](https://discord.gg/edgemining) + +### How can I contact the team? + +The best way to contact us is through: +- **Discord**: For real-time communication +- **GitHub Issues**: For bug reports and feature requests +- **GitHub Discussions**: For general questions and discussions + +--- + +*This FAQ is continuously updated. If you have a question that's not answered here, please ask in our [Discord community](https://discord.gg/edgemining) or create a [GitHub discussion](https://github.com/edge-mining/docs/discussions).* \ No newline at end of file diff --git a/docs/intro.md b/docs/intro.md new file mode 100644 index 0000000..7872e2c --- /dev/null +++ b/docs/intro.md @@ -0,0 +1,39 @@ +# Introduction + +Welcome to Edge Mining - a research-driven, open-source project that transforms surplus energy into Bitcoin-powered digital value. + +## What is Edge Mining? + +Edge Mining is an innovative solution that addresses the challenge of unused energy during low-demand periods. Instead of selling energy cheaply, investing in costly storage, or simply wasting it, Edge Mining converts surplus energy directly into Bitcoin, creating sustainable and intelligent value. + +## Our Mission + +We believe that energy should never go to waste. Our mission is to unlock new economic possibilities from otherwise wasted resources by leveraging the power of Bitcoin mining to create value from surplus energy. + +## Key Principles + +- **Sustainability**: Convert waste energy into valuable digital assets +- **Intelligence**: Smart automation based on energy availability +- **Efficiency**: Maximize the value of every kilowatt-hour +- **Open Source**: Transparent, community-driven development +- **Innovation**: Research-driven approach to energy optimization + +## Current Status + +Edge Mining is currently in an **alpha stage** of development. Our research-driven approach is rapidly evolving, and features, performance, and reliability are continuously improving. + +## Getting Started + +To get involved with Edge Mining: + +1. **Explore the Documentation**: Start with our [About Us](./about-us.md) page +2. **Understand the Product**: Learn about our [Product Cycle](./product/product-cycle.md) +3. **Study the Architecture**: Dive into our [Domain-Driven Architecture](./modelling/domain-driven-architecture-overview.md) +4. **Join the Community**: Connect with us on [Discord](https://discord.com/invite/VQa9UY5SsS) and [GitHub](https://github.com/bitsalv/edgemining.energy) + +## Next Steps + +- [About Us](./about-us.md) - Learn more about our mission and values +- [Product Cycle](./product/product-cycle.md) - Understand our development process +- [Contribution](./contribution.md) - Find out how to contribute +- [FAQ](./faq.md) - Get answers to common questions \ No newline at end of file diff --git a/docs/modelling/README.md b/docs/modelling/README.md new file mode 100644 index 0000000..25a24b7 --- /dev/null +++ b/docs/modelling/README.md @@ -0,0 +1,59 @@ +# Architecture Documentation + +This section contains the architectural documentation for the Edge Mining platform, focusing on Domain-Driven Design principles and system architecture. + +## Overview + +Edge Mining follows a **Domain-Driven Design (DDD)** approach to create a clean, maintainable, and scalable architecture. The system is organized into distinct domains and subdomains, each with clear boundaries and responsibilities. + +## Documentation Structure + +### [Domain-Driven Architecture Overview](./domain-driven-architecture-overview.md) + +A comprehensive overview of the Edge Mining architecture, including: + +- **Core Domains**: Mining, Network, Wallet, and User domains +- **Subdomains**: Specific areas within each domain +- **Bounded Contexts**: Clear boundaries between domains +- **Architectural Patterns**: Clean Architecture, CQRS, Event Sourcing +- **Technology Stack**: Backend, frontend, and infrastructure choices +- **Implementation Guidelines**: Code organization and testing strategies + +### [Glossary](./glossary.md) + +A comprehensive glossary of terms and concepts used throughout the Edge Mining documentation and codebase, including: + +- **Domain-Driven Design terms**: Aggregate, Entity, Value Object, etc. +- **Cryptocurrency terms**: Block, Hash, Mining Pool, etc. +- **Technical terms**: API, Repository, Service, etc. + +## Key Architectural Principles + +1. **Domain-Driven Design**: Organize code around business domains +2. **Clean Architecture**: Separate concerns into layers +3. **CQRS**: Separate read and write operations +4. **Event Sourcing**: Store all changes as events +5. **Microservices**: Decompose into small, focused services + +## Getting Started with Architecture + +1. **Read the Overview**: Start with the [Domain-Driven Architecture Overview](./domain-driven-architecture-overview.md) +2. **Understand the Glossary**: Familiarize yourself with the [Glossary](./glossary.md) +3. **Explore the Code**: Look at the actual implementation in the main repository +4. **Join Discussions**: Participate in architectural discussions on GitHub + +## Contributing to Architecture + +When contributing to the architecture: + +1. **Follow DDD Principles**: Organize code around business domains +2. **Maintain Boundaries**: Keep bounded contexts separate +3. **Document Changes**: Update this documentation when making architectural changes +4. **Get Review**: Have architectural changes reviewed by the team + +## Related Resources + +- [Main Project Repository](https://github.com/bitsalv/edgemining.energy) +- [Domain-Driven Design Resources](https://martinfowler.com/bliki/DomainDrivenDesign.html) +- [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) +- [Event Sourcing](https://martinfowler.com/eaaDev/EventSourcing.html) \ No newline at end of file diff --git a/docs/modelling/domain-driven-architecture-overview.md b/docs/modelling/domain-driven-architecture-overview.md new file mode 100644 index 0000000..1bdd2f3 --- /dev/null +++ b/docs/modelling/domain-driven-architecture-overview.md @@ -0,0 +1,245 @@ +# Domain-Driven Architecture Overview + +## Introduction + +Edge Mining follows a **Domain-Driven Design (DDD)** approach to create a clean, maintainable, and scalable architecture. This document provides an overview of the domain model and architectural decisions that guide the development of the Edge Mining platform. + +## Core Domains + +The Edge Mining system is organized into several core domains, each representing a distinct area of business functionality: + +### 1. Mining Domain + +The **Mining Domain** is the heart of the system, responsible for all mining-related operations. + +**Key Concepts:** +- **Mining Pool**: A collection of miners working together to solve cryptographic puzzles +- **Mining Task**: A specific computational task assigned to miners +- **Hash Rate**: The computational power contributed by a miner +- **Block Reward**: The cryptocurrency reward for successfully mining a block + +**Responsibilities:** +- Task distribution and management +- Hash rate calculation and monitoring +- Block validation and submission +- Reward distribution + +### 2. Network Domain + +The **Network Domain** handles all network-related operations and peer-to-peer communication. + +**Key Concepts:** +- **Node**: A participant in the Edge Mining network +- **Peer**: Another node in the network +- **Connection**: A network connection between nodes +- **Message**: A communication unit between nodes + +**Responsibilities:** +- Peer discovery and management +- Message routing and delivery +- Network topology maintenance +- Connection health monitoring + +### 3. Wallet Domain + +The **Wallet Domain** manages cryptocurrency wallets and transactions. + +**Key Concepts:** +- **Wallet**: A digital wallet for storing cryptocurrency +- **Address**: A unique identifier for a wallet +- **Transaction**: A transfer of cryptocurrency +- **Balance**: The current amount of cryptocurrency in a wallet + +**Responsibilities:** +- Wallet creation and management +- Transaction processing +- Balance tracking +- Security and encryption + +### 4. User Domain + +The **User Domain** handles user management and authentication. + +**Key Concepts:** +- **User**: An individual using the Edge Mining platform +- **Account**: A user's account information +- **Profile**: User profile and preferences +- **Session**: An active user session + +**Responsibilities:** +- User registration and authentication +- Profile management +- Session handling +- Access control + +## Subdomains + +Each core domain is further divided into subdomains that handle specific aspects of the domain: + +### Mining Subdomains + +- **Task Management**: Handles mining task creation, distribution, and completion +- **Performance Monitoring**: Tracks mining performance and statistics +- **Reward Processing**: Manages reward calculation and distribution + +### Network Subdomains + +- **Peer Discovery**: Finds and maintains connections with other nodes +- **Message Handling**: Processes and routes network messages +- **Topology Management**: Maintains network structure and routing + +### Wallet Subdomains + +- **Address Management**: Handles wallet address creation and validation +- **Transaction Processing**: Manages transaction creation and verification +- **Security**: Implements wallet security measures + +### User Subdomains + +- **Authentication**: Handles user login and session management +- **Profile Management**: Manages user profiles and preferences +- **Authorization**: Controls access to system resources + +## Bounded Contexts + +Each domain is implemented within its own **Bounded Context**, which defines clear boundaries and interfaces: + +### Context Mapping + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Mining β”‚ β”‚ Network β”‚ β”‚ Wallet β”‚ +β”‚ Context │◄──►│ Context │◄──►│ Context β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ β”‚ β”‚ + β–Ό β–Ό β–Ό +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ User β”‚ β”‚ Analytics β”‚ β”‚ Notification β”‚ +β”‚ Context β”‚ β”‚ Context β”‚ β”‚ Context β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +### Context Relationships + +- **Shared Kernel**: Common utilities and shared models +- **Customer-Supplier**: Clear dependencies between contexts +- **Conformist**: Adherence to external standards and protocols +- **Anti-Corruption Layer**: Protection against external system changes + +## Architectural Patterns + +### Clean Architecture + +The system follows Clean Architecture principles with clear separation of concerns: + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Presentation Layer β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ Application Layer β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ Domain Layer β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ Infrastructure Layer β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +### CQRS (Command Query Responsibility Segregation) + +The system separates read and write operations: + +- **Commands**: Operations that change system state +- **Queries**: Operations that retrieve data +- **Command Handlers**: Process commands and update state +- **Query Handlers**: Retrieve and format data for display + +### Event Sourcing + +Key domain events are stored and can be replayed to reconstruct system state: + +- **Domain Events**: Significant occurrences in the domain +- **Event Store**: Persistent storage of domain events +- **Event Handlers**: React to domain events +- **Projections**: Build read models from events + +## Technology Stack + +### Backend + +- **Language**: Node.js/TypeScript +- **Framework**: Express.js or Fastify +- **Database**: PostgreSQL with event sourcing +- **Message Queue**: Redis or RabbitMQ +- **Caching**: Redis + +### Frontend + +- **Framework**: React or Vue.js +- **State Management**: Redux or Vuex +- **UI Library**: Material-UI or Vuetify +- **Real-time**: WebSocket connections + +### Infrastructure + +- **Containerization**: Docker +- **Orchestration**: Kubernetes +- **Monitoring**: Prometheus + Grafana +- **Logging**: ELK Stack (Elasticsearch, Logstash, Kibana) + +## Implementation Guidelines + +### Domain Model Implementation + +1. **Entities**: Implement as classes with identity and lifecycle +2. **Value Objects**: Immutable objects representing concepts +3. **Aggregates**: Clusters of entities with consistency boundaries +4. **Repositories**: Abstract data access for aggregates +5. **Services**: Domain logic that doesn't belong to entities + +### Code Organization + +``` +src/ +β”œβ”€β”€ domains/ +β”‚ β”œβ”€β”€ mining/ +β”‚ β”‚ β”œβ”€β”€ entities/ +β”‚ β”‚ β”œβ”€β”€ value-objects/ +β”‚ β”‚ β”œβ”€β”€ aggregates/ +β”‚ β”‚ β”œβ”€β”€ repositories/ +β”‚ β”‚ └── services/ +β”‚ β”œβ”€β”€ network/ +β”‚ β”œβ”€β”€ wallet/ +β”‚ └── user/ +β”œβ”€β”€ shared/ +β”‚ β”œβ”€β”€ domain/ +β”‚ β”œβ”€β”€ infrastructure/ +β”‚ └── application/ +└── presentation/ + β”œβ”€β”€ api/ + └── web/ +``` + +### Testing Strategy + +- **Unit Tests**: Test individual domain objects and services +- **Integration Tests**: Test interactions between components +- **End-to-End Tests**: Test complete user workflows +- **Performance Tests**: Ensure system meets performance requirements + +## Benefits of This Architecture + +1. **Maintainability**: Clear separation of concerns makes the code easier to maintain +2. **Scalability**: Modular design allows for independent scaling of components +3. **Testability**: Domain logic is isolated and easily testable +4. **Flexibility**: Changes in one domain don't affect others +5. **Team Productivity**: Teams can work on different domains independently + +## Next Steps + +1. **Detailed Domain Models**: Create detailed models for each domain +2. **API Design**: Design RESTful APIs for each bounded context +3. **Database Schema**: Design database schemas for each context +4. **Implementation Plan**: Create a phased implementation plan +5. **Team Structure**: Organize teams around domain boundaries + +This architecture provides a solid foundation for building a robust, scalable, and maintainable Edge Mining platform that can evolve with changing requirements and growing user needs. \ No newline at end of file diff --git a/docs/modelling/glossary.md b/docs/modelling/glossary.md new file mode 100644 index 0000000..dda71aa --- /dev/null +++ b/docs/modelling/glossary.md @@ -0,0 +1,160 @@ +# Glossary + +This glossary defines key terms and concepts used throughout the Edge Mining documentation and codebase. + +## A + +### Aggregate +A cluster of domain objects that can be treated as a single unit for data changes. Aggregates have a root entity that maintains consistency boundaries. + +### Anti-Corruption Layer +A design pattern that isolates a system from external dependencies by translating between different data models and protocols. + +### API (Application Programming Interface) +A set of rules and protocols that allows different software applications to communicate with each other. + +## B + +### Block +A collection of transactions in a blockchain that has been cryptographically linked to the previous block. + +### Block Reward +The cryptocurrency reward given to miners for successfully mining a new block in the blockchain. + +### Bounded Context +A boundary within which a particular domain model is defined and applicable. It helps manage complexity by clearly defining what belongs to the domain and what doesn't. + +## C + +### Command +An object that represents an intention to change the state of the system. Commands are processed by command handlers. + +### CQRS (Command Query Responsibility Segregation) +A pattern that separates read and write operations for a data store, allowing them to be optimized independently. + +### Cryptocurrency +A digital or virtual currency that uses cryptography for security and operates on a decentralized network. + +## D + +### Domain +A sphere of knowledge, influence, or activity. In Domain-Driven Design, a domain represents a specific area of business functionality. + +### Domain Event +A significant occurrence that happened within the domain. Domain events are used to communicate changes between different parts of the system. + +### Domain Model +A conceptual model of the domain that incorporates both behavior and data. It represents the core business logic and rules. + +### Domain Service +A service that implements domain logic that doesn't naturally belong to any entity or value object. + +## E + +### Edge Device +A computing device that performs data processing at the edge of a network, closer to the data source, rather than in a centralized location. + +### Entity +An object that has a unique identity and a lifecycle that can change over time. Entities are defined by their identity rather than their attributes. + +### Event Sourcing +A pattern where all changes to application state are stored as a sequence of events. The current state can be reconstructed by replaying these events. + +## F + +### Fork +A situation where a blockchain splits into two separate chains, usually due to a disagreement in the network about which version of the blockchain to follow. + +## H + +### Hash +A mathematical function that converts input data of any size into a fixed-size string of characters. In cryptocurrency mining, hashes are used to secure the blockchain. + +### Hash Rate +The speed at which a computer or network can perform hash operations. It's a measure of mining power and is typically expressed in hashes per second (H/s). + +## M + +### Mining +The process of validating and adding new transactions to a blockchain by solving complex mathematical puzzles. + +### Mining Pool +A group of miners who combine their computational resources to increase their chances of successfully mining blocks and earning rewards. + +### Mining Task +A specific computational task assigned to miners, typically involving finding a hash that meets certain criteria. + +## N + +### Node +A computer or device that participates in a blockchain network by maintaining a copy of the blockchain and validating transactions. + +### Nonce +A number used once in cryptographic communications. In mining, it's a value that miners change to try to find a valid hash. + +## P + +### Peer +Another node in the network with which a node can communicate directly. + +### Proof of Work (PoW) +A consensus mechanism that requires participants to perform computational work to validate transactions and create new blocks. + +## Q + +### Query +An object that represents a request for data from the system. Queries are processed by query handlers and do not change system state. + +## R + +### Repository +An abstraction that encapsulates the logic required to access data sources. Repositories provide a collection-like interface for accessing domain objects. + +### Reward +The cryptocurrency payment given to miners for successfully mining a block or contributing to the network. + +## S + +### Service +A stateless object that implements domain logic that doesn't belong to any entity or value object. + +### Shared Kernel +A design pattern where multiple bounded contexts share a common subset of the domain model, including code, database schema, and language. + +### Smart Contract +A self-executing contract with the terms of the agreement directly written into code. Smart contracts run on blockchain platforms. + +## T + +### Transaction +A record of a cryptocurrency transfer from one address to another. Transactions are grouped together in blocks. + +### Transaction Fee +A small amount of cryptocurrency paid to miners for processing and validating a transaction. + +## U + +### User Story +A description of a feature from the perspective of the end user. User stories help guide development by focusing on user value. + +## V + +### Value Object +An object that represents a descriptive aspect of the domain with no conceptual identity. Value objects are defined by their attributes rather than their identity. + +## W + +### Wallet +A digital tool that allows users to store, send, and receive cryptocurrency. Wallets contain private keys that are used to sign transactions. + +### WebSocket +A communication protocol that provides full-duplex communication channels over a single TCP connection, enabling real-time data exchange. + +## Z + +### Zero-Knowledge Proof +A cryptographic method that allows one party to prove to another that a statement is true without revealing any information beyond the validity of the statement itself. + +--- + +This glossary is a living document that will be updated as the Edge Mining platform evolves. If you encounter terms that are not defined here, please contribute to the documentation by adding them. \ No newline at end of file diff --git a/docs/product/product-cycle.md b/docs/product/product-cycle.md new file mode 100644 index 0000000..c060d2d --- /dev/null +++ b/docs/product/product-cycle.md @@ -0,0 +1,139 @@ +# Product Cycle + +## Overview + +Edge Mining follows a research-driven product development cycle that emphasizes continuous improvement, community feedback, and sustainable innovation. + +## Development Phases + +### Alpha Stage (Current) + +We are currently in the alpha stage of development. This means: + +- **Research Phase**: Exploring different approaches and technologies +- **Prototype Development**: Building and testing initial concepts +- **Community Feedback**: Gathering input from early adopters +- **Rapid Iteration**: Quickly implementing improvements based on feedback + +### Key Characteristics of Alpha + +- **Experimental Features**: New features are being tested and refined +- **Performance Optimization**: Continuous work on efficiency and reliability +- **Architecture Evolution**: The system architecture is being refined +- **Documentation Development**: Comprehensive documentation is being created + +## Development Process + +### 1. Research and Planning + +- Identify energy optimization opportunities +- Research new technologies and approaches +- Plan feature development and architecture improvements +- Gather community feedback and requirements + +### 2. Design and Architecture + +- Design new features using Domain-Driven Design principles +- Create architectural diagrams and documentation +- Plan integration with existing systems +- Consider scalability and maintainability + +### 3. Development and Testing + +- Implement new features following open-source best practices +- Conduct thorough testing and validation +- Optimize performance and efficiency +- Ensure code quality and documentation + +### 4. Community Review + +- Share developments with the community +- Gather feedback and suggestions +- Incorporate improvements based on community input +- Maintain transparency throughout the process + +### 5. Release and Iteration + +- Release new versions with improvements +- Monitor performance and gather usage data +- Plan next iteration based on feedback +- Continue the cycle of improvement + +## Key Focus Areas + +### Smart Automation + +- **Energy Availability Detection**: Automatically detect when surplus energy is available +- **Intelligent Scheduling**: Optimize mining operations based on energy patterns +- **Performance Monitoring**: Track and optimize system performance +- **Adaptive Algorithms**: Continuously improve automation logic + +### Heat Recovery Systems + +- **Thermal Management**: Efficient heat capture and utilization +- **Practical Applications**: Convert heat into useful energy +- **System Integration**: Seamless integration with existing infrastructure +- **Efficiency Optimization**: Maximize heat recovery efficiency + +### Versatile Sizing + +- **Scalable Architecture**: Support for various installation sizes +- **Modular Design**: Easy to adapt to different energy sources +- **Flexible Configuration**: Customizable for specific needs +- **Resource Optimization**: Efficient use of available resources + +### Open Source Development + +- **Transparent Codebase**: All code is open and accessible +- **Community Contributions**: Welcome contributions from the community +- **Documentation**: Comprehensive documentation for all features +- **Licensing**: No licensing fees or restrictions + +## Future Roadmap + +### Short Term (Next 6 Months) + +- Complete alpha stage development +- Stabilize core features +- Improve documentation +- Expand community engagement + +### Medium Term (6-12 Months) + +- Release beta version +- Implement advanced automation features +- Enhance heat recovery systems +- Scale to larger installations + +### Long Term (1+ Years) + +- Production-ready release +- Advanced AI-powered optimization +- Integration with multiple energy sources +- Global community adoption + +## Community Involvement + +The product cycle is heavily influenced by community feedback and contributions: + +- **Feature Requests**: Community suggestions drive new features +- **Bug Reports**: Community helps identify and fix issues +- **Code Contributions**: Community members contribute to development +- **Testing and Validation**: Community provides real-world testing +- **Documentation**: Community helps improve documentation + +## Get Involved + +To participate in the product development cycle: + +1. **Join the Community**: Connect with us on [Discord](https://discord.gg/edgemining) +2. **Explore the Code**: Check out our [GitHub repository](https://github.com/edge-mining/docs) +3. **Provide Feedback**: Share your ideas and suggestions +4. **Contribute Code**: Submit pull requests and improvements +5. **Test Features**: Help test new features and provide feedback + +## Contact + +- **GitHub**: [edge-mining/docs](https://github.com/edge-mining/docs) +- **Discord**: [Join our community](https://discord.gg/edgemining) +- **Website**: [edgemining.energy](https://edgemining.energy) \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..79d586c --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "edge-mining-docs", + "version": "1.0.0", + "description": "Edge Mining Documentation - Mine your energy", + "main": "index.js", + "scripts": { + "docs:dev": "vuepress dev .", + "docs:build": "vuepress build .", + "docs:clean": "rm -rf .vuepress/dist .vuepress/.temp .vuepress/.cache" + }, + "keywords": [ + "edge-mining", + "documentation", + "vuepress", + "energy", + "bitcoin", + "mining" + ], + "author": "Edge Mining Team", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/edge-mining/docs.git" + }, + "homepage": "https://edgemining.energy", + "devDependencies": { + "@vuepress/bundler-vite": "^2.0.0-rc.4", + "@vuepress/theme-default": "^2.0.0-rc.4", + "vuepress": "^2.0.0-rc.4", + "sass-embedded": "^1.69.0" + } +}