Come verificare eventuali Bad Block di Phala — Tool FsCK

pigro85
Phala Italia
Published in
3 min readJan 14, 2023

Quando potrebbe essere necessario verificare se il nostro sistema ha dei bad block? Generalmente se dai log riscontriamo errori che riguardano un blocco specifico.

Esempio:

PRB error : data_provider_1 | {“name”:”prb”,”hostname”:”data_provider”,”pid”:46,”level”:50,”paraBlockNumber”:2994281,”msg”:”RpcError: 10000: Error occurred while processing the block BlockId::Hash(0x2da5c1bc5612510e8f154932662f87d7f671664f540278dc97fd37380d18d354): block body not found.\n
at checkError (/opt/app/node_modules/@polkadot/rpc-provider/cjs/coder/index.js:30:11)\n
at RpcCoder.decodeResponse (/opt/app/node_modules/@polkadot/rpc-provider/cjs/coder/index.js:45:5)\n
at WsProvider.value (/opt/app/node_modules/@polkadot/rpc-provider/cjs/ws/index.js:246:90)\n
at W3CWebSocket.value [as onmessage] (/opt/app/node_modules/@polkadot/rpc-provider/cjs/ws/index.js:229:153)\n
at W3CWebSocket._dispatchEvent [as dispatchEvent] (/opt/app/node_modules/yaeti/lib/EventTarget.js:107:17)\n
at W3CWebSocket.onMessage (/opt/app/node_modules/websocket/lib/W3CWebSocket.js:234:14)\n
at WebSocketConnection.<anonymous> (/opt/app/node_modules/websocket/lib/W3CWebSocket.js:205:19)\n
at WebSocketConnection.emit (node:events:513:28)\n
at WebSocketConnection.processFrame (/opt/app/node_modules/websocket/lib/WebSocketConnection.js:554:26)\n
at /opt/app/node_modules/websocket/lib/WebSocketConnection.js:323:40",”time”:”2022–12–29T19:53:21.027Z”,”v”:0}

Phala Network mette a disposizione un tool specifico per effettuare questa operazione: fsck.

Per utilizzare fsck sono necessari alcuni pre-requisiti come Yarn e Node.js, di seguito i vari step per l’installazione.

Che cos’èYarn?

Yarn è un package manager JavaScript compatibile con npm che permette di installare, aggiornare, configurare e rimuovere pacchetti npm. E’ stato creato per risolvere i problemi relativi a npm, come la velocizzazione dell’installazione e la parallelizzazione delle operazioni riducendo così eventuali errori relativi alla connettività. (sourceYarn Official Site)

Installazione di Yarn:

sudo curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo echo “deb https://dl.yarnpkg.com/debian/ stable main” | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

Durante l’installazione di Yarn, il gestore dei pacchetti installa una vecchia versione di Node.js, quasi certamente la 10.x, quindi sarà necessario aggiornare alla 16.x per utilizzare il tool.

Che Cos’è Node.js?

Node.js è un server enviroment open source. Node.js è cross-platform e gira su Windows, Linux, Unix e macOS. Node.js è un back-end JavaScript e si appoggia sull’engine JavaScript V8 eseguendo codice JavaScript fuori dal contesto del browser web. (Source)

Aggiornamento di NodeJS:

sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
sudo apt -y install nodejs

Per verificare la versione installata si può utilizzare il comando:

node -v

Phala FsCK

Dopo l’installazione dei pre-requisiti si può procedere con lo scaricare i tool ufficiali di Phala direttamente dal github ufficiale: github of Phala Network.

Spostarsi nella cartella dove si vuole salvare i tool e clonare il repository:

git clone https://github.com/Phala-Network/phala-blockchain.git

Spostarsi nella cartella js sotto scripts ed avviare yarn:

cd phala-blockchain/scripts/js
yarn

Lanciare fsck:

node src/console.js debug fsck 1 3000000 — early-stop — progress — substrate-ws-endpoint ws://127.0.0.1:9944

Nell’esempio specificato il range di scansione di fsck va dal blocco “1” al blocco “3000000”, le porte dell’endpoint può cambiare a seconda dalla configurazione effettuata in fase di installazione.

Inoltre in alcuni casi, anche se sarà molto più lento, si può pensare di utilizzare un nodo pubblico per effettuare la verifica, è sufficiente far puntare il substrate-ws-endpoint al nodo da utilizzare.

A proposito di Phala

Phala Network si prefigge di risolvere il problema della fiducia nel cloud computazionale.

Organizzando una rete mondiale decentralizzata di nodi per il calcolo, offre servizi performanti senza appoggiarsi su nessun grande cloud provider. I worker Phala fanno girare i programmi in un Secure Enclaves, una tecnologia votata alla privacy presente in alcuni moderni processori, rendendo possibile l’esecuzione confidenziale e versatile di codice. Insieme, questo crea l’infrastruttura per un cloud computing potente, sicuro e scalabile, senza riporre la propria fiducia in soggetti terzi.

🍽 — Subscribe | Website | Twitter | Github

🥤 — Discord | Forum | Telegram |Italiano |Français | Persian | Korean

--

--

pigro85
Phala Italia

Passionate about retro gaming and blockchain. I feel like a digital nomad.