Internet computer wiki

Performance e consumo energetico di ICP

Performance e consumo energetico di ICP

Pur garantendo la sicurezza delle blockchain del Web 3.0, le prestazioni e il consumo energetico di Internet Computer (IC) sono paragonabili agli stack tecnologici del Web2 e del cloud.
IC supera di gran lunga i tradizionali protocolli blockchain in termini di efficienza.

Per essere concreti:

* Una singola ricerca su Google consuma quattro volte più energia di una transazione su IC.

* Una singola transazione Ethereum è 2 milioni di volte più dispendiosa in termini di energia di una transazione IC.

Obiettivi di performance

Un obiettivo chiave di Internet Computer è quello di fornire un livello di elaborazione pubblico in grado di sostituire l’IT tradizionale.

Una preoccupazione logica è che ciò potrebbe causare un aumento del consumo energetico globale, il che sarebbe dannoso per l’ambiente, poiché Internet Computer è una rete blockchain.

Tuttavia, non è questo il caso.

Internet Computer funziona in modo molto diverso dalle altre blockchain ed è alimentato da una nuova tecnologia  crittografica avanzata. Internamente, la rete è in grado di limitare rigorosamente la replica dei dati e di calcolo, pur fornendo quelle garanzie di liveness e sicurezza che si è soliti aspettarsi da una blockchain. Ha anche la capacità di assegnare diversi “trust levels”(o “livelli di fiducia”) alle unità di codice blockchain che ospita (“smart contract”), il che cambia il livello di replica applicato ai loro calcoli e dati.

Nel suo attuale stato di sviluppo, è già di vari ordini di grandezza più efficiente di altre blockchain, ma è progettato per diventare alla fine anche più efficiente dell’IT tradizionale.

Come tutte le blockchain, la rete Internet Computer applica direttamente la replicazione, in combinazione con la crittografia avanzata, per creare una piattaforma inviolabile e che assicuri garanzie di liveness di gran lunga migliori rispetto all’IT tradizionale.
Al contempo la rete limita la replicazione utilizzando la replica che si verifica per aumentare l’efficienza, ad esempio scalando le transazioni di “query”.

I sistemi e i servizi costruiti utilizzando la piattaforma IT tradizionale spesso rispondono pesantemente alla replica, ma poiché la replica viene “aggiunta”, piuttosto che essere una parte fondamentale del funzionamento della piattaforma sottostante, riteniamo che a lungo termine Internet Computer sarà sostanzialmente più efficiente.

Ad esempio, un servizio online di grandi dimensioni potrebbe essere costruito su Amazon Web Services utilizzando un database in una configurazione master-slave, istanze Kubernetes di web worker, istanze memcached per memorizzare nella cache i risultati delle query di database e una CDN (rete di distribuzione dei contenuti) che memorizza nella cache i contenuti web che servono ai margini della rete. Solo questo crea già una grande quantità di replica, senza alcuna piattaforma inviolabile, né garanzie di liveness.
Ogni nodo slave del database replica i propri calcoli e dati, e più snapshot regolari verranno effettuati come backup, i dati utilizzati dai web worker vengono replicati dalle istanze memcached e ogni lavoro memorizzerà anche i dati nella sua memoria, mentre il prodotto delle web query sarà replicato in tutto il mondo su nodi CDN.

Poiché la replica è al centro della progettazione di Internet Computer, grazie alla replica stessa è possibile derivare un’efficace protezione, liveness e altre proprietà, applicandola al contempo in modo più efficiente.
Ad esempio, poiché Internet Computer è una piattaforma e blockchain singola e coerente, man mano che diventa più grande, l’utilizzo dell’hardware del nodo su cui viene eseguito può essere maggiore rispetto, ad esempio, a una macchina server indipendente in un data center. Un obiettivo chiave di Internet Computer è quello di fornire nel tempo una piattaforma di calcolo pubblica che garantisca al mondo un modo più efficiente dal punto di vista energetico per costruire sistemi e servizi.

Esperimenti sulle performance

La scalabilità di Internet Computer è facilitata dallo sharding di IC in più subnet blockchain.
Ogni subnet blockchain può elaborare delle update calls (writes) dai messaggi in ingresso indipendentemente dalle altre subnet.

IC può crescere in dimensioni aggiungendo più sottoreti a scapito di avere più traffico di rete (poiché le applicazioni devono potenzialmente comunicare attraverso le sottoreti).

Nella sua forma attuale, IC dovrebbe essere in grado di scalare fino a centinaia di subnet.

Le query calls (reads) possono essere elaborate localmente dai nodi in una sottorete.
La risposta a una query call può quindi avere una bassa latenza poiché la query richiede solo una risposta da un singolo nodo e non richiede comunicazione o consenso tra i nodi.

Più nodi ha una subnet, più query calls può gestire; e più nodi ha IC, più query calls può gestire.

Configurazione del test

Gli esperimenti sono stati eseguiti contemporaneamente su tutte le sottoreti eccetto l’NNS e alcune delle applicazioni più utilizzate per evitare disturbi agli utenti attivi su IC.

IC dispone di una serie di nodi periferici che indirizzano le chiamate ai nodi principali che ospitano le sottoreti.
Gli esperimenti effettuati hanno inviato carichi direttamente verso le sottoreti e non hanno indirizzato il traffico attraverso i nodi periferici.
I nodi periferici hanno un’ulteriore fattore limitante di velocità, che è attualmente impostato in modo leggermente più conservativo rispetto a ciò che IC può gestire, quindi eseguire i carichi verso i nodi periferici sarebbe inappropriato per la valutazione delle prestazioni.
L’esperimento ha preso di mira contemporaneamente tutti i nodi in ogni sottorete, più o meno come farebbero i nodi periferici se li usassimo.

L’esperimento consisteva nell’installazione di un counter canister in ogni sottorete. Questo counter canister è essenzialmente un canister non operativo. Mantiene solo un contatore, che può essere consultato tramite query calls e incrementato tramite update calls.
Il valore del contatore non utilizza la persistenza ortogonale, quindi il sovraccarico del layer esecutivo di IC è minimo. La sollecitazione del canister contatore può essere vista come un modo per determinare le prestazioni di sovraccarico o di base del sistema.

Misurazioni

Le seguenti misurazioni sono state effettuate il 24 maggio 2022, con 31 applicazioni sottorete (con 13 nodi ciascuna) su un totale di 35 subnet (di cui 4 sono subnet di sistema come le subnet NNS e SNS che hanno più nodi).

Update calls
Internet Computer ha sostenuto più di 20.841 call updates/secondo a applicazioni canister per un periodo di quattro minuti (in media 672 updates/secondo per sottorete). Le update calls qui misurate vengono attivate da messaggi in ingresso inviati dall’esterno di IC.

Query calls
Probabilmente più importanti sono le query calls, poiché contribuiscono a oltre il 90% del traffico osservato su IC. Internet Computer ha elaborato 1’125’982 query calls al secondo a applicazioni canister (in media 2’792 query al secondo per nodo).
Durante l’esperimento, ogni carico viene aumentato in modo incrementale e viene eseguito per un periodo di 5 minuti.

Consumo energetico

Quanto segue è un’approssimazione del consumo di energia della rete principale (mainnet).

Il consumo energetico medio di un nodo Internet Computer è di 700 W.

Se assumiamo un’efficienza di consumo energetico (PUE – Power Usage Effectiveness [1] [2]) di 2,33, ciò conduce a un consumo energetico totale di 1631,0 W, inclusi raffreddamento e altri costi operativi del data center.

Dato un totale di 518 nodi e 11 nodi periferici nella rete principale, e risultando in uno scenario peggiore di 862799 W per far funzionare tutti i nodi IC per la rete principale (comprese anche le sottoreti di sistema).

Questa è un’analisi dello scenario peggiore per il consumo energetico dei nodi poiché normalmente ci aspetteremmo che essi rallentino quando non vengono utilizzati completamente, riducendo così il consumo energetico.

Data la frequenza massima di updates e query che possiamo attualmente supportare su IC, una update call consumerebbe 38,95 J (Joule) e una query call 0,59 J.
Queste cifre si riferiscono a un ipotetico IC utilizzato in tutta la sua totalità.

Con l’attuale tasso approssimativo di 3300 transazioni/secondo, IC utilizza 261,45 J per transazione.

In futuro, il consumo di energia sarà molto più basso poiché il sovraccarico delle sottoreti del sistema sarà relativamente più piccolo, i nodi periferici conterranno la memorizzazione nella cache e il software di replica sarà molto più ottimizzato.

Contestualizzando

Vediamo che anche con stime prudenti, il consumo di energia di Internet Computer è sostanzialmente inferiore rispetto ai progetti blockchain concorrenti, ma anche alla tecnologia web2 esistente (altamente ottimizzata). Consulta la seguente tabella per mettere in prospettiva le prestazioni di IC.

Fonte

Costo in [J]

Una transazione Internet Computer

261 J

Una ricerca su Google

Una transazione Solana

Una transazione Ethereum 2

Una transazione Cardano

Una transazione Ethereum

Una transazione Bitcoin

Conclusione e prossimi passi

Internet Computer oggi dimostra già prestazioni impressionanti, nonostante ciò dovrebbe essere possibile potenziare ulteriormente IC attraverso:

  • Più subnet: ciò aumenterà immediatamente il flusso di query e update calls. Sebbene l’aggiunta di sottoreti possa eventualmente portare ad altri problemi di scalabilità, IC nella sua forma attuale dovrebbe essere in grado di supportare centinaia di sottoreti.
  • Miglioramento delle prestazioni: le prestazioni possono essere migliorate anche mediante una migliore ottimizzazione delle prestazioni di una singola macchina, della rete e del consenso.
    È plausibile pensare di aumentare le prestazioni di almeno un ordine di grandezza.

 

Vedi anche

Fonti