Parity Technologies , la società dietro la blockchain di Polkadot , ha annunciato un aggiornamento chiave per il suo inchiostro a base di Rust! Linguaggio di programmazione per la scrittura di smart contract.
Il nuovo aggiornamento, inchiostro! 3.0 , è progettato per fare inchiostro! assomiglia molto di più al linguaggio di programmazione Rust su cui si basa. Ora viene fornito con tutte le stesse funzionalità con cui i programmatori di Rust hanno familiarità, che secondo Parity sarà di grande aiuto quando si tratta di scrivere, aggiornare e ragionare con contratti intelligenti complessi.
inchiostro! è il linguaggio di programmazione più comunemente utilizzato dagli sviluppatori negli ecosistemi Polkadot e Substrate in quanto è uno dei migliori per la scrittura di contratti intelligenti Web Assembly (Wasm) efficienti e ad alte prestazioni, che sono un'alternativa ai contratti intelligenti basati su Solidity di Ethereum. Con l'inchiostro!, gli sviluppatori possono scrivere contratti intelligenti per blockchain utilizzando il pallet Contracts del framework Substrate, un elemento chiave per le blockchain compatibili con Polkadot.
inchiostro! si basa su Rust perché quest'ultimo è un linguaggio di programmazione estremamente efficiente che dà priorità alla correttezza, previene i bug del software e ha una vasta comunità che include il supporto di aziende come Amazon Web Services, Google e Microsoft. Quindi significa inchiostro! beneficia della stessa identica garanzia di correttezza di Rust, nonché di eventuali miglioramenti che la community di Rust aggiunge attraverso i suoi costanti aggiornamenti di quella lingua.
In un post sul blog , Parity ha detto l'inchiostro! L'aggiornamento 3.0 è stato uno sforzo dispendioso in termini di tempo che ha comportato la riscrittura di tutti i suoi componenti principali, inclusa la modifica della sua sintassi per migliorare il codice della mappa dall'inchiostro! al codice Rust generato. Ne è valsa la pena però. Con la sintassi di ink! ora più o meno identica a Rust, gli sviluppatori ottengono l'accesso allo stesso identico strumento, come l'analizzatore di ruggine e Clippy, che sono disponibili nel linguaggio con cui hanno più familiarità.
Nuove funzionalità in inchiostro! 3.0
Non è l'unica cosa che è cambiata nell'inchiostro!. La nuova versione offre l'attesissimo supporto per i tratti che consente agli sviluppatori di definire le proprie definizioni dei tratti, quindi implementarle con l'inchiostro! contratti intelligenti. Con questo, gli sviluppatori possono definire interfacce di contratti intelligenti condivisi per diverse implementazioni, ha affermato Parity, il che è particolarmente utile per gli standard di contratti intelligenti definiti dalla comunità.
Altri miglioramenti nell'inchiostro! 3.0 include contratti di dimensioni inferiori, che portano a prestazioni più elevate e tariffe del gas inferiori, e l'aggiunta di Delega Calls, che offre ai contratti intelligenti un modo per inoltrare le chiamate ricevute a un altro contratto. Ciò consentirà agli sviluppatori di implementare modelli di aggiornamento proxy per più contratti intelligenti, tra le altre cose, ha affermato Parity.
La nuova funzione Chain Extensions consente agli sviluppatori di chiamare i pallet Substrate direttamente da uno smart contract e accedere al suo ricco ecosistema di strumenti per sviluppatori.
Aspetta, c'è di più!
Così come l'inchiostro! 3.0, Parity ha affermato di aver apportato alcuni miglioramenti al pallet dei contratti che mirano a migliorare le prestazioni del parachain, insieme a nuove funzionalità che promettono migliori chiamate e prestazioni tra contratti incrociati. Con "cargo-contract" 1.0., Parity ha affermato che gli sviluppatori troveranno molto più semplice scrivere una logica più complessa nei loro contratti intelligenti.
`cargo-contract` è uno strumento di sviluppo che può essere utilizzato per creare, testare e distribuire contratti basati su ink!. La nuova versione aggiunge tre comandi dell'interfaccia della riga di comando che semplificano l'interazione con gli smart contract sulle catene: carica, istanzia e chiama! Questo, ha affermato Parity, rende la vita molto più semplice in quanto significa che gli sviluppatori non devono più fare clic sull'interfaccia utente di un browser per interagire con tali contratti, invece di farlo direttamente dalla riga di comando. In futuro, ciò consentirà anche lo scripting e le integrazioni negli ambienti di sviluppo dell'integrazione continua, ha affermato Parity.
Una seconda nuova funzionalità del "contratto di carico" è la sua capacità di controllare automaticamente il codice sorgente per errori di programmazione e stilistica e fornire avvisi quando vengono rilevati errori comuni. Parity ha affermato che il suo scopo con questo è quello di costruire lentamente una raccolta di regole di rilascio per l'inchiostro! contratti intelligenti, guidando gli sviluppatori a ridurre i costi del gas, creare impronte di contratti intelligenti più piccole e correggere i modelli di utilizzo delle API identificando le vulnerabilità della sicurezza.
Anche il pallet dei contratti di Substrate, che è l'ambiente di esecuzione per i contratti intelligenti basati su Wasm, riceve un aggiornamento. Ad esempio, il meccanismo dell'affitto statale utilizzato per gestire il rigonfiamento dello stato è stato sostituito da una funzione di riscossione automatica dei depositi. Prima di questo, i contratti intelligenti dovevano avere sempre un saldo sufficiente per pagare il loro spazio di archiviazione, altrimenti sarebbero stati disabilitati fino a quando qualcuno non fosse arrivato per rianimarlo. Quindi l'eliminazione di questo riduce un sacco di oneri per gli sviluppatori, ha affermato Parity.
Con la riscossione automatica della caparra, i costi di stoccaggio sono pagati dal chiamante di ogni smart contract anziché dal contratto stesso. Il chiamante paga un deposito, quindi viene creata una nuova memoria come risultato di quella chiamata. Parity ha spiegato che questo meccanismo eliminerà ogni possibilità che gli smart contract vengano resi inattivi. Anche così, Parity ha affermato che gli autori del contratto dovrebbero comunque lavorare per utilizzare il minor spazio di archiviazione possibile creando modi per rimuovere lo spazio di archiviazione quando non è più necessario, in modo da contenere i costi di archiviazione.