-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #421 from Olek97/main
Updates
- Loading branch information
Showing
6 changed files
with
574 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
 | ||
|
||
|
||
Non c'è assolutamente alcun dubbio che la decentralizzazione e la privacy basata su Blockchain siano uno dei sistemi più adottati dalla maggior parte dei progetti Web3 nel mondo delle criptovalute e della tecnologia Blockchain. Nella guida di oggi, parleremo di un protocollo di privacy interchain (o inter-catena) noto come Protocollo Namada, che si preoccupa anche della privacy dell'utente utilizzando il suo Proof-of-Stake di Livello-1 per una privacy agnostica tra asset interchain. | ||
|
||
## Che cos'è Namada? | ||
Il Protocollo Namada è una piattaforma di livello 1 (L1) basata sul consenso proof-of-stake, progettata per fornire una privacy agnostica tra asset interchain. Tramite il protocollo Inter-Blockchain Communication (IBC), Namada si integra perfettamente con le catene a rapida finalizzazione, consentendo un'interoperabilità senza problemi. Inoltre, Namada stabilisce un ponte bidirezionale senza fiducia con Ethereum, facilitando una comunicazione sicura e affidabile tra le due reti. | ||
|
||
 | ||
|
||
Namada dà priorità alla privacy implementando una versione avanzata del circuito Multi-Asset Shielded Pool (MASP). Questa versione migliorata consente a tutti i tipi di asset, inclusi token fungibili e non fungibili, di utilizzare un insieme condiviso di set schermati esattamente come avviene su Zcash. Di conseguenza, l'atto di trasferire asset supportati su Namada diventa distintivo poiché diventa difficile da identificare grazie all'alto livello di privacy. Inoltre, l'ultima versione del circuito Multi Asset Shielded Pool consente di ottenere ricompense in set schermati, una funzionalità rivoluzionaria ed un incentivo che assegna risorse per promuovere la privacy come bene pubblico. | ||
|
||
## Ethereum Bridge + Compatibilità IBC | ||
L'integrazione del Ethereum Bridge in Namada elimina la necessità di un protocollo separato, poiché diventa parte integrante dell'ecosistema di Namada. I validatori all'interno di Namada sono incaricati di gestire il bridge insieme al protocollo principale di Namada. Questi validatori fungono anche da intermediari (relayers) quando si tratta di trasferire asset a Namada, rendendo superflua la partecipazione di attori aggiuntivi. Quando invece si tratta di trasferire asset a Ethereum, sono coinvolti soggetti esterni (nooti come relayers), anche se non hanno alcuna responsabilità nella convalida o sicurezza del bridge. | ||
|
||
 | ||
|
||
|
||
Il Protocollo Namada ha anche la capacità di connettersi senza problemi con qualsiasi catena fast-finality che supporti il protocollo Inter-Blockchain Communication (IBC). Per quanto riguarda l'interoperabilità con Ethereum, Namada implementa un Ethereum bridge specializzato e sicuro che opera in modo privo di fiducia. Questo bridge è stato accuratamente progettato per dare priorità alla sicurezza, applicando il controllo dei flussi per tutte le connessioni del bridge e trattando qualsiasi trasferimento difettoso di Ethereum come un'infrazione grave che può comportare penalità. | ||
|
||
## Privacy della Blockchain | ||
Nell'ultima versione del [Protocollo Namada](https://blog.namada.net/what-is-namada/), gli utenti che possiedono asset schermati sono incentivati a partecipare attivamente all'insieme schermato condiviso. Questo è reso possibile grazie all'integrazione del circuito MASP aggiornato, che ora include l'innovativo Convert Circuit. Sfruttando questa nuova funzionalità, Namada incoraggia gli utenti a contribuire all'insieme condiviso schermato detenendo asset schermati. | ||
|
||
 | ||
|
||
|
||
In Namada, l'insieme schermato è considerato un bene pubblico non esclusivo e anti-rivalità. Ciò significa che, man mano che più individui utilizzano i trasferimenti schermati, il livello di garanzia della privacy migliora per ogni partecipante. Il protocollo riconosce l'importanza dell'adozione e della partecipazione collettiva per migliorare la privacy di tutti gli utenti. Pertanto, incentivando gli utenti a detenere asset schermati e a contribuire all'insieme condiviso di asset schermati, favorendo così un ecosistema di privacy più solido e robusto. | ||
|
||
## Transazioni di asset schermati | ||
Quando si tratta di trasferimenti schermati, che riguardano dei token non fungibili (NFT) di Ethereum, ATOM o NAM, essi sono indistinguibili l'uno dall'altro. Ciò significa che le caratteristiche di preservazione della privacy fornite dal MASP (Modified Accumulator Sapling Protocol), una versione migliorata del circuito Sapling di Zcash, si applicano uniformemente a tutti i tipi di asset. Il circuito MASP consente a tutti gli asset dell'ecosistema Namada di condividere lo stesso set schermato. Questo approccio assicura che le garanzie di privacy non siano frammentate tra i singoli asset. Indipendentemente dal volume delle transazioni associate a un particolare asset, la protezione della privacy rimane coerente e indipendente. | ||
|
||
 | ||
|
||
|
||
Unificando l'insieme degli asset schermati tra i diversi asset, Namada assicura che la privacy sia garantita in modo uniforme, indipendentemente dal tipo di asset specifico coinvolto in un trasferimento schermato. Questo approccio promuove un quadro di privacy coeso all'interno del protocollo e migliora la riservatezza delle transazioni che coinvolgono Ethereum NFTs, ATOM, NAM e altri asset supportati. Namada consente inoltre il trasferimento privato di token fungibili e non fungibili utilizzando i nuovi zk-SNARK, garantendo la riservatezza per i token nativi e non nativi proprio come avviene su Zcash. | ||
|
||
## Commissioni Ridotte e Transazioni Veloci | ||
Namada combina due elementi chiave per garantire la velocità e la finalizzazione delle transazioni: la generazione rapida a prova di errore e il moderno consenso Byzantine Fault Tolerant (BFT). Queste due caratteristiche consentono a Namada di raggiungere una velocità di elaborazione delle transazioni paragonabile a quella di Visa, una nota rete di pagamento riconosciuta per le sue elevate capacità di throughput. | ||
La generazione rapida di prove si riferisce all'efficiente generazione di prove crittografiche che convalidano la correttezza e l'integrità delle transazioni sulla Blockchain. Utilizzando tecniche avanzate e ottimizzazioni, il Protocollo Namada riduce al minimo l'onere computazionale necessario per generare queste prove, risultando in una verifica rapida e una conferma delle transazioni. | ||
|
||
 | ||
|
||
Inoltre, Namada utilizza i moderni algoritmi di consenso BFT, che garantiscono l'integrità e l'accordo delle transazioni in tutta la rete. Questi meccanismi di consenso consentono a Namada di raggiungere un consenso sull'ordine e la validità delle transazioni, fornendo una forte garanzia di finalità. Con la finalità, le transazioni sono considerate irreversibili, riducendo il rischio di double-spending o annullamento delle transazioni. Namada segue un approccio simile ad Anoma, un altro protocollo noto per le sue soluzioni di scalabilità. Namada adotta istanze frattali, che consentono la creazione di catene nidificate all'interno della blockchain principale. Questa struttura frattale consente la scalabilità orizzontale distribuendo il carico su molteplici istanze, migliorando la capacità complessiva e le prestazioni della rete. | ||
|
||
## Alleanza strategica tra Namada e Zcash | ||
|
||
Secondo una recente pubblicazione che si può trovare sul [Namada Protocol Blog](https://blog.namada.net/rfc-proposal-for-a-strategic-alliance-between-namada-and-zcash/), il team dietro al protocollo Namada è entusiasta di presentare una proposta e una richiesta di commento (RFC) per un'alleanza strategica tra gli asset, le catene e le comunità Namada e Zcash. | ||
|
||
 | ||
|
||
|
||
L'alleanza proposta comprende tre elementi principali. In primo luogo, viene creato un fondo di sovvenzioni per finanziare i progetti che portano vantaggi sia a Zcash che a Namada. In secondo luogo, un airdrop di token NAM sarà assegnato ai titolari di ZEC. Infine, è in atto un piano per la creazione di un ponte di collegamento tra Zcash e Namada, minimizzato dal punto di vista della fiducia. Una volta implementato, questo ponte consentirà ai titolari di ZEC, denominati Zolders, di utilizzare i loro ZEC su Namada. Inoltre, gli Zolders avranno l'opportunità di accedere ai più ampi ecosistemi Cosmos ed Ethereum attraverso Namada. Per saperne di più sull'alleanza strategica è possibile consultare il [Forum della comunità ZCash](https://forum.zcashcommunity.com/t/rfc-proposal-for-a-strategic-alliance-between-namada-and-zcash/44372) | ||
|
||
|
||
## Link di riferimento | ||
È possibile saperne di più sul protocollo Namada tramite i seguenti link 👇👇 | ||
|
||
https://www.youtube.com/watch?v=Wg_WtPdBig0 | ||
|
||
[Sito web ufficiale del Protocollo Namada](https://namada.net/) | ||
|
||
[Blog di Namada](https://blog.namada.net/) | ||
|
||
[Documenti di Namada](https://docs.namada.net/) |
238 changes: 238 additions & 0 deletions
238
site/zechubglobal/zcashitaly/guides/VisualizingtheZcashNetwork.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,238 @@ | ||
# Visualizzazione della rete Zcash | ||
|
||
Quella che segue è una guida su come eseguire Ziggurat 3.0 Crawler per Zcash e i programmi associati Crunchy e P2P-Viz su Ubuntu 22.04 per raccogliere e visualizzare le informazioni sulla rete Zcash. | ||
Il video collegato qui sotto segue lo stesso processo. | ||
|
||
https://www.youtube.com/watch?v=Nq5cLiAHxPI | ||
|
||
---------------- | ||
## Installare i requisiti: | ||
|
||
Rust [https://rustup.rs/](https://rustup.rs/) | ||
|
||
## Opzionale: | ||
jq [https://jqlang.github.io/jq/download/](https://jqlang.github.io/jq/download/) | ||
(per visualizzare informazioni json nel terminale) | ||
|
||
curl [https://everything.curl.dev/get/linux](https://everything.curl.dev/get/linux) | ||
(per interrogare il crawler RPC) | ||
|
||
npm (con nvm) [https://medium.com/@iam_vinojan/how-to-install-node-js-and-npm-using-node-version-manager-nvm-143165b16ce1](https://medium.com/@iam_vinojan/how-to-install-node-js-and-npm-using-node-version-manager-nvm-143165b16ce1) | ||
(per visualizzare P2P-Viz nel browser) | ||
|
||
---------------- | ||
|
||
|
||
---------------- | ||
Repository di Ziggurat 3.0 | ||
[https://github.com/runziggurat](https://github.com/runziggurat) | ||
|
||
Repository di Crawler | ||
[https://github.com/runziggurat/zcash.git](https://github.com/runziggurat/zcash.git) | ||
|
||
Repository Crunchy | ||
[https://github.com/runziggurat/crunchy.git](https://github.com/runziggurat/crunchy.git) | ||
|
||
Replica di P2P-Viz | ||
[https://github.com/runziggurat/p2p-viz.git](https://github.com/runziggurat/p2p-viz.git) | ||
|
||
---------------- | ||
|
||
Iniziare applicando i normali aggiornamenti. | ||
|
||
> Eseguite i seguenti comandi: | ||
```fish | ||
sudo apt update | ||
sudo apt upgrade | ||
``` | ||
|
||
---------------- | ||
|
||
## Zcash Network Crawler | ||
|
||
Zcash Crawler risiede all'interno di una cartella denominata "zcash", quindi è consigliabile creare una nuova directory prima di clonare il crawler (runziggurat/zcash repo). | ||
|
||
|
||
> Dalla cartella /Home, eseguire i seguenti comandi: | ||
``fish | ||
mkdir runziggurat | ||
cd runziggurat | ||
git clone https://github.com/runziggurat/zcash.git | ||
cd zcash | ||
``` | ||
Navigare nel browser su | ||
[https://github.com/runziggurat/zcash/blob/main/src/tools/crawler/README.md](https://github.com/runziggurat/zcash/blob/main/src/tools/crawler/README.md) | ||
Oppure aprire il readme in | ||
'/runziggurat/zcash/src/tools/crawler/README.md' | ||
Questa pagina contiene informazioni sull'uso specifico. | ||
---------------- | ||
```fish | ||
$ cargo run --release --features crawler --bin crawler -- --help | ||
OPZIONI: | ||
-c, --crawl-interval <CRAWL_INTERVAL> | ||
L'intervallo del ciclo di crawling principale in secondi [valore predefinito: 5]. | ||
-h, --help | ||
Stampa informazioni di aiuto | ||
-r, --rpc-addr <RPC_ADDR> | ||
Se presente, avvia un server RPC all'indirizzo specificato. | ||
-s, --seed-addrs <SEED_ADDRS>... | ||
Un elenco di indirizzi IP standalone iniziali e/o di server DNS a cui connettersi | ||
-n, --node-listening-port <NODE_LISTENING_PORT> | ||
Porta predefinita utilizzata per la connessione ai nodi [default: 8233]. | ||
-V, --versione | ||
Stampa le informazioni sulla versione | ||
``` | ||
|
||
`--seed-addrs` \ `--dns-seed` è l'unico argomento richiesto e necessita di almeno un indirizzo specificato per essere eseguito. | ||
|
||
|
||
|
||
---------------- | ||
|
||
Il comando 'cargo run --release --features crawler --bin crawler -- --help' è il comando di esecuzione letterale e stamperà il menu di aiuto mostrato. | ||
|
||
|
||
> Eseguire il comando | ||
``fish | ||
cargo run --release --features crawler --bin crawler -- --help | ||
``` | ||
Ciò compilerà il programma e assicurerà che tutto funzioni correttamente. | ||
Per eseguire il Crawler, è necessario aggiungere l'opzione '--seed-addrs' al comando di avvio, contenente almeno un indirizzo IP valido di un nodo Zcash. Il Crawler dovrebbe essere eseguito per un periodo di tempo ragionevole per ottenere un risultato accurato. Alcuni esempi di indirizzi IP dei nodi possono essere trovati su [https://zcashblockexplorer.com/nodes](https://zcashblockexplorer.com/nodes). | ||
Per ottenere informazioni dal Crawler mentre è in esecuzione, è necessario aggiungere l'opzione '--rpc-addr' al comando di avvio. Questo non è necessario solo per eseguire il Crawler stesso, ma altrimenti richiederebbe di interrompere il Crawler (ctrl+c o SIGKILL) per visualizzare qualsiasi informazione. | ||
> Eseguire il comando | ||
``fish | ||
cargo run --release --features crawler --bin crawler -- --seed-addrs 157.245.172.190:8233 194.135.81.61:8233 35.233.224.178:8233 --rpc-addr 127.0.0.1:54321 | ||
``` | ||
|
||
Il Crawler inizierà a comunicare con la rete (default ogni 20 secondi) e a raccogliere dati sulla rete. Le informazioni dal Crawler possono essere visualizzate utilizzando curl per interrogare il nodo (questo richiede jq per visualizzare tali informazioni). L'indirizzo RPC del Crawler in questo esempio è impostato su '127.0.0.1:54321' | ||
|
||
|
||
> In un altro terminale, eseguire il comando | ||
```fish | ||
curl --data-binary '{"jsonrpc": "2.0", "id":0, "method": "getmetrics", "params": [] }' -H 'content-type: application/json' http://127.0.0.1:54321/ | jq .result.protocol_versions | ||
``` | ||
|
||
Questo mostrerà i dati correnti delle '.protocol_version' raccolte contenute nel campo '.result'. Il campo '.result' è molto grande, quindi è utile richiamarne solo alcune parti. Altri tipi di dati utili sono '.num_known_nodes', '.num_good_nodes', '.user_agents' ecc. Vedi la sezione delle metriche [Qui](https://github.com/runziggurat/zcash/tree/main/src/tools/crawler#metrics) | ||
|
||
---------------- | ||
|
||
|
||
---------------- | ||
Per eseguire Crunchy e P2P-Viz, è necessario inserire il '.result' in un file .json. | ||
|
||
|
||
> Eseguire il comando | ||
```fish | ||
curl --data-binary '{"jsonrpc": "2.0", "id":0, "method": "getmetrics", "params": [] }' -H 'content-type: application/json' http://127.0.0.1:54321/ > latest.json | ||
``` | ||
|
||
Questo creerà un file "latest.json" nella cartella corrente, che verrà utilizzato con Crunchy. | ||
|
||
A questo punto, Crawler può essere fermato con "ctrl+c" se non sono necessari altri dati. Crawler invierà al terminale un rapporto con le informazioni utili. | ||
|
||
|
||
---------------- | ||
|
||
## Crunchy | ||
|
||
Crunchy è necessario per aggregare il file json di output da usare con P2P-Viz. | ||
|
||
|
||
Per creare Crunchy, navigare nella cartella '/runziggurat'. | ||
|
||
> Per clonare il repo di Crunchy, eseguire i seguenti comandi | ||
``Pesce | ||
git clone https://github.com/runziggurat/crunchy.git | ||
cd crunchy | ||
``` | ||
Copiare e incollare il file 'latest.json' nella cartella 'crunchy/testdata/'. | ||
> Eseguire i seguenti comandi | ||
```fish | ||
cargo run --release -- -i testdata/latest.json -o testdata/state.json -g testdata/geoip-cache.json -f Zcash | ||
``` | ||
|
||
Questo creerà un file "state.json" filtrato per i nodi Zcash nella cartella "crunchy/testdata/" da usare con P2P-Viz. | ||
|
||
---------------- | ||
|
||
## P2P-Viz | ||
|
||
Per compilare P2P-Viz, è necessario avere npm. | ||
|
||
|
||
> Per installare npm con nvm, eseguire i seguenti comandi: | ||
``fish | ||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash | ||
``` | ||
Chiudere e riavviare il terminale. | ||
> Eseguire il comando: | ||
``fish | ||
nvm install --lts | ||
``` | ||
|
||
Navigare nella cartella '/runziggurat'. | ||
|
||
|
||
> Per clonare il repo P2P-Viz e avviarlo, eseguite i seguenti comandi | ||
```fish | ||
git clone https://github.com/runziggurat/p2p-viz.git | ||
cd p2p-viz | ||
npm i | ||
npm run build | ||
npm run start http | ||
``` | ||
|
||
---------------- | ||
|
||
|
||
Aprire un browser all'indirizzo [http://localhost:3000](http://localhost:3000). | ||
|
||
Selezionare "Geolocation" e poi "Choose state file". | ||
|
||
Dall'apertura del file explorer, seleziona il file "state.json". | ||
|
||
La mappa del mondo dell'esploratore di nodi si popolerà con i dati del file. Per ulteriori dettagli sulle opzioni di utilizzo e sulle impostazioni, consultare il file Readme [Qui] (https://github.com/runziggurat/p2p-viz#build-and-run-the-app). | ||
|
||
|
||
---------------- | ||
SUGGERIMENTI! | ||
|
||
È possibile impostare Crawler su una ricerca a tempo semplicemente con il comando "timeout", che emetterà un comando di arresto specifico dopo un determinato periodo di tempo. Eseguire 'timeout --help' per maggiori informazioni. | ||
Il comando seguente avvia e arresta automaticamente il crawler dopo 50 minuti. | ||
|
||
> Eseguire il comando | ||
```fish | ||
timeout --signal=2 50m cargo run --release --features crawler --bin crawler -- --seed-addrs 157.245.172.190:8233 194.135.81.61:8233 35.233.224.178:8233 --rpc-addr 127.0.0.1:54321 | ||
``` | ||
|
||
---------------- | ||
SUGGERIMENTI! | ||
|
||
Il file 'latest.json' può essere richiamato e scritto in '/testdata', in modo da non doverlo copiare e incollare manualmente. | ||
|
||
---------------- | ||
SUGGERIMENTI! | ||
|
||
Le informazioni sugli indirizzi IP possono essere raccolte dall'output e quindi utilizzate per riseminare Crawler all'avvio (--seed-addrs). Questo ridurrà il tempo necessario per condurre un crawling completo! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.