Visualizzazioni Totali

TRA I PRIMI IN ITALIA A PARLARE DI BITCOIN (DAL 2012!): PER ESSERE SEMPRE AGGIORNATI SULLE NOVITA' TECNOLOGICHE DEL WEB SEGUITE LA PAGINA FACEBOOK (LINK A SINISTRA)
Visualizzazione post con etichetta Java. Mostra tutti i post
Visualizzazione post con etichetta Java. Mostra tutti i post

venerdì 16 giugno 2023

Migliori Linguaggi Di Programmazione Per Smart Contract (Blockchain)

Bitcoin è stato inventato per sostituire le banche, per eseguire pagamenti incensurabili, senza enti di controllo. Il decentramento ha portato alla creazione di smart contract che una volta eseguiti non prevedono l'intervento umano. L'accordo tra l'acquirente e il venditore è scritto in righe di codice, rendendo i contratti intelligenti affidabili. I dev utilizzano linguaggi di programmazione per programmare gli smart contract. Sebbene i linguaggi di programmazione famosi come C++, Java, Python, Go, Ruby, JavaScript, etc siano visti come i migliori, ne sono stati creati altri appositi quali Solidity, Move, Rust e Clarity. Gli smart contract richiedono linguaggi di programmazione creati ad hoc per semplificare le operazioni. Alcune blockchain utilizzano linguaggi "classici":

-EOS: C++
-NEO: C#
-Icon: Python
-Aion: Java

Altre blockchain usano delle varianti di questi che ne sfruttano l'infrastruttura, pur presentando qualche caratteristica diversa.




SOLIDITY (ETHEREUM, TRON E LE ALTRE EVM)
Solidity è un linguaggio di programmazione progettato da Gavin Wood (2014) specificamente progettato per sviluppare smart contract EVM (Ethereum, Avalanche, Fantom, Bnb Chain, etc) e Tron. Solidity è un codice di alto livello, leggibile dall'uomo, che lo scompone in istruzioni specifiche facilmente comprensibili per le macchine. Supporta oggetti, booleani, enumerazioni, interi, stringhe, array di byte e variabili di stato. Anche gli sviluppatori che non hanno esperienza con Solidity possono essere aiutati nello sviluppo, se sono esperti in JavaScript, Python e C++. Infatti, le basi di sviluppo blockchain di Solidity si coordinano con questi linguaggi di programmazione che sono abbastanza familiari. Esso è utilizzato per implementare smart contract nella virtual machine di Ethereum. Il codice di Solidity è scritto sull'EVM, convertito dal compilatore e poi eseguito dal processore. Esso è utilizzato per scrivere dapps anche su Tendermint (software open source per il lancio di blockchain su Cosmos).


CAIRO (ZK ROLLUP-STARK)
Si tratta di un linguaggio di programmazioni per blockchain utilizzato su un layer 2 ZK di tipo STARK. E' un linguaggio Turing completo, creato per scrivere codice dimostrabile, utilizzato per favorire decentralizzazione e progettare dapp sicure senza pagare cifre esorbitanti di gas ETH. Uno degli altri principali vantaggi di StarkNet rispetto a Ethereum è quello che è noto come Account Abstraction. Sulla rete Ethereum, la logica per la firma delle transazioni deve essere incorporata in un account. Tuttavia, su StarkNet, ogni account ha uno smart contract. Potrebbero esserci impostazioni controllate in modo modulare per cose come firme multiple, meccanica di ripristino e logica personalizzata per il gas (Immrsd.eth). Un altro vantaggio di Cairo è il modo in cui consente agli sviluppatori di sfruttare un linguaggio di programmazione non deterministico, secondo Astraly Analytics. Un algoritmo è deterministico quando può sempre produrre lo stesso output quando viene implementato un particolare input. Al contrario, un esempio di algoritmo non deterministico produrrebbe output diversi pur avendo lo stesso input.


RUST (SOLANA, POLKADOT, EGLD, NEAR)
Rust è usato principalmente per la scrittura di smart contract su Solana, Polkadot, Egld e Near. E' un linguaggio di programmazione vicino a quelli di basso livello quindi non proprio semplice, anche se non è molto dissimile da C++. Rust offre molte funzionalità come sicurezza della memoria, runtime ridotto, molte librerie, etc. Questo consente di scrivere un contratto intelligente compilato in wasm che non ha bug di memoria e consuma meno spazio di archiviazione sulla blockchain. Esso permette ai dev in grado di creare dapp personalizzabili e scalabili.

 
MOVE (APTOS, SUI NETWORK)
Creato per supportare la creazione di risorse digitali, Move è un linguaggio di programmazione bytecode open source, utilizzato per preservare la semplicità e allo stesso tempo supportare le complesse esigenze dell'infrastruttura degli smart contract. Basato su Rust, Move mira a sviluppare logiche di transazioni personalizzabili e contratti intelligenti per le blockchain Aptos e Sui Network. Move supporta booleani, riferimenti, interi a 64 bit senza segno, array di byte a dimensione fissa e indirizzi a 256 bit. Inoltre codifica la proprietà delle risorse digitali e crea procedure per il trasferimento di tali risorse. Esso affronta anche i problemi della rappresentazione indiretta introducendo risorse, un tipo personalizzabile ispirato alla logica lineare. Inoltre, ogni singola transazione ha uno script che è responsabile della codifica della logica che un validatore dovrebbe eseguire. Il linguaggio Move ha fondamentalmente tre componenti: Tipi, Strutture e Procedure. I tipi sono dati primitivi utilizzati in esso come Boolean, Integer, array di byte a dimensione fissa e tipo di dati di indirizzo. Gli struct sono fondamentalmente limitati e illimitati (strutture di risorse e strutture generali). Le procedure sono metodi semplici nel linguaggio di programmazione Move.


COSMWASM (COSMOS)
CosmWasm, abilita le macchine virtuali (VM) WebAssembly (WASM) in Cosmos SDK.
L'aggiunta di WebAssembly a Cosmos SDK consente al software di funzionare in modo sicuro su una blockchain. Wasm è un linguaggio intermedio che compila il codice dello sviluppatore in una macchina virtuale portatile. Questo prodotto consente agli sviluppatori di scrivere moduli in Rust che si integrano perfettamente con Cosmos SDK, in modo che possano sfruttare i moduli SDK e l'algoritmo di consenso BPoS Tendermint sviluppando una logica applicativa personalizzata in gran parte basata su Rust. In secondo luogo, la possibilità di caricare il codice nelle transazioni, anziché riavviare la catena, consente un'implementazione molto più rapida delle nuove funzionalità.


HASKELL (CARDANO)
Si tratta di un linguaggio di programmazione funzionale. Haskell ha le sue radici sia nel mondo accademico che nello studio della logica, e anche in precedenti iterazioni di linguaggi di programmazione funzionale, come Miranda. I linguaggi di programmazione funzionale pongono l'accento sull'utilizzo di funzioni "pure", ove possibile: funzioni che danno sempre lo stesso risultato per lo stesso input. Esso è adatto per codici e programmi che richiedono un alto grado di verifica formale. Attraverso Haskell, i contratti intelligenti Plutus e Marlowe di Cardano possono essere implementati con un codice preciso e formalmente verificato che offre un alto livello di garanzia sin dall'inizio. Plutus e Marlowe sono offerti come un insieme di librerie per Haskell, sfruttando la documentazione Haskell esistente, i toolkit e una comunità altamente professionale per fornire una base da cui partire per costruire contratti intelligenti sicuri e di livello aziendale.
Sia il codice off-chain che on-chain per Cardano è scritto in Haskell.


CLARITY (BLOCKSTACK)
Clarity è un linguaggio di programmazione smart contract introdotto da Blockstack per la propria blockchain Stacks. Blockstack mira a costruire la propria Internet, fornendo servizi di smart contract. Si tratta di un linguaggio di programmazione, progettato come "non completo" e "non destinato alla compilazione" (è un linguaggio interpretato). Clarity supporta i tipi Boolean, Optional, tuple, list, response e principal. Con l'aiuto della sua incompletezza di rotazione, Clarity è in grado di calcolare con largo anticipo le transazioni. In Clarity, il codice sorgente del contratto stesso viene pubblicato ed eseguito dai nodi blockchain, rimuovendo qualsiasi rappresentazione intermedia precompilata. Tramite funzioni di controllo riesce a ridurre anche eventuali bug. La prevedibilità consente ai dev di sapere come verrà eseguito il programma.


SCILLA (ZILLIQA)
Scilla (Smart Contract Intermediate-Level Lannguage) è un linguaggio per contratti intelligenti di livello intermedio sviluppato per la blockchain di Zilliqa. Esso è progettato come un linguaggio con il principale scopo della sicurezza degli smart contract.
Scilla impone una struttura agli smart contract che renderà le applicazioni meno vulnerabili agli attacchi eliminando alcune vulnerabilità note direttamente a livello linguistico. Inoltre, la struttura di principio di Scilla renderà le applicazioni intrinsecamente più sicure e suscettibili di verifica formale.
Il linguaggio viene sviluppato di pari passo con la formalizzazione della sua semantica ed è incorporato nell'assistente di prova Coq (uno strumento all'avanguardia per le prove meccanizzate sulle proprietà dei programmi). Coq si basa su una teoria avanzata della tipizzazione dipendente e presenta un ampio set di librerie matematiche. È stato applicato con successo in precedenza per implementare compilatori certificati (cioè completamente verificati meccanicamente), applicazioni simultanee e distribuite, incluse blockchain tra gli altri. Zilliqa utilizza lo sharding che gli conferisce scalabilità.


MICHELSON (TEZOS)
Questo linguaggio usato da Tezos è basato su stack, con primitive e tipi di dati di alto livello e un rigoroso controllo di tipo statico. Il suo design cherry raccoglie tratti da diverse famiglie linguistiche (Forth, Scheme, ML e Cat). Michelson è una serie di istruzioni eseguite in sequenza: ogni istruzione riceve in input lo stack risultante dall'istruzione precedente e lo riscrive per la successiva. Lo stack contiene sia valori immediati che strutture allocate nell'heap. Tutti i valori sono immutabili e Garbage Collection. I tipi dello stack di input e output sono fissi e monomorfici e il programma viene verificato prima di essere introdotto nel sistema. Nessuna esecuzione di smart contract può fallire perché un'istruzione è stata eseguita su uno stack di lunghezza o contenuto imprevisto.

venerdì 16 aprile 2021

Cosa Sono I Files .Jar? Come Eseguirli?

I files .jar riguardano il linguaggio di programmazione Java (lanciato da Oracle negli anni 90) orientato agli oggetti e in particolare si tratta di un file di applicazione che può essere avviato o di un archivio (libreria con più file). L’estensione .jar è un’abbreviazione di "Java Archive" infatti. Quest' archivio contiene solitamente più file Java e metadati, che vengono compressi e inviati insieme (al suo interno posso trovare non solo file .jar, ma anche immagini, file audio e altri formati di file). La funzione è quindi comparabile ad un archivio zippato. Tali librerie vengono utilizzate per semplificare la programmazione di applicazioni e applet Java. L’archivio di meta informazioni (file di testo XML e file JSON inerenti Java entrambi apribili con il blocco note), grafici ed audio può essere integrato come elemento in altri progetti. Archivio può contenere anche un file eseguibile. 


SOFTWARE DI DECOMRPESSIONE DELL'ARCHIVIO
Per avere accesso all'archivio Java si deve effettuare l’estrazione dei file della libreria. Per farlo, basta utilizzare WinRAR, WinZip, 7-Zip, WinAce, IZArc2Go o HaoZip (che supporta 50 formati file). 
Se avete installato uno di questi programmi potete estrarre il file .jar. A tal fine potete aprire il programma di compressione installato, scegliete di seguito il file .jar tramite il percorso del file o trascinatelo direttamente nel programma. Poi fate "estrai".
Oppure con il tasto destro sul file .jar, di seguito selezionate l’opzione "apri con" scegliendo WinRAR o WinZip o un altro menzionato prima.
Fatto ciò, sarà possibile aprire la cartella con un doppio clic. All’interno saranno elencati tutti i file contenuti. Tramite l’estensione riconoscerete il tipo di file e saprete se potete aprire i file stessi: se si tratta dei formati comuni basterà un doppio clic per aprirli. Per selezionare un altro programma per l’estrazione, aprire il menu a comparsa con un clic del tasto destro sul file, di seguito cliccate con il tasto sinistro sull’opzione "apri con" e selezionate il programma desiderato.


ESEGUIBILE
Nel caso in cui nell’archivio Java si trovino dei file .jar eseguibili, o se il file stesso è eseguibile, è necessario un programma apposito per farlo partire. Il comune Java Runtime Environment (JRE) è disponibile per essere scaricato gratuitamente per i sistemi operativi Windows e macOS dal sito Internet di Java: Jave (Download)
Per eseguire files jar è possibile utilizzare l'utility: Jarx (Download). Se si desidera eseguire direttamente il file all'interno di Java Runtime Environment, schiacciare sempre su "proprietà", "apri con" e selezionare java.exe .

sabato 28 febbraio 2015

Come Gestire La Lista Eccezioni Dei Siti Su Java (Guida)

A volte può capitare di dover visitare un sito con Java che ci blocca in quanto considera il sito "non sicuro".
Questo accade perchè magari perchè il sito non ha un certificato o semplicemente perchè la protezione impostata è troppo "alta".
Bene, se avete la certezza che il sito è sicuro, come si fa ad impostarlo tra le eccezioni?
Vi basta continuare a leggere.


IMPOSTARE SITI TRA LE ECCEZIONI JAVA
Andate sulla console Java(se non sapete dove è, basta che da "cerca" scrivete Java), poi andate su "sicurezza".
Cliccate su modifica lista siti e cliccate su aggiungi.
A questo punto non vi resta che scrivere il nome del sito, ovviamente preceduto da http o https e poi cliccare su ok.