Preparazione del Sistema Operativo
Come descritto nella sezione precedente, esistono molti provider VPS e cloud diversi. Scrivere guide per tutti sarebbe piuttosto impraticabile, ma in questa sezione esamineremo un flusso di lavoro tipico per preparare una macchina virtuale ospitata su Amazon Web Services. Nello specifico, tratteremo come selezionare la configurazione hardware virtuale appropriata e come preparare il sistema operativo per Rocket Pool. Dovreste essere in grado di estrapolare come applicare questi passaggi a qualsiasi provider una volta acquisita familiarità con il loro ecosistema.
Creazione di una Macchina Virtuale EC2
Il primo passaggio è creare un account AWS se non ne avete già uno. Seguite le istruzioni fornite in quel link o accedete con un account esistente, e alla fine arriverete alla dashboard della console di gestione:
Successivamente, fate clic sul menu a discesa in alto a destra dello schermo per selezionare la regione geografica in cui desiderate che il vostro server risieda fisicamente. I server non possono essere spostati tra regioni una volta creati, quindi assicuratevi di essere soddisfatti dell'opzione attualmente selezionata prima di creare effettivamente il server.
Ora, fate clic su Services nella barra degli strumenti. Andate alla sezione Compute e selezionate EC2. La vostra dashboard dovrebbe cambiare in una vista simile a questa:
Fate clic sul pulsante arancione Launch Instance e selezionate Launch Instance dall'elenco delle opzioni per creare una nuova macchina. Vi verrà presentato un marketplace di Amazon Machine Images. Ognuna di queste rappresenta un'istantanea specifica di una macchina con un sistema operativo preinstallato e alcuni altri componenti software utili.
Per un nodo Rocket Pool, vi consigliamo di utilizzare l'immagine Ubuntu Server 24.04 LTS (HVM).
Successivamente, dovrete scegliere un Instance Type. Questo determina quali risorse hardware virtuali avrà a disposizione la vostra macchina.
Al momento della stesura di questo documento, queste sono le opzioni disponibili:
I requisiti hardware dipendono in gran parte dal client di consenso che intendete eseguire - Nimbus, ad esempio, richiede meno di 1GB di RAM da solo, quindi è perfettamente ragionevole eseguirlo su un'istanza t2.large. Per client che richiedono più RAM, potreste voler optare per un'istanza t2.xlarge per avere maggiore margine.
Potreste voler consultare la sezione Scegliere i vostri client ETH prima di decidere un tipo di istanza, così potete assicurarvi che il client che desiderate sia supportato dal tipo di istanza che scegliete.
Una volta effettuata la vostra scelta, fate clic sul pulsante Next. Le impostazioni predefinite vanno tutte bene per la sezione Instance Details, quindi lasciatele così come sono e fate clic su Next.
Quando arrivate alla sezione Add Storage, creerete un nuovo disco rigido virtuale per il vostro sistema. Questo può essere espanso in seguito grazie al potere del cloud, quindi ottenere il numero corretto ora non è assolutamente critico. Tuttavia, per la vostra tranquillità, dovreste cambiare la dimensione in una delle seguenti cifre:
- Utilizzate almeno 100 GiB se state solo provando Rocket Pool sulla Hoodi Test Network.
- Utilizzate almeno 1 TiB (preferibilmente 2 TiB) se utilizzerete questo nodo sulla rete Ethereum principale (mainnet).
Lasciate i valori predefiniti per le altre impostazioni e fate clic su Next.
Nel passaggio Add Tags, dovreste fare clic sul pulsante click to add a Name tag e assegnargli un nome facile da ricordare che potete usare per identificare il server in seguito; qualcosa come Rocket Pool Smartnode funzionerà se avete bisogno di ispirazione. Fate clic su Next quando avete finito.
Nella sezione Security Group, mantenete selezionata l'opzione Create a new security group. Inserite un nome e una descrizione come Smartnode e Smartnode Group. Rimuovete tutte le regole esistenti nella tabella e aggiungete le seguenti regole:
Questo vi permetterà di connettervi da remoto al vostro server tramite SSH (il terminale della riga di comando) dal vostro laptop o desktop. Consentirà inoltre ai client di esecuzione e consenso di connettersi ad altri nodi sulla rete Ethereum.
Per l'accesso SSH, questo funzionerà solo se disponete di un indirizzo IP pubblico statico. Probabilmente dovrete richiederlo al vostro ISP, poiché molti di loro utilizzano un sistema IP dinamico e cambiano occasionalmente il vostro indirizzo pubblico. Se non potete ottenere un indirizzo statico, dovrete andare alla console AWS e aggiornare questa impostazione con il vostro nuovo indirizzo IP ogni volta che cambia.
La tabella del gruppo di sicurezza dovrebbe ora assomigliare a questa:
Ora, esaminate tutti i dettagli dell'istanza per assicurarvi di essere soddisfatti, e fate clic su Launch quando siete pronti.
Quando appare il prompt SSH key pair, selezionate Create a new key pair.
Assegnategli un nome memorabile come Smartnode Key, quindi fate clic su Download Key Pair.
Conservate questi file in un luogo sicuro, come ~/.ssh/ (o C:\Users\[il vostro nome utente]\.ssh\ su Windows) dove risiedono comunemente le vostre altre chiavi.
Questa coppia di chiavi contiene la chiave privata che utilizzerete per accedere tramite SSH alla vostra macchina. Se qualcuno si impossessa di questa chiave, avrà accesso completo al vostro nodo - incluso il portafoglio del vostro nodo Rocket Pool e tutte le monete in esso contenute. Dovete mantenere questo file sicuro in ogni momento.
Successivamente, fate clic su Launch Instance per creare il vostro nuovo server virtuale. Quando appare un avviso, fate clic su View Instances per essere reindirizzati all'elenco dei vostri server. Vedrete lì il vostro nodo Rocket Pool con alcuni dettagli di accompagnamento sulla sua configurazione e stato.
Infine, assegnate un Elastic IP Address alla vostra macchina - potete pensare a questo come a un indirizzo IP statico esclusivo di AWS. Il vostro nodo sarà sempre accessibile a questo indirizzo, quindi potrete sempre utilizzare lo stesso comando SSH per connettervi ad esso.
Andate su Network and Security nel pannello di navigazione a sinistra e fate clic su Elastic IPs. Ora, fate clic su Allocate Elastic IP Address. Le impostazioni predefinite vanno tutte bene, quindi fate semplicemente clic sui prompt e tornate all'elenco quando avete finito.
Successivamente, selezionate il nuovo indirizzo nell'elenco. Fate clic sul pulsante Actions sopra di esso, quindi fate clic su Associate Elastic IP Address. Lasciate il tipo di risorsa impostato su Instance e selezionate l'istanza Rocket Pool Smartnode che avete appena creato dall'elenco. Fate clic su Associate per assegnare l'indirizzo al vostro server virtuale. Ora, se guardate sotto la colonna Associated Instance ID dell'indirizzo, potete verificare che abbia la vostra macchina assegnata ad esso.
Accesso alla Macchina
Per accedere alla macchina, aprite un nuovo terminale su Linux o macOS (utilizzate Powershell su Windows) e digitate il seguente comando:
Se avete conservato le vostre chiavi nella cartella .ssh, questo utilizzerà la coppia di chiavi private generata durante la configurazione per autenticarsi automaticamente con la macchina - nessun nome utente, nessuna password.
Una volta qui, avete accesso completo al terminale del sistema.
Configurazione dello Spazio Swap
Nella maggior parte dei casi, se scegliete attentamente i vostri client di esecuzione e consenso e il tipo di istanza, non dovreste esaurire la RAM. D'altra parte, non fa mai male aggiungerne un po' di più. Quello che faremo ora è aggiungere quello che viene chiamato spazio swap. Essenzialmente, significa che useremo l'SSD come "RAM di backup" nel caso in cui qualcosa vada terribilmente, terribilmente male e il vostro server esaurisca la RAM normale. L'SSD non è neanche lontanamente veloce quanto la RAM normale, quindi se raggiunge lo spazio swap rallenterà le cose, ma non si bloccherà completamente e non romperà tutto. Pensate a questo come a un'assicurazione extra che (molto probabilmente) non vi servirà mai.
Creazione di un File Swap
Il primo passaggio è creare un nuovo file che fungerà da spazio swap. Decidete quanto volete utilizzare - un inizio ragionevole sarebbe 8 GB, così avete 8 GB di RAM normale e 8 GB di "RAM di backup" per un totale di 16 GB. Per essere super sicuri, potete farlo di 24 GB così il vostro sistema ha 8 GB di RAM normale e 24 GB di "RAM di backup" per un totale di 32 GB, ma questo è probabilmente eccessivo. Fortunatamente, poiché il vostro SSD ha 1 o 2 TB di spazio, allocare da 8 a 24 GB per un file swap è trascurabile.
Per il bene di questa guida, scegliamo una via di mezzo - diciamo, 16 GB di spazio swap per un totale di RAM di 24 GB. Sostituite semplicemente il numero che desiderate mentre procediamo.
Inserite questo, che creerà un nuovo file chiamato /swapfile e lo riempirà con 16 GB di zeri.
Per cambiare la quantità, cambiate semplicemente il numero in count=16 con quello che desiderate. Notate che ci vorrà molto tempo, ma va bene così.
Successivamente, impostate i permessi in modo che solo l'utente root possa leggerlo o scriverci (per sicurezza):
Ora, contrassegnatelo come file swap:
Poi, abilitatelo:
Infine, aggiungetelo alla tabella di mount in modo che si carichi automaticamente quando il vostro server si riavvia:
Aggiungete una nuova riga alla fine che assomiglia a questa:
Premete Ctrl+O e Enter per salvare, quindi Ctrl+X e Enter per uscire.
Per verificare che sia attivo, eseguite questi comandi:
Il vostro output dovrebbe assomigliare a questo in alto:

Se il secondo numero nell'ultima riga etichettata Swp (quello dopo /) è diverso da zero, allora siete a posto.
Ad esempio, se mostra 0K / 16.0G allora il vostro spazio swap è stato attivato con successo.
Se mostra 0K / 0K allora non ha funzionato e dovrete confermare di aver inserito correttamente i passaggi precedenti.
Premete q o F10 per uscire da htop e tornare al terminale.
Configurazione di Swappiness e Cache Pressure
Per impostazione predefinita, Linux utilizzerà volentieri molto spazio swap per alleggerire un po' la pressione dalla RAM del sistema. Non vogliamo questo. Vogliamo che utilizzi tutta la RAM fino all'ultimo secondo prima di fare affidamento sullo SWAP. Il passaggio successivo è cambiare quella che viene chiamata la "swappiness" del sistema, che è fondamentalmente quanto sia desideroso di utilizzare lo spazio swap. C'è molto dibattito su quale valore impostare, ma abbiamo scoperto che un valore di 6 funziona abbastanza bene.
Vogliamo anche abbassare la "cache pressure", che determina quanto rapidamente il server eliminerà una cache del suo filesystem. Poiché avremo molta RAM di riserva con la nostra configurazione, possiamo impostarla su "10" che lascerà la cache in memoria per un po', riducendo l'I/O del disco.
Per impostarli, eseguite questi comandi:
Ora, inseriteli nel file sysctl.conf in modo che vengano riapplicati dopo un riavvio:
Aggiungete queste due righe alla fine:
Quindi salvate e uscite come avete fatto prima (Ctrl+O, Ctrl+X).
E con questo, il vostro server è attivo e funzionante e pronto per eseguire Rocket Pool! Passate alla sezione Scegliere i vostri client ETH.