Utente:Jk4u59/Sandbox

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Solidity
linguaggio di programmazione
il logo del linguaggio Solidity
AutoreGavin Wood
Data di origineAgosto 2014
Utilizzocriptovalute
ParadigmiProgrammazione contract-oriented
Tipizzazionestatica
Influenzato daPython, C++, PowerShell
Implementazione di riferimento
Sistema operativoEthereum
Sito webgithub.com/ethereum/solidity

Solidity è un linguaggio di programmazione di tipo contract-oriented per la scrittura di contratti intelligenti. [1] Viene utilizzato per l'implementazione di contratti intelligenti [2] su varie piattaforme blockchain [3] [4] [5]. È stato sviluppato da Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Liana Husikyan, Yoichi Hirai e diversi ex contributori di Ethereum per consentire di scrivere contratti intelligenti su piattaforme blockchain come appunto Ethereum. [6] [7]

Storia[modifica | modifica wikitesto]

Solidity è stato proposto per la prima volta nell'agosto 2014 da Gavin Wood; [8] [9] il  linguaggio è stato successivamente sviluppato dal team Solidity del progetto Ethereum, guidato da Christian Reitwiessner. È uno dei quattro linguaggi (gli altri sono Serpent, LLL, Viper (sperimentale) e Mutan (deprecato)) progettati espressamente per l' Ethereum Virtual Machine (EVM). [7]

Al momento, Solidity è il linguaggio principale su Ethereum così come su altri blockchain privati che funzionano su piattaforme in competizione con Ethereum, come Monax ed Hyperledger, la sua blockchain di tipo Burrow, che utilizza Tendermint per consenso. L'organizzazione interbancaria SWIFT ha implementato una Proof-of-concept (dimostrazione prototipale) usando Solidity in esecuzione su Burrow. [2] [10]

Un ricercatore della Cornell University ha affermato che Solidity è stato parzialmente incolpato del tentativo di hackeraggio The DAO che ha avuto luogo nel 2016, affermando: "questo non era in realtà un difetto o un exploit nel contratto DAO stesso: tecnicamente l'EVM funzionava come previsto, ma Solidity stava introducendo falle nella sicurezza in contratti che non solo sono stati ignorati dalla comunità, ma persino dai designer stessi." [11] [12]

Descrizione[modifica | modifica wikitesto]

Solidity è un linguaggio di programmazione tipizzato staticamente progettato per lo sviluppo di contratti intelligenti (smart contract) eseguiti su EVM. [13] [14] Solidity è compilato in bytecode che è eseguibile su EVM. Con Solidity, gli sviluppatori sono in grado di scrivere applicazioni che implementano una logica di business autoconsistente incorporata in contratti intelligenti, lasciando una autorevole registrazione delle transazioni che non è non ripudiabile. [15] [16] Scrivere contratti intelligenti in linguaggi specifici di questo ambiente, come Solidity, è giudicato “semplice” (ovviamente per coloro che hanno già competenze di programmazione). [17]

Come specificato da Wood, è progettato attorno alla sintassi ECMAScript per renderlo familiare agli sviluppatori web esistenti; a differenza di ECMAScript ha tipizzazione statica e tipi di ritorno variabili. Rispetto ad altri contemporeanei linguaggi di targeting EVM, come Serpent e Mutan, Solidity conteneva una serie di importanti differenze. Sono state supportate variabili con membri complessi per contratti che includono mappature arbitrariamente gerarchiche e strutture. I contratti supportano l'ereditarietà, inclusa l'ereditarietà multipla con la linearizzazione C3 . È stata introdotta anche un'interfaccia binaria applicativa (ABI) che facilita più funzioni di sicurezza del tipo all'interno di un singolo contratto (e successivamente supportata da Serpent). Nella proposta è stato incluso anche un sistema di documentazione per specificare una descrizione incentrata sull'utente delle ramificazioni di una chiamata di metodo, nota come "Natural Language Specification". [18] [19]

Esempio di un programma Solidity: [20] [21]

contract GavCoin
{
  mapping(address=>uint) balances;
  uint constant totalCoins = 100000000000;

  /// (EN) Endows creator of contract with 1m GAV.
  /// (ITA) Fornisce il creatore del contratto con 1m GAV
  function GavCoin(){
      balances[msg.sender] = totalCoins;
  }

  /// (EN) Send $((valueInmGAV / 1000).fixed(0,3)) GAV from the account of $(message.caller.address()), to an account accessible only by $(to.address())
  /// (ITA) Invia $ ((valueInmGAV / 1000) .fixed (0,3)) GAV dall'account di $ (message.caller.address ()), ad un account accessibile solo da $ (to.address ()).

  function send(address to, uint256 valueInmGAV) {
    if (balances[msg.sender] >= valueInmGAV) {
      balances[to] += valueInmGAV;
      balances[msg.sender] -= valueInmGAV;
    }
  }

  /// (EN) getter function for the balance
  /// (ITA) Funzione getter per il saldo
  function balance(address who) constant returns (uint256 balanceInmGAV) {
    balanceInmGAV = balances[who];
  }
}

Disponibilità della piattaforma di sviluppo[modifica | modifica wikitesto]

  • Remix , il Solidity ufficiale IDE
  • Superblocks Lab , Solidity IDE per Ethereum
  • Microsoft Visual Studio [22] [23]
  • ConsenSys Enterprise [14]
  • Tendermint su Microsoft Azure di PWC [3]
  • ErisDB di AWS [3]
  • Hedera , la piattaforma hashgraph di Hedera supporta contratti intelligenti scritti in Solidity ™.

Piattaforme Blockchain[modifica | modifica wikitesto]

Solidity è disponibile su:

  • Ethereum
  • Ethereum Classic
  • Tendermint [3] e ErisDB (una versione di Tendermint) [3]
  • Counterparty (che funziona su Bitcoin ) [5]

Note[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Sito ufficiale Solidity e documentazione

Categoria:Criptovalute

ROLLEI Storia rollei[modifica | modifica wikitesto]

Il nome "Rolleiflex" è comunemente usato per riferirsi alla linea di fotocamere reflex biottiche TLR (Twin Lens Reflex) della Rollei. Per alcuni decenni fu in commercio anche una linea derivata destinata ai fotografi dilettanti, la Rolleicord. Tuttavia, sono stati prodotti con il marchio Rolleiflex anche una varietà di TLR e SLR (Single Lens Reflex) in medio formato e messa a fuoco zonale, SLR da 35 mm, nonché apparecchi digitali.

La serie Rolleiflex con rullino in formato "120" è stata commercializzata principalmente per fotografi professionisti. Nel corso della loro storia, comunque, le fotocamere Rolleiflex hanno utilizzato formati di pellicola "117" (Rolleiflex Original), "120" (Standard, Automat, Letter Models, Rollei-Magic e T model), e "127" (Baby Rolleiflex).

Ancora oggi le fotocamere biottiche Rolleiflex si distinguono per la loro eccezionale qualità costruttiva, le dimensioni compatte, il peso modesto (rispetto alle ingombranti fotocamere dello stesso periodo), la qualità ottica superiore, la luminosità del mirino, la durata, la semplicità ed una meccanica affidabile. Alcuni fotografi professionisti, dilettanti e artistici continuano tuttora ad usare le fotocamere Rolleiflex biottiche con pellicole invertibili a colori e negativi a colori o in bianco e nero.

Le Rolleiflex erano popolari e ampiamente imitate, anche se gli obiettivi di lunghezza focale di 7,5 cm di altissima qualità, prodotti da Zeiss e Schneider, permettevano di costruire una fotocamera più piccola, leggera e compatta rispetto ai loro concorrenti.

Gli apprezzati obiettivi Zeiss Planar f2.8 e Schneider Xenotar, entrambi con lunghezza focale di 80 mm e luminosi confronto alla concorrenza, sono entrambi ottiche allo stato dell'arte. Il meccanismo meccanico della manovella di caricamento della pellicola,unico per le Rolleiflex Automat e le fotocamere modello Letter, era robusto e intelligente, rendendo semiautomatico e veloce il caricamento della pellicola: questo meccanismo avviava automaticamente il contatore delle esposizioni, auto-spaziava le 12 o (nelle successive fotocamere modello F) 24 esposizioni e caricava l'otturatore; il tutto con meno di un giro completo del rullo di avanzamento della pellicola. Questo rendeva le fotocamere modello Rolleiflex Automat/Letter molto ricercate per le riprese di azioni veloci, come la fotografia di strada.

Una vasta gamma di accessori ha trasformato questa fotocamera in un sistema fotografico completo: testa panoramica, paraluce, lenti per ripresa ravvicinata (close-up) con correzione di parallasse, filtri per la correzione del colore, il miglioramento del contrasto ed effetti speciali, montati sull'obiettivo con una baionetta a sgancio rapido, nonché un attacco del treppiede anch'esso a sgancio rapido.

I successivi modelli Letter f2.8 e f3.5 (con obiettivi Planar o Xenotar) sono molto richiesti nel mercato dell'usato ed hanno il prezzo più alto.[2]

Storicamente erano disponibili fotocamere con cinque lunghezze focali, che comprendevano la Rollei-Wide grandangolare da 5,5 cm, la Baby Rollei da 6,0 cm, 7,5 cm (f:3,5), 8,0 cm (f:2,8) e la Tele-Rolleiflex con un teleobiettivo 13,5 cm (uno Zeiss Sonnar f:4). Sebbene tutte queste fotocamere possano essere tuttora ottime fotocamere per un effettivo utilizzo da parte dei fotografi, per molti modelli Rolleiflex esiste anche un fiorente mercato come oggetti da collezione, e ciò fa salire (e di molto per alcuni modelli) il prezzo finale pagato, in particolare in Giappone.

Le fotocamere Rolleiflex di medio formato hanno continuato a essere prodotte fino al 2014 da DHW Fototechnik, una società fondata da ex dipendenti di Franke & Heidecke. [3] DHW Fototechnik ha annunciato due nuove fotocamere Rolleiflex e un nuovo otturatore elettronico per la fiera di settore Photokina 2012. [4] La società ha presentato istanza di insolvenza nel 2014 ed è stata sciolta nell'aprile 2015, ponendo fine a qualsiasi ulteriore produzione: l'attrezzatura per la produzione in fabbrica e le rimanenti scorte di parti sono state messe all'asta a fine aprile 2015.

Una piccola azienda è stata creata di nuovo con gli ex dipendenti di DHW Fototechnik nella stessa locazione, sotto il nome di DW Photo. [5] DW Photo si concentra sulla produzione di reflex medio formato Rolleiflex Hy6 mod2 (digitali ed a pellicola) e l’assistenza per le fotocamere esistenti, compresa la fornitura di aggiornamenti firmware e hardware. [6]

  

Note[modifica | modifica wikitesto]


Bibliografia[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

[[Categoria:NATO]] [[Categoria:Aviazione militare]] [[Categoria:Guerra elettronica]] [[Categoria:Radionavigazione]] [[Categoria:Tecnologie dell'aviazione]] [[Categoria:Sistemi di rete]]