Register MinerNFT
Fiecare miner OmbraChain e identificat on-chain printr-un MinerNFT unic, conținând: cheia publică, ID-ul NFT-ului, reputation score, și timestamp-ul de înregistrare.
Ce e un MinerNFT?
Un MinerNFT e o identitate persistentă pe blockchain pentru miner-ul tău. Conține:
| Câmp | Tip | Descriere |
|---|---|---|
nftId | string (hex) | sha256(publicKey + timestamp) unic |
ownerAddress | string | adresa wallet-ului miner |
publicKey | string (hex) | cheia Ed25519 publică (semnături) |
reputationScore | number | start 100, scalat post-validare |
registeredAt | number | block height la register |
tasksCompleted | number | counter task-uri procesate |
De ce NFT?
- Persistent — supraviețuiește restart-urilor wallet
- Reputation — istoricul performanței afectează șansele VRF de selecție validator
- Transferabil (în roadmap) — vinzi un miner cu reputation mare
- Anti-Sybil — un wallet = un MinerNFT, nu poți spammui registrări
Auto-register la prima activare
La primul click pe Activează Mining, wallet-ul:
- Verifică dacă există deja MinerNFT pentru adresa ta (
GET /api/miners/by-address/{addr}) - Dacă nu există:
- Construiește
MinerRegisterTx:{type: "MINER_REGISTER",owner: walletAddress,publicKey: hex(walletPublicKey),fee: MIN_FEE,timestamp: Date.now(),signature: sign(...)} - Calculează
nftId = sha256(publicKey + timestamp) - Broadcast la mainnet via P2P + REST
POST /api/chain/tx
- Construiește
- Așteaptă confirmare (1 bloc)
- Salvează
nftIdlocal în%APPDATA%\Ombra Wallet\miner-nft.json
După confirmare, mining-ul începe.
Validare on-chain
chain.applyMinerRegister(tx) validează:
- Adresa wallet are balance >= MIN_FEE (
0.01 OMBRA) - Cheia publică e validă Ed25519
- NU există deja MinerNFT pentru acea adresă (anti-duplicate)
- Semnătura
tx.signaturevalidă față detx.publicKey
Dacă validă, MinerNFT-ul e adăugat în state DB (db.putMinerNFT(nft)).
Reputation score
Începe la 100. Modificat după fiecare task pe care îl procesezi:
| Eveniment | Modificare |
|---|---|
| Task completat cu succes | +1 (cap la 1000) |
| Task respins de validator (output invalid) | −5 |
| Task timeout (>60s) | −2 |
| Validator anti-cheat detect | −20 |
| Reputation atinge 0 | Disqualified (blacklist temporar) |
Reputation mare = șanse VRF mai mari să fii selectat ca validator → mai multe 0.0001 OMBRA din attestation rewards.
Formulă VRF:
weight_i = reputation_i ^ 1.5
prob_selected = weight_i / sum(weights)
Reputation 200 are de 2.83x șanse mai mari decât reputation 100.
Verifică MinerNFT-ul tău
În wallet → tab Mining → secțiunea NFT afișează:
- NFT ID (hex)
- Reputation curent
- Block-ul registrării
- Total task-uri procesate
Sau pe OmbraScan:
https://ombra-net.com/address/{adresa-ta}
Secțiunea "Miner Status".
Re-register
Nu poți re-register MinerNFT pentru aceeași adresă. Dacă vrei un MinerNFT nou:
- Creează un wallet nou (alt seed phrase)
- Activează mining pe noul wallet
- Vechiul MinerNFT rămâne on-chain (cu reputation păstrat)
Edge case: register fără mining
Poți avea MinerNFT fără să rulezi efectiv mining-ul. Util pentru:
- Validator-only mode (doar atestare, fără task processing)
- Rezervare identitate pentru viitor