Di recente abbiamo ricevuto molte domande sulla “releasing stake”. Quindi ecco un post per spiegare di cosa si tratta e come recuperare lo stake.
Il processo di rilascio dei token
Il rilascio del token è un processo complesso. In qualità di delegante (staker), puoi sempre prelevare (non delegare) una parte dello stake sull’app Phala (o tramite PhalaStakePool.withdraw()
). Se ci sono token in Free Stake, puoi soddisfare immediatamente la tua richiesta di prelievo. Tuttavia, se non è disponibile alcuno stake gratuito, è necessario attendere nella “withdraw queue”. Questa si chiama “withdraw request”. Puoi trovare le richieste nella finestra “Dettagli pool” (o PhalaStakePool.stakePools() -> withdraw_queue
).
La Withdraw Queue
Ogni richiesta di prelievo ha un conto alla rovescia per il tempo massimo di attesa. Lo chiamiamo “grace period” di 7 giorni, come un tempo di riserva per informare il proprietario della pool che qualcuno vuole ritirare il suo stake, e quindi devono agire. Nel periodo di grazia, ogni volta che un altro contributore aggiunge la token in stake al pool, il suo stake entra e il tuo stake esce.
Ma cosa succede se non ci sono token in stake per sbloccare il tuo? C’è un meccanismo di “arresto forzato”. La blockchain controlla automaticamente se c’è una richiesta già in attesa di 7 giorni non soddisfatta. Se c’è una tale richiesta, il pool verrà forzatamente chiuso, rilasciando tutto lo stake.
Ovviamente i proprietari delle pool non vogliono che i loro worker si fermino. Quindi dovranno assicurarsi che il loro pool non venga chiuso con la forza. Aggiungono più stake o fermano alcuni miner per soddisfare la richiesta di prelievo.
Le cose si stanno complicando, perché questa è una teoria del gioco tra gli staker e il proprietario della pool. Ciò è necessario perché miner e staker non si fidano l’uno dell’altro. Gli staker dovrebbero poter ritirare lo stake in qualsiasi momento. In caso contrario, il proprietario della pool non potrà mai consentire loro di prelevare. D’altra parte, lo staker può decidere di “attaccare” un pool ritirando lo stake subito dopo che il miner inizia a minare, se non c’è un periodo di grazia per ritardare la richiesta.
Dopo il periodo di grazia
L’ultima cosa di cui le persone devono preoccuparsi è il “releasing stake” in una pool. Significa che alcuni miner sono stati fermati, in stato di Cool Down. Lo stato del CD richiede 7 giorni. Quando il tempo del CD è raggiunto, ne abbiamo bisogno per attivare il rilascio dello stake e riportarlo allo stato “Pronto”. Per considerazioni sulle prestazioni, non viene eseguito automaticamente.
Questa operazione è chiamata “reclaim”. Per attivare un rilascio, qualsiasi account può inviare una transazione su Polkadot.js (l’interfaccia utente dell’app Phala è in fase di sviluppo):
PhalaStakePool.reclaimPoolWorker(pid, workerPubkey)
Quindi lo stake in sospeso verrà rilasciato e la "releasing stake” in un pool verrà realizzata e assegnata alla coda di prelievo.
Non sono un pool operator. Dove posso trovare la worker pubkey?
Il team di Phala sta lavorando su un pulsante “one-click reclaim” sull’app Phala. Tuttavia, prima che sia pronto, come delegante puoi comunque attivarlo manualmente.
Chiunque può chiamare relcaimPoolWorker
, ma devi scoprire il pubkey dei worker del pool che hanno terminato il periodo di CoolDown. Ci possono essere più worker in attesa di reclaim. Devi recuperarli uno per uno.
Puoi trovare i worker della pool controllando il campo “worker” in PhalaStakePool.stakePools(pid)
(o sull’app Phala). E poi controlla se sono pronti per il reclaim (o provali tutti). Tuttavia, se il proprietario ha rimosso il worker, non verrà mostrato negli stakePools
. Se è così, dovrai capirlo. Un modo potenziale è cercare l’account dell’operatore del pool in un blockchain explorer e filtrare per PhalaStakePool.remove_worker
.
Per verificare se un worker è pronto per il reclaim, provalo direttamente o controlla lo stato del miner su PhalaMining.miners(miner)
. L’argomento miner
è “l’account virtuale” generato da (pid + worker pubkey). Se il worker non viene rimosso, puoi cercare l’account del miner tramite PhalaMining.workerBindings(pubkey)
. Tuttavia, se viene spostato, suggerisco di cercare il corrispettivo PhalaStakePool.add_worker
nell’esploratore e controllare l’evento MinerBound
generato dalla transazione. Menzionerà l’account del miner come mostrato nello screenshot qui sotto.
Miglioramenti
Nel complesso, il concetto è difficile e l’interfaccia utente non è completa, il che crea grossi problemi agli utenti. Il team era impegnato a correggere i bug sulla blockchain e abbiamo appena iniziato a correggere l’interfaccia utente. Ad ogni modo, l’interfaccia utente verrà aggiornata a breve una volta pronta.
Problema #500
TL;DR. Se hai rimosso i worker in stato CD e li hai riaggiunti al pool prima del recupero, potresti avere una quota congelata in “rilascio quota” e non puoi recuperarla a causa del bug #500. Dovrai attendere alcuni giorni prima che il team li sblocchi. Per i dettagli, controlla il problema Github.