Questo tutorial potrebbe richiedere alcune piccole modifiche per meglio rappresentare l’ultima versione della procedura di installazione. Saranno apportate il più presto possibile. Se si incontrassero alcuni problemi, è possibile approfondire la seconda parte (moduli IXI) o chiedere sul canale #omega-ict del discord server di IOTA.


Introduzione

IOTA Controlled agenT, abbreviato Ict, è un progetto iniziato da Come-From-Beyond (CfB, alias Sergey Ivancheglo), uno dei co-fondatori e co-direttore di IOTA.
Questo progetto fa ora parte del team Omega della IOTA Foundation e sta subendo una completa riscrittura ed espansione del codice, principalmente tramite microhash.
Il tutorial scritto un mese fa non è più valido, in quanto la “vecchia” versione di CfB è deprecata (e non è più nemmeno disponibile sulla sua pagina github).

dQuesto nuovo tutorial spiegherà come installare e utilizzare la nuova versione (Omega-Ict) grazie ad uno splendido script di installazione realizzato dal’utente discord schaeff (Phil#1641).

Immagine di due Raspberry Pi montati in un case personalizzato. Per gentile concessione di Qaamien#5990
Installazione custom di due Raspberry Pi. Per gentile concessione di Qaamien#5990

Cos’è Ict

I suoi principali sviluppatori hanno suggerito che l’obiettivo finale sarebbe stato quello di utilizzare Ict al posto della rete primaria IOTA, sostituendo IRI quando l’Internet delle cose diventa una realtà. (n.d.r. maggiori informazioni su Ict le trovate al seguente articolo)
Una delle sue caratteristiche principali sembra essere che si basa sul sharding. Questo significa che dovrebbe essere costituito da molti piccoli nodi marginali (es. Raspberry Pis) che lavorano insieme e agiscono come se fossero un unico nodo completo.

Ict è infatti la spina dorsale stessa di questa infrastruttura. Ad oggi, ict consiste principalmente in un protocollo gossip per lo scambio di transazioni (utilizzando il modello di transazione standard IOTA) tra i partecipanti. La vera forza di questo progetto risiede nelle estensioni (IXI) che possono essere aggiunte per aumentare le capacità della rete Ict. Queste IXI possono fondamentalmente fare tutto quello che volete. E’ qui che entra in gioco la comunità. Chiunque può costruire il proprio IXI e fornire nuove capacità alla rete. Alcuni IXI possono per esempio permettere la creazione di permanodes (suddividendo il database tra i dispositivi Ict), gestire una piattaforma per l’e-voting, consentire la creazione di sottogruppi personali al fine di garantire la sovranità dei vostri dati personali, tenere traccia degli oggetti di gioco per i videogiochi online, ….

In ogni caso, ulteriori informazioni ufficiali arriveranno a tempo debito dalla fondazione IOTA, una volta che il sistema è stato completato. Attualmente, Ict è ancora in fase di test e le sue transazioni sono effettuate su una testnet, senza alcuna interazione con i normali nodi IRI

Avrete bisogno di…

Da oggi, Ict può essere eseguito su qualsiasi dispositivo connesso ad internet in grado di eseguire java. Può essere un Raspberry Pi, un Rock64, un normale computer, un VPS, qualsiasi macchina virtuale od anche un telefono Android.

Il presente tutorial copre solo la parte di installazione di Ict. Esistono già delle guide molto carine per spiegare come avviare facilmente i dispositivi più comuni e renderli pronti per l’installazione di Ict.

  • Installazione di un Raspberry Pi (in inglese, ma con i motori di ricerca troverete delle ottime guide)
  • Installazione di una VPS gratuita di google (in inglese)
  • Installazione su un telefono Android (più complicato, solo la parte di impostazione è ancora valida, gli ultimi passaggi sono per la vecchia versione ICT)

Questo tutorial si concentrerà principalmente sull’installazione di un Raspberry Pi, ma l’idea generale è la stessa per ogni altro dispositivo

Argomenti trattati

  1. Impostazione del dispositivo per l’accesso esterno
  2. Impostazione di Ict
    1. Panoramica dello script di installazione
    2. Installazione di Ict
    3. Trovare i vicini
    4. Configurazione Ict
  3. Controllare Ict, interpretare i log,…
  4. Aggiornare ict e lo script all-in-one
  5. Tutorial futuri

Preparazione del dispositivo

Questa sezione presuppone che il dispositivo sia già in funzione e connesso a Internet. Se avete bisogno di una guida, fate riferimento ai tre tutorial per l’installazione linkati qui sopra.

Ottenere un IP statico

Questo passaggio è necessario solo se non si dispone già di un IP statico, gli utenti VPS, ad esempio, possono saltare questo passaggio.

Ict richiede l’utilizzo di un IP statico per connettersi con i vicini. Sfortunatamente, i fornitori di servizi Internet spesso forniscono IP dinamici. Pertanto, sarà necessario utilizzare un servizio di DNS dinamico per avere un modo statico di accedere al vostro IP dinamico. Con questo servizio, il dispositivo segnalerà semplicemente l’IP pubblico effettivo al server dynDNS ogni pochi minuti, in modo che si possa risalire al vostro dispositivo.

Iniziare su noip.com, o qualsiasi altro fornitore di dyndns di vostra scelta. Creare un account e scegliere un nome di dominio per facilitare l’accesso (questo nome di dominio sarà da comunicare ai vicini).
Ora è necessario installare alcuni script sul Raspberry Pi che invieranno il vostro IP al vostro fornitore di dyndns.

I seguenti comandi sono per noip installare su un Raspberry Pi. Per altri sistemi, si dovrebbe solo cambiare il percorso dell’installazione /home/usr/noip.

È necessario digitare le righe una alla volta e premere Invio dopo ogni riga. Potete vedere in profondità cosa fa ogni comando sul loro sito web di documentazione.

mkdir /home/pi/noip
cd /home/pi/noip
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar vzxf noip-duc-linux.tar.tar.gz
cd noip-2.1.9-1
sudo make
sudo make install


Dopo quest’ultima riga, sarà richiesto il login e la password (quelli registrati presso noip.com).
Il terminale vi chiederà quindi l’intervallo di tempo tra un aggiornamento e l’altro. Scegliere qualcosa di strettamente superiore a 5, altrimenti si verificherà un errore. Infine, inserire N alla domanda successiva.

Ora è possibile eseguire noip usando

sudo /usr/local/bin/noip2

Ora è sufficiente digitare cd per tornare alla home directory prima di continuare l’installazione.

Nota 1: Quest’ultimo comando viene eseguito solo finché il vostro Pi è collegato. Se si riavvia il dispositivo, sarà necessario avviare noip (digitando di nuovo sudo /usr/local/bin/bin/noip2) per assicurarvi che l’IP continui ad essere collegato dinamicamente al nome di dominio utilizzato.

Nota 2: Nessun nome di dominio libero ha una data di scadenza. Ogni mese si riceverà un’e-mail di conferma che chiederà di confermare l’utilizzo del dominio. Ricordiamoci di confermarlo, altrimenti Ict sarà disconnesso dal suo vicino.

Aprire una porta per Ict nel firewall del router di casa

ICT richiede che una porta sia aperta nel router (di default è 1337 per Omega-Ict, ma volendo è possibile usarne un’altra, come il 14265). Andare all’interfaccia di configurazione del router (di solito i dettagli sono stampati su un’etichetta ad esso attaccata). Individuare la scheda port forwarding o portmapping e collegare la porta 1337 all’IP locale del dispositivo e alla sua porta 1337. Assicurarsi di utilizzare UDP, altrimenti non funzionerà correttamente. Se si utilizza una VPS, individuare l’opzione firewall e consentire il traffico verso la porta che si desidera utilizzare per Ict.

Esempio di configurazione nel mio router di casa.


Impostazione di Ict

Come accennato nell’introduzione, l’utente discord schaeff (Phil#1641) ha creato un semplice script per automatizzare l’installazione di Ict. Lo script è stato testato su vari sistemi basati su Linux (debian, Raspbian, gentoo, Red hat,….).
Lo script permette di compilare l’eseguibile dai sorgenti o semplicemente di scaricare l’ultima versione pre-compilata di Ict. Se il vostro piano è semplicemente eseguire Ict, probabilmente non è necessario scaricare e compilare i sorgenti. Quindi dovrebbe bastare l’uso del rilascio pre-compilato (e questo renderà l’installazione molto più veloce)

Panoramica dello script

Come spiegato nella pagina di github, lo script fa quanto segue:

  • Installare tutte le dipendenze richieste
  • Aggiungere un utente “ict” (misura di sicurezza)
  • Scaricare e compilare il codice sorgente o semplicemente scaricare l’ultima versione pre-compilata a seconda della scelta dell’utente
  • Importare le vecchie impostazioni da ict.properties, se disponibili
  • Generare un servizio systemd per facilitare il controllo di Ict
  • Generare un cronjob che riavvia automaticamente Ict ogni notte (per evitare problemi di memoria java)
  • Avviare Ict e mostrare i log.

Ulteriori spiegazioni su questo script possono essere trovate sul repository github di schaeff

Installazione di Ict

Per prima cosa è necessario scaricare lo script di installazione:

sudo wget https://raw.githubusercontent.com/phschaeff/ict-install/master/install-ict.sh

Ora, basta eseguire lo script appena scaricato con l’opzione per compilare da sorgenti (BUILD) o per scaricare la versione pre-compilata (RELEASE) e con il nome che si desidera per la propria istanza di Ict. Si noti che il nome del nodo non dovrebbe avere spazi in esso.

sudo bash install-ict.sh <BUILD/RELEASE> <nodename>

Ad esempio:

sudo bash install-ict.sh RELEASE antonionardella.it_ict0

Ora l’installazione è completa, questa procedura può richiedere fino a 5 minuti. Dopo di che si dovrebbe vedere il log di Ict che inizia a comparire sullo schermo.

E ‘perfettamente normale avere errori al primo avvio, in quanto non è ancora configurato nulla. Uscire dai log digitando Ctrl+C.

Trovare i vicini

L’Ict richiede almeno un vicino (neigbor) per funzionare correttamente. È possibile aggiungerne fino a tre. Andare nel canale #omega-ict del server Discord di IOTA e chiedere per i vicini. Iniziare una discussione privata con gli interessati e scambiare il proprio IP pubblico se è statico o il DNS (che è stato scelto con No-IP per esempio). Non dimenticare di menzionare la porta che utilizzata (quella che avete aperto nel vostro firewall). Chiedere loro la porta che stanno usando in quanto potrebbe essere diversa dalla nostra (ma è importante conoscerla).

Ora che sono stati trovati i vostri vicini, sono da aggiungerr nel file di configurazione di Ict.

Poiché siete già su discord, prendetevi qualche istante per classificarvi nel gruppo di ict-testing. Questo permetterà agli sviluppatori e ai mods di fare facilmente il ping per informarvi sugli sviluppi più importanti (nuovi aggiornamenti, ad esempio). Andate nel canale #rank-yourself e digitate !rank ict-testing.

Configurazione Ict

L’ultimo passo consiste nel configurare Ict per connettersi ai vostri vicini e modificare alcuni altri parametri.

Aprire il file dei parametri utilizzato

sudo nano /home/ict/config/ict.cfg

La prima cosa da cambiare sono i parametri dei vicini. Aggiungete tutti i vicini (massimo 3) con il loro ip statico + la porta o il nome di dominio + la porta, separati da una virgola. Si noti che non dovrebbe esserci uno spazio vuoto dopo la virgola. Per esempio

neighbors=123.456.17.97:1337,myneighbor.ddns.net:14600,myotherneighbor.noip.com:1234

È anche possibile cambiare il nome dell’istanza Ict, per esempio:

name=lambtho_ict0

Infine, è possibile attivare lo spam. Questo invierà al vicino una transazione ogni minuto, in modo che si possa verificare la buona connessione tra i due nodi. Questo parametro può essere cambiato di nuovo in false una volta che si è sicuri che la connessione è ben stabilita.

spam_enabled=true

Uscire dal file di configurazione premendo Ctrl+O poi Ctrl+X .
Ora è possibile riavviare Ict usando

sudo systemctl restart ict

Controlli e log Ict

Controlli Ict

Per una gestione più semplice, lo script di installazione esegue Ict come servizio. Questo significa che si può chiudere in sicurezza il terminale o la connessione ssh e che continuerà a funzionare. L’esecuzione di Ict come servizio consente anche un controllo più semplice.

È possibile avviare, visualizzare lo stato, arrestare o riavviare Ict rispettivamente con i seguenti comandi:

sudo systemctl start ict
sudo systemctl status ict
sudo systemctl stop ict
sudo systemctl restart ict

È anche possibile visualizzare i log con (digitare Ctrl+C per uscire da quei log)

journalctl -fu ict

Log Ict

I log in Ict sono visualizzati come segue

Tipico log Ict, con spam=true


  • La prima colonna indica il numero totale di transazioni provenienti dal corrispondente vicino (gli IP vicini sono sfuocati nell’immagine). Se questo numero è diverso da 0, significa che state ricevendo transazioni dal vostro vicino. Se il numero è 1, può indicare che il vostro vicino non è collegato a gran parte della rete (solo lui invia le transazioni). Se il numero è più grande di questo, significa che è connesso ad una parte più importante della rete e passa anche le altre transazioni che ha ricevuto
  • La seconda colonna è il numero di nuove transazioni provenienti da questo vicino. Queste nuove transazioni sono transazioni che il vostro nodo non ha mai visto prima. E’ possibile che il numero totale di transazioni (tutte) sia superiore al numero di nuove transazioni
  • La terza colonna indica il numero di transazioni richieste. Questo accade se si riceve una transazione il cui tronco o ramo non è già noto a voi. In questa situazione il vostro Ict cercherà di richiedere queste informazioni ai vostri vicini
  • La quarta colonna è il numero di transazioni non valide. Dovrebbe essere 0 o vicino a 0 in ogni momento. Valori elevati indicano un cattivo vicino

Nota: se il vicino non ha attivato lo spam, è possibile che siano visualizzate 0 transazioni nella sua prima colonna, mentre la connessione tra voi due è ancora valida. Chiedergli gentilmente di attivare l’opzione spam per qualche minuto solo per controllare, e poi può disattivarla di nuovo se desiderato. Allo stesso modo, una prima colonna che indica 1 non significa necessariamente che il tuo vicino non è collegato al resto della rete. È anche possibile che la parte della rete a cui è connesso abbia disattivato lo spamming.

Aggiornamento Ict

Aggiornare Ict è semplice come eseguire nuovamente lo script di installazione. Basta digitare la riga a destra (corrispondente allo script che si sta utilizzando)

Nell’esempio è stato :

sudo bash install-ict.sh RELEASE antonionardella.it_ict0

Aggiornamento dello script di installazione all-in-one

Schaeff probabilmente aggiornerà i suoi super script in futuro per aggiungere altre funzionalità o semplicemente per risolvere alcuni bug. Per usare la nuova versione, basta rimuovere quella vecchia (a seconda della versione, questa era debian) con

rm install-ict.sh

E lanciare nuovamente il comando sudo wget per scaricare l’ultima versione (vedere l’inizio della sezione “Installare Ict”. Non dimenticate di eseguire lo script se necessario per beneficiare delle ultime modifiche.

Tutorial futuri, moduli IXI

Come accennato nell’introduzione, Ict è solo la spina dorsale di quello che diventerà un sistema molto complesso. Alcuni moduli IXI saranno presto aggiunti dalla comunità e dalla fondazione stessa. Sono ora disponibili due diversi IXI. Lo script di installazione li aveva già installati sul vostro dispositivo. Per vedere come eseguirli, usate il secondo tutorial (saltate direttamente alla parte 3).

Spero che abbiate trovato tutte le informazioni necessarie in questo tutorial. Grazie mille a Schaeff per i suoi meravigliosi installatori all-in-one e microhash per le sue spiegazioni molto chiare sulla visione di Ict.

Se avete ancora qualche problema, non esitate ad unirvi al canale #omega-ict del server Discord di IOTA e porre le vostre domande. Molta gente sarà lieta di aiutarvi a risolvere questo problema.

Le donazioni in IOTA sono sempre molto benvenute e saranno divise con Schaeff, poiché ha scritto tutti gli script per facilitare l’installazione.

TCO9AVVRVAVHMSHWHNGHNNYXJXPQUKXEPBALLLNZTLLRHIEOYEGWBZEBWPPGCVBFILAVRMNMSBPUBZYKBZDIEXADUW

Il testo originale in lingua inglese si trova qui: https://medium.com/@lambtho/iota-omega-ict-tutorial-noob-edition-ff9e1e6d6c2f


È possibile supportarmi su Patreon https://www.patreon.com/antonionardella

Per ulteriori informazioni in italiano o tedesco trovate i miei contatti a questa pagina.
Se avete trovato utile la mia libera traduzione, accetto volentieri delle donazioni 😉

IOTA:
QOQJDKYIZYKWASNNILZHDCTWDM9RZXZV9DUJFDRFWKRYPRMTYPEXDIVMHVRCNXRSBIJCJYMJ9EZ9USHHWKEVEOSOZB
BTC:
1BFgqtMC2nfRxPRge5Db3gkYK7kDwWRF79

Non garantisco nulla e mi libero da ogni responsabilità.


Also published on Medium.