50 किलोवाट (kW) माइनिंग सेटअप शुरू करना घरेलू 'प्ललग' और कमर्शियल डेटा सेंटर के बीच की बॉर्डर लाइन है। एक तरफ, 50 kW का एक्टिव लोड अभी भी किसी छोटे कमर्शियल स्पेस या अपने खुद के ट्रांसफॉर्मर (टीपी) वाले प्राइवेट प्लॉट पर चलाया जा सकता है। दूसरी तरफ, इसमें लगभग 14–15 मॉडर्न ASIC माइनर्स होते हैं, जिनमें से हर एक 3.5 kW तक हीट जनरेट करता है, सिंगल फेज पर 15 से 16 एम्पियर खींचता है और प्रति घंटे 600–800 क्यूबिक मीटर एयरफ्लो मांगता है।
इस गाइड में 50 kW माइनिंग फर्म की डिजाइनिंग, हार्डवेयर प्रोक्योरमेंट, इलेक्ट्रिकल वायरिंग, कूलिंग और ऑटोमेशन का प्रैक्टिकल ब्लूप्रिंट दिया गया है। कोई बकवास या किताबी ज्ञान नहीं—सिर्फ पक्के आंकड़े, हार्डवेयर, केबल, ग्राउंड वाटर प्रोफाइल और युद्ध-परीक्षणित मॉनिटरिग स्क्रिप्ट्स।
1. शुरुआती पैरामीटर और इलेक्ट्रिकल इंफ्रास्ट्रक्चर
किसी भी माइनिंग बिजनेस की नींव होती है किलोवाट-घंटे (kWh) की लागत और सबस्टेशन की रिलायबिलिटी। 50 kW के लगातार 24/7 लोड के लिए आपके मेन ब्रेकर की रेटिंग करंट पर 20% सेफ्टी मार्जिन के साथ कैलकुलेट की जानी चाहिए (लगातार लोड के लिए NFPA/IEC स्टैंडर्ड के अनुसार)।
I_total = P / (√3 · U · cosφ) = 50000 / (√3 · 380 · 0.95) ≈ 79.8 A
1.25 के मार्जिन को ध्यान में रखते हुए, मेन ब्रेकर कम से कम 100A (3-फेज) का होना चाहिए।
इलेक्ट्रिकल पैनल स्पेसिफिकेशन (HT/LT मेन डिस्ट्रीब्यूशन बोर्ड 50 kW)
- मेन ब्रेकर: 3P 100A (कर्व C, ब्रेकिंग कैपेसिटी कम से कम 10 kA, उदाहरण के लिए, SE Acti9 या ABB S200)।
- फेज डिस्ट्रीब्यूशन: 3 फेज L1, L2, L3, जिन्हें हर फेज पर ठीक 5 डिवाइस के हिसाब से समान रूप से बांटा गया हो (15 डिवाइस होने पर) ताकि फेज इम्बैलेंस और न्यूट्रल करंट से बचा जा सके।
- सबस्टेशन से पैनल तक केबल लाइन: ट्रेंच में बिछाने के लिए 4x25 mm² कॉपर केबल (VVGng-LS जैसी) या 4x50 mm² एल्युमिनियम केबल (50 मीटर पर वोल्टेज ड्रॉप 2% से ज्यादा न हो)।
- ग्रुप लाइन प्रोटेक्शन: हर ASIC के लिए अलग से 2P 20A ब्रेकर (कर्व C) + 3x2.5 mm² केबल (कॉपर, फायर-प्रूफ, डबल इंसुलेशन वाली)।
- अर्थिंग: TN-S या TN-C-S अर्थिंग ग्रिड जिसका रेजिस्टेंस 4 ओम से ज्यादा न हो (इसे 2.5 मीटर की 3 कॉपर-कोटेड रॉड को त्रिकोण में गाड़कर और 40x4 mm स्ट्रिप से वेल्ड करके बनाया जाता है)।
2. हार्डवेयर सिलेक्शन और CAPEX (कैपिटल एक्सपेंडिचर)
कैलकुलेशन के लिए हम इंडस्ट्री का गोल्डन स्टैंडर्ड लेंगे—Bitmain Antminer S19k Pro / S21 सीरीज या MicroBT Whatsminer M50/M60। 50 kW के सटीक लोड के लिए 14 यूनिट Antminer S21 (200 TH/s) लेना सबसे सही है, जिसमें हर मशीन का स्टैंडर्ड पावर कंजम्पशन लगभग 3500W होता है।
- कुल हैशरेट: 14 · 200 TH/s = 2800 TH/s = 2.8 PH/s
- कुल पावर कंजम्पशन: 14 · 3500 W = 49 kW (वेंटिलेशन को ध्यान में रखते हुए 50 kW की लिमिट के अंदर फिट बैठता है)।
कैपिटल एक्सपेंडिचर (CAPEX) टेबल
| खर्चे का नाम | स्पेसिफिकेशन / विवरण | मात्रा | प्रति यूनिट कीमत ($) | कुल ($) |
|---|---|---|---|---|
| ASIC माइनर्स | Antminer S21 200 TH/s (3500W) | 14 यूनिट | 3,800 | 53,200 |
| मेन डिस्ट्रीब्यूशन बोर्ड (MDB) | ABB/SE ब्रेकर्स, कॉन्टैक्टर्स, वोल्टमीटर, SPD | 1 सेट | 1,200 | 1,200 |
| केबल वायरिंग | 3x2.5 केबल, ट्रे, PDU C19 (16A) | 14 लाइनें | 70 | 980 |
| कूलिंग / वेंटिलेशन | इंडस्ट्रियल एक्सियल फैन (12,000 m³/h) + VFD (फ्रीक्वेंसी इन्वर्टर) | 2 यूनिट | 850 | 1,700 |
| इनटेक फिल्ट्रेशन | फ्रेम, G4/F7 फिल्टर्स (डस्ट रिमूवल), लौवर्स | 1 सेट | 600 | 600 |
| नेटवर्क इंफ्रास्ट्रक्चर | Mikrotik 24-पोर्ट मैनेज्ड स्विच, 4G/WAN राउटर, UPS | 1 सेट | 550 | 550 |
| अर्थिंग ग्रिड | अर्थिंग किट, इंस्टॉलेशन, मेजरमेंट | 1 सेट | 350 | 350 |
| इंस्टॉलेशन का काम | रैक असेंबली, इलेक्ट्रिकल वायरिंग, कमिशनिंग | - | - | 1,500 |
| कुल CAPEX | $60,080 |
3. कूलिंग और वेंटिलेशन: थर्मोडायनामिक कैलकुलेशन
नॉन-प्रोफेशनल लोगों की सबसे बड़ी गलती घरेलू एसी लगाना होती है। एसी रेफ्रीजिरेंट साइकिल के जरिए नमी हटाता है और तापमान कम करता है, लेकिन 50 kW की हीट के लिए आपको 150,000 BTU का एसी चाहिए होगा जो खुद 15–18 kW बिजली और खा जाएगा।
माइनिंग को केवल फोर्सड-एयर इंटेक-एग्जॉस्ट वेंटिलेशन (एयर ब्लोइंग) से ठंडा किया जाता है।
एयर एक्सचेंज वॉल्यूम कैलकुलेशन
जरूरी एयरफ्लो रेट का फॉर्मूला:
Q = P_dissip / (ρ · c_p · ΔT)
जहां:
- P_dissip = 49000 W (निकलने वाली हीट)
- ρ = 1.2 kg/m³ (20°C पर हवा का घनत्व)
- c_p = 1005 J/(kg·K) (हवा की स्पेसिफिक हीट कैपेसिटी)
- ΔT = 15°C (इनटेक और एग्जॉस्ट के बीच स्वीकार्य तापमान अंतर)
Q = 49000 / (1.2 · 1005 · 15) ≈ 2.708 m³/s = 9750 m³/h
कोर्स फिल्टर्स (G4) के रेजिस्टेंस को ध्यान में रखते हुए, कम से कम 12,000 – 14,000 m³/h की कुल क्षमता वाले पंखे लगाने जरूरी हैं।
जोन सेपरेशन (हॉट/कोल्ड आइल)
- कोल्ड आइल: फिल्टर दीवारों के जरिए बाहर से ताजी हवा अंदर आती है। यहां एयर प्रेशर थोड़ा ज्यादा होता है।
- हॉट आइल: ASIC माइनर्स को एक सील्ड पार्टीशन (डिफ्यूज़र वाले रैक) में फिट किया जाता है। एसिक के अपने कूलर्स गर्म हवा को एक आइसोलेटेड चैंबर में फेंकते हैं, जहां से इंडस्ट्रियल एग्जॉस्ट फैन उसे बाहर फेंक देता है।
4. OPEX और ऑपरेशनल खर्चे (मंथली कैलकुलेशन)
ऑपरेशनल खर्चों में तीन मुख्य चीजें शामिल हैं: बिजली, जगह का किराया, इंटरनेट और टेक्निकल मेंटेनेंस।
कमर्शियल बिजली की औसत लागत $0.07 प्रति kWh मान लेते हैं।
महीने की बिजली की खपत का हिसाब
- घंटे का कंजम्पशन: 49 kW (माइनर्स) + 1.5 kW (वेंटिलेशन और नेटवर्क) = 50.5 kW
- दिन का कंजम्पशन: 50.5 · 24 = 1212 kWh
- महीने का कंजम्पशन (30.5 दिन): 1212 · 30.5 = 36,966 kWh
- महीने का बिजली का खर्चा: 36,966 · $0.07 = $2,587.62
फिक्स्ड मंथली खर्चे (OPEX)
| खर्च का प्रकार | विवरण | राशि ($) |
|---|---|---|
| बिजली | 36,966 kWh, $0.07/kWh के हिसाब से | 2,587.62 |
| जगह का किराया | इंडस्ट्रियल/गोदाम स्पेस 20-30 m² | 300.00 |
| कनेक्टिविटी और इंटरनेट | मेन लाइन (फाइबर) + बैकअप (4G) | 40.00 |
| मेंटेनेंस फंड / स्पेयर पार्ट्स | ASIC फैन बदलना, फिल्टर की सफाई, कंज्यूमेबल्स | 150.00 |
| कुल OPEX / महीना | $3,077.62 |
5. रेवेन्यू, पेबैक (ROI) और फाइनेंशियल मॉडल
कमाई का हिसाब लगाने के लिए 2026 के बिटकॉइन नेटवर्क डिफिकल्टी और ब्लॉक रिवॉर्ड के आंकड़ों का इस्तेमाल करेंगे। मान लीजिए कि 1 TH/s से रोज लगभग $0.042 की कमाई होती है (बिजली का खर्च हटाए बिना, BTC रेट ~$65,000 होने पर)।
रेवेन्यू कैलकुलेशन
- कुल हैशरेट: 2800 TH/s
- रोजाना की कमाई: 2800 · $0.042 = $117.60
- महीने की कमाई (30.5 दिन): $117.60 · 30.5 = $3,586.80
नेट प्रॉफिट (EBITDA / नेट प्रॉफिट)
- Net Profit/mo = रेवेन्यू ($3,586.80) - OPEX ($3,077.62) = $509.18 (प्रति TH/s प्रॉफिट बढ़ने पर यह आंकड़ा ऊपर जाता है; BTC रेट $90,000 होने पर मुनाफा उसी हिसाब से बढ़ जाता है)।
ROI पर मार्केट रेट और बिजली के असर को लेकर जरूरी नोट:
अगर बिजली का रेट $0.05 / kWh हो जाता है तो बिजली का OPEX गिरकर $1,848.30 रह जाएगा, और नेट प्रॉफिट बढ़कर $1,248.50 प्रति महीना हो जाएगा। इससे पेबैक पीरियड बहुत ज्यादा समय से घटकर 35-40 महीने के व्यावहारिक स्तर पर आ जाता है। बिना बुल रन या हाई-एफिशिएंसी हैशरेट के $0.065–0.07/kWh से ज्यादा महंगे कमर्शियल रेट पर माइनिंग करना हाई-रिस्क जोन में आता है।
6. ऑटोमेशन और कंट्रोल: पाइथन मॉनिटरिंग स्क्रिप्ट (CGMiner / CGMiner API)
एक असली इंजीनियर 14 अलग-अलग डिवाइस के वेब यूआई (Web UI) पर मैन्युअली क्लिक करके नहीं बैठता। सभी आधुनिक ASIC माइनर्स (Antminer, Whatsminer) CGMiner API प्रोटोकॉल (TCP सॉकेट्स पर JSON-आधारित) को सपोर्ट करते हैं।
नीचे आपकी फार्म पूल की मॉनिटरिंग के लिए एक तैयार प्रोडक्शन-रेडी पाइथन स्क्रिप्ट दी गई है। यह स्क्रिप्ट लोकल नेटवर्क पर सभी 14 ASIC को पिंग करती है, हैशरेट और चिप का तापमान इकट्ठा करती है, और परफॉर्मेंस गिरने या ओवरहीट होने पर सीधे टेलीग्राम पर अलर्ट भेजती है।
#!/usr/bin/env python3
"""
ASIC Miner Farm Monitoring via CGMiner API (Port 4028).
Features:
* Polls all devices in parallel;
* Supports Antminer (key "command") and Whatsminer (key "cmd") — configured in MINERS;
* Alerts: offline, hashrate drop, overheating, missing temperature fields;
* Deduplication: prevents spamming the exact same event more often than REPEAT_MINUTES;
* Recovery notice once the issue is resolved;
* Issue confirmation across CONFIRM_CYCLES consecutive polls (guards against false positives);
* State persists in a file, ensuring correct execution both in a loop and via cron (--once).
Configuration via environment variables:
TG_BOT_TOKEN, TG_CHAT_ID — required
TEMP_THRESHOLD (default 85) — chip temperature threshold, °C
HASHRATE_WARN_TH (default 170) — minimum acceptable hashrate, TH/s
POLL_INTERVAL_SEC (default 60) — polling interval in loop mode
REPEAT_MINUTES (default 60) — repeat interval for active alerts
CONFIRM_CYCLES (default 2) — consecutive polls required to confirm an issue
Execution:
python3 asic_monitor.py # infinite loop
python3 asic_monitor.py --once # single run (for cron / systemd timer)
IMPORTANT: Port 4028 must only be accessible from the local network.
Never expose it to the public internet.
"""
import json
import logging
import os
import socket
import sys
import time
from concurrent.futures import ThreadPoolExecutor
import requests
# --------------------------------------------------------------------------
# Configuration
# --------------------------------------------------------------------------
# (ip, kind): "antminer" or "whatsminer"
MINERS = [(f"192.168.1.{i}", "antminer") for i in range(101, 115)] # .101 - .114
# Mixed farm example:
# MINERS[0] = ("192.168.1.101", "whatsminer")
API_PORT = 4028
SOCKET_TIMEOUT = 3.0
TG_BOT_TOKEN = os.environ.get("TG_BOT_TOKEN", "")
TG_CHAT_ID = os.environ.get("TG_CHAT_ID", "")
TEMP_THRESHOLD = float(os.environ.get("TEMP_THRESHOLD", "85"))
HASHRATE_WARN_TH = float(os.environ.get("HASHRATE_WARN_TH", "170"))
POLL_INTERVAL_SEC = int(os.environ.get("POLL_INTERVAL_SEC", "60"))
REPEAT_MINUTES = int(os.environ.get("REPEAT_MINUTES", "60"))
CONFIRM_CYCLES = int(os.environ.get("CONFIRM_CYCLES", "2"))
STATE_FILE = os.environ.get("STATE_FILE", "asic_monitor_state.json")
# Antminer chip temperature key prefixes in the `stats` response.
# Verify against your specific firmware: run `stats` and inspect the raw keys.
ANTMINER_TEMP_PREFIXES = ("temp2_", "temp_chip")
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s %(levelname)s %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
log = logging.getLogger("asic_monitor")
# --------------------------------------------------------------------------
# Telegram
# --------------------------------------------------------------------------
def send_telegram(text: str) -> bool:
"""Sends a message without parse_mode (dynamic text won't break formatting).
Returns True only if Telegram successfully accepts the message."""
if not TG_BOT_TOKEN or not TG_CHAT_ID:
log.error("TG_BOT_TOKEN / TG_CHAT_ID not set, alert dropped: %s", text)
return False
url = f"https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage"
try:
r = requests.post(url, json={"chat_id": TG_CHAT_ID, "text": text}, timeout=10)
if not r.ok:
log.error("Telegram returned %s: %s", r.status_code, r.text[:200])
return r.ok
except requests.RequestException as e:
log.error("Telegram transmission error: %s", e)
return False
# --------------------------------------------------------------------------
# CGMiner API Interaction
# --------------------------------------------------------------------------
def query_miner(ip: str, kind: str, command: str) -> dict:
"""Sends a command to the CGMiner API. Returns {"error": "..."} on failure."""
key = "cmd" if kind == "whatsminer" else "command"
try:
with socket.create_connection((ip, API_PORT), timeout=SOCKET_TIMEOUT) as s:
s.settimeout(SOCKET_TIMEOUT)
s.sendall(json.dumps({key: command}).encode("utf-8"))
chunks = []
while True:
chunk = s.recv(4096)
if not chunk:
break
chunks.append(chunk)
text = b"".join(chunks).decode("utf-8", errors="ignore").replace("\x00", "")
# Some firmware versions return "}{" without a comma between objects
text = text.replace("}{", "},{")
return json.loads(text)
except Exception as e: # network, timeout, invalid JSON
return {"error": f"{type(e).__name__}: {e}"}
def to_float(value):
"""Number or string representation -> float, or None on failure."""
try:
return float(value)
except (TypeError, ValueError):
return None
def get_hashrate_th(summary: dict, kind: str):
"""Hashrate in TH/s or None if the field is missing."""
try:
s = summary["SUMMARY"][0]
except (KeyError, IndexError, TypeError):
return None
if kind == "whatsminer":
# MH/s -> TH/s. 5-minute average if available, otherwise session average.
for key in ("MHS 5m", "MHS av"):
v = to_float(s.get(key))
if v is not None:
return v / 1_000_000.0
return None
# Antminer: GH/s -> TH/s. Avoid "GHS 5s" (too noisy).
for key in ("rate_30m", "GHS av"):
v = to_float(s.get(key))
if v is not None:
return v / 1000.0
return None
def get_max_chip_temp(ip: str, kind: str, summary: dict):
"""Maximum chip temperature or None if fields are missing."""
if kind == "whatsminer":
try:
s = summary["SUMMARY"][0]
except (KeyError, IndexError, TypeError):
return None
temps = [to_float(s.get(k)) for k in ("Chip Temp Max", "Temperature")]
temps = [t for t in temps if t]
return max(temps) if temps else None
stats = query_miner(ip, kind, "stats")
try:
info = stats["STATS"][1]
except (KeyError, IndexError, TypeError):
return None
temps = []
for k, v in info.items():
if k.startswith(ANTMINER_TEMP_PREFIXES):
t = to_float(v)
if t: # 0 = board reporting no value
temps.append(t)
return max(temps) if temps else None
# --------------------------------------------------------------------------
# Single Device Check
# --------------------------------------------------------------------------
def check_miner(ip: str, kind: str) -> dict:
"""Returns {issue_key: alert_text} for active problems."""
issues = {}
summary = query_miner(ip, kind, "summary")
if "error" in summary:
# Offline: further checks are meaningless
return {"offline": f"⚠️ {ip}: API unreachable ({summary['error']})"}
th = get_hashrate_th(summary, kind)
if th is None:
issues["parse"] = f"❌ {ip}: failed to extract hashrate from summary (check firmware/device type)"
elif th < HASHRATE_WARN_TH:
issues["hashrate"] = f"📉 {ip}: hashrate dropped to {th:.1f} TH/s (threshold {HASHRATE_WARN_TH:.0f})"
temp = get_max_chip_temp(ip, kind, summary)
if temp is None:
issues["temp_keys"] = f"❓ {ip}: temperature fields not found, verify keys in stats"
elif temp > TEMP_THRESHOLD:
issues["temp"] = f"🔥 {ip}: overheating, chips at {temp:.0f}°C (threshold {TEMP_THRESHOLD:.0f})"
return issues
# --------------------------------------------------------------------------
# State and Deduplication
# --------------------------------------------------------------------------
def load_state() -> dict:
try:
with open(STATE_FILE, encoding="utf-8") as f:
return json.load(f)
except (OSError, ValueError):
return {"sent": {}, "streak": {}}
def save_state(state: dict) -> None:
try:
tmp = STATE_FILE + ".tmp"
with open(tmp, "w", encoding="utf-8") as f:
json.dump(state, f)
os.replace(tmp, STATE_FILE)
except OSError as e:
log.error("Failed to save state: %s", e)
def run_cycle(state: dict) -> None:
sent, streak = state["sent"], state["streak"]
now = time.time()
with ThreadPoolExecutor(max_workers=len(MINERS)) as pool:
results = list(pool.map(lambda m: (m[0], check_miner(*m)), MINERS))
for ip, issues in results:
# 1) Active issues
for key, text in issues.items():
sid = f"{ip}|{key}"
streak[sid] = streak.get(sid, 0) + 1
if streak[sid] < CONFIRM_CYCLES:
continue
last = sent.get(sid)
if last is None or now - last >= REPEAT_MINUTES * 60:
if send_telegram(text):
sent[sid] = now
# 2) Resolved issues
prefix = f"{ip}|"
for sid in [s for s in list(streak) if s.startswith(prefix)]:
key = sid[len(prefix):]
if key in issues:
continue
streak.pop(sid, None)
if sid in sent: # notify recovery only if an alert was previously sent
if send_telegram(f"✅ {ip}: issue '{key}' resolved"):
sent.pop(sid, None)
ok = sum(1 for _, i in results if not i)
log.info("Poll completed: %d/%d healthy", ok, len(results))
save_state(state)
# --------------------------------------------------------------------------
def main() -> None:
state = load_state()
state.setdefault("sent", {})
state.setdefault("streak", {})
if "--once" in sys.argv:
run_cycle(state)
return
log.info("Starting monitoring: %d devices, period %d s", len(MINERS), POLL_INTERVAL_SEC)
while True:
try:
run_cycle(state)
except Exception:
log.exception("Unhandled exception in polling loop")
time.sleep(POLL_INTERVAL_SEC)
if __name__ == "__main__":
main()7. प्री-लंच चेकलिस्ट (इंजीनियरिंग अप्रूवल)
- 1. लोड के तहत इलेक्ट्रिकल टेस्टिंग: माइनर्स इंस्टॉल करने से पहले 4 घंटे के लिए 50 kW का इंडस्ट्रियल हीटर चलाएं। मेन ब्रेकर और बसबार पर कॉन्टैक्ट ग्रुप्स के हीटिंग को पायरोमीटर से जांचें। कॉन्टैक्ट्स का तापमान 65°C से अधिक नहीं होना चाहिए।
- 2. अर्थिंग मेजरमेंट: इलेक्ट्रिकल लेबोरेटरी को बुलाएं, फेज-न्यूट्रल लूप और अर्थिंग सिस्टम डिसपर्सन रेजिस्टेंस को मापें (यह < 4 ओह्म होना चाहिए)।
- 3. एयरफ्लो वेरिफिकेशन: सुनिश्चित करें कि G4 फिल्टर की डेंसिटी कमरे में वैक्यूम या नेगेटिव प्रेशर पैदा न करे (एग्जॉस्ट फैन चालू होने पर कोल्ड आइएसल का दरवाजा बिना किसी खास जोर के आसानी से खुलना चाहिए)।
- 4. वॉचडॉग कॉन्फ़िगरेशन: पूल डिस्कनेक्ट होने या आईपी खो जाने की स्थिति में सुरक्षा के लिए माइनर फर्मवेयर (LUXOS, VNISH, या Stock) में इन-बिल्ट हार्डवेयर ऑटो-रीबूट (Hardware Auto-Reboot) फीचर्स को इनेबल करें।
रन करने का तरीका:
export TG_BOT_TOKEN="..." TG_CHAT_ID="..."
python3 asic_monitor.py8. कानूनी ढांचा, PPA अनुबंध और अंतर्राष्ट्रीय वित्तीय लेखांकन
किसी भी अधिकार क्षेत्र में 50 kW का सेटअप लॉन्च करने के लिए एक आधिकारिक कमर्शियल कंज्यूमर स्टेटस की आवश्यकता होती है। घरेलू सॉकेट से पावर लेकर "अंडरग्राउंड" माइनिंग करने से यूटिलिटी कंपनी से नोटिस, पावर लिमिट पार करने पर भारी जुर्माना और ग्रिड के दुरुपयोग के आरोप लगना तय है।
कानूनी संरचना और कॉर्पोरेट सेटअप
- ऑपरेटिंग कंपनी का पंजीकरण (LLC / Inc. / Sp. z o.o.): साइट को एक मानक लिमिटेड लायबिलिटी कॉर्पोरेट एंटिटी के रूप में रजिस्टर किया जाता है। कमर्शियल स्पेस लीज और इलेक्ट्रिकल ग्रिड कनेक्शन एग्रीमेंट कानूनी रूप से साइन करने के लिए यह अनिवार्य है।
- PPA अनुबंध (Power Purchase Agreement): साइट का मुख्य दस्तावेज—ऊर्जा प्रदाता या सबस्टेशन (TS) मालिक के साथ कमर्शियल बिजली आपूर्ति समझौता (PPA) है। अनुबंध में ये बातें तय होती हैं:
- आवंटित सक्रिय क्षमता: श्रेणी III विश्वसनीयता मानकों के तहत 50 kW (अनुमत निरंतर 24/7 लोड के साथ)।
- डमार्केशन पॉइंट (सीमा बिंदु): ट्रांसफार्मर के लो-वोल्टेज टर्मिनलों पर 0.4 kV।
- टैरिफ संरचना: निश्चित प्रति kWh लागत (लक्ष्य < $0.065–0.07)।
- हार्डवेयर आयात (HS कोड 8471): ASIC माइनर्स की खरीद सीधे B2B अनुबंधों के माध्यम से की जाती है। उपकरणों के लिए अंतर्राष्ट्रीय Harmonized System (HS) कोड 8471 50 000 0 (प्रोसेसिंग यूनिट) है। पारदर्शी कस्टम क्लीयरेंस में आयात VAT/GST और ड्यूटी का भुगतान शामिल होता है, जिससे आपके पास आधिकारिक कमर्शियल इनवॉइस और कस्टम घोषणाएं रहती हैं जो पूंजीगत संपत्तियों की उत्पत्ति को प्रमाणित करती हैं।
- वित्तीय लेखांकन और ऑफ-रैम्पिंग (Off-ramping): माइनिंग से मुनाफा पूल में BTC के रूप में जनरेट होता है। मासिक OPEX (बिजली, किराया) को कवर करने के लिए, पूर्ण KYB (Know Your Business) सत्यापन के साथ क्रिप्टोकरेंसी एक्सचेंज या OTC डेस्क पर एक संस्थागत कॉर्पोरेट अकाउंट (Corporate Account) बनाए रखा जाता है। बिजली के बिलों का नियमित भुगतान करने के लिए प्राप्त फिएट राशि को वायर ट्रांसफर के माध्यम से सीधे कॉर्पोरेट बैंक खाते में भेजा जाता है।
9. रसद (लॉजिस्टिक्स) और हार्डवेयर गुणवत्ता नियंत्रण
फैक्ट्री पैकेजिंग में 14 Antminer S21 यूनिट्स का कुल वजन लगभग 230–250 किलोग्राम है।
इनकमिंग इंस्पेक्शन प्रोटोकॉल (डिलीवरी पर QC)
- 1. विजुअल पैकेज निरीक्षण: टैम्पर-एविडेंट इंडिकेटर सील और बॉक्स की अखंडता की जांच करें।
- 2. शेक टेस्ट (हीटसिंक सत्यापन): ओवरसीज फ्रेट से ट्रांजिट के दौरान होने वाले भारी कंपन से माउंटिंग स्क्रू ढीले हो सकते हैं या व्यक्तिगत चिप हीटसिंक अलग हो सकते हैं (विशेषकर पुराने हार्डवेयर पर)। यूनिट को धीरे से हिलाएं—अंदर ढीले घटकों के खड़कने की आवाज नहीं आनी चाहिए।
- 3. कोल्ड रेजिस्टेंस टेस्ट: 220V पावर देने से पहले, हैश बोर्ड पावर रेल में शॉर्ट सर्किट की अनुपस्थिति की पुष्टि करने के लिए मल्टीमीटर का उपयोग करें (VDD लाइन का प्रतिरोध निर्माता के विनिर्देशों से मेल खाना चाहिए, आमतौर पर दसियों ओम में)।
- 4. टेस्ट बेंच (15 मिनट): एक पृथक् सर्किट में क्रमिक पावर-अप। लक्ष्य हैशरेट प्राप्ति (200 TH/s), सभी 3 हैश बोर्डों में कार्यक्षमता (3/3 बोर्ड्स डिटेक्टेड), और कम हार्डवेयर त्रुटि दरों (HW Errors < 0.5%) का सत्यापन करें।
10. सुरक्षा और नेटवर्क आइसोलेशन
50 kW का माइनिंग ऑपरेशन भौतिक चोरी और नेटवर्क हमलों (स्ट्रैटम ट्रैफिक हाइजैकिंग, मैलवेयर इंजेक्शन) दोनों के लिए एक आकर्षक लक्ष्य है।
नेटवर्क टोपोलॉजी आर्किटेक्चर:
[ इंटरनेट (WAN) ]
&│
[ 4G/LTE बैकअप ]
&│
┌───────┴────────┐
│ Router / WAF │ (MikroTik / OPNsense)
│ Firewall │ ── WireGuard VPN (केवल रिमोट मैनेजमेंट)
└───────┬────────┘
│ (आइसोलेटेड VLAN 10.0.10.0/24)
┌────────┼─────────────────┬─────────────────┐
│ │ │ │
[ASIC 1] [ASIC 2] ... [ASIC 14] [स्क्रिप्ट नोड]
10.0.10.101 10.0.10.102 10.0.10.114 10.0.10.250 (Python Watchdog)
नेटवर्क पैरामीटर स्पेसिफिकेशन
- पूर्ण WAN आइसोलेशन: ASIC सार्वजनिक IP पते के बिना एक बंद VLAN सेगमेंट में रहते हैं।
- प्रतिबंधित पोर्ट 4028 (CGMiner API): मीट्रिक कलेक्शन तक पहुंच केवल आंतरिक मॉनिटरिंग सर्वर के IP पते तक सीमित है।
- स्ट्रैटम/TLS एन्क्रिप्शन: Stratum V2 या Stratum over TLS के माध्यम से पूल में ट्रैफिक रूट करना ISP स्तर पर मैन-इन-द-मिडिल (MitM) वॉलेट एड्रेस रीडायरेक्शन हमलों की संभावना को समाप्त करता है।
11. इंजीनियर का सारांश (डिप्लॉयमेंट चेकलिस्ट)
- 1. इलेक्ट्रिकल: प्रत्येक C19 रिसेप्टेकल के लिए VVGng-LS 3x2.5 mm² केबल साइज की जांच करें, लोड के तहत 48 घंटे काम करने के बाद टॉर्क रिंच से मेन डिस्ट्रीब्यूशन पैनल (MDP) के सभी टर्मिनल स्क्रू कस लें।
- 2. वेंटिलेशन: इनटेक और एग्जॉस्ट के बीच तापमान डेल्टा मापें। यदि $\Delta T > 18^\circ\text{C}$ हो, तो वेरिएबल फ्रिक्वेंसी ड्राइव्स (VFDs) के माध्यम से एग्जॉस्ट पंखे तेज करें।
- 3. मॉनिटरिंग: 170 TH/s से नीचे हैशरेट गिरने पर अलर्ट के साथ स्वचालित ASIC मॉनिटरिंग स्क्रिप्ट तैनात करें।
- 4. वित्तीय जोखिम प्रबंधन: प्रति वर्ष 15-20% की संभावित नेटवर्क कठिनाई वृद्धि को ध्यान में रखते हुए ब्रेक-इवन थ्रेशोल्ड की गणना करें।