Solidity, é a linguagem de programação que começou a tornar possível o Ethereum DApps, permitindo aos desenvolvedores uma maneira fácil de fazer aplicações distribuídas complexas que aproveitam ao máximo o Ethereum EVM.

Eo nome de Solidez refere-se a um linguagem de alto nível digitada estaticamente com a qual podem ser programados smart contracts para a rede Ethereum. Sua sintaxe é muito semelhante à de lengaujes, conhecida como C + + o Javascript. O Solidity foi criado com o objetivo de permitir a redação de contratos inteligentes com facilidade para a rede Ethereum. É uma linguagem projetada para tirar o máximo proveito do Máquina Virtual Ethereum, permitindo a criação e desenvolvimento de contratos inteligentes que podem ser executados de forma otimizada no EVM.

Para isso, o programador pode desenvolver seus aplicativos em uma linguagem de fácil utilização, leitura e manutenção para que, ao finalizar, a engine Solidity converta aquele código simples em código de máquina que o EVM vai entender, código de máquina que é praticamente impossível de entender por um pessoa.

Em essência, Solidity facilita o desenvolvimento de contratos inteligentes no Ethereum e, embora não seja a única linguagem, foi a primeira, a mais versátil e na qual mais contratos inteligentes foram desenvolvidos.

Logotipo da Solidity

Solididade, uma linguagem completa de Turing

A principal característica do Solidity é que esta linguagem de programação é do tipo Turing Completo. Graças ao Solidity e seu relacionamento com EVM, os desenvolvedores podem fazer programas que são Turing Complete. Isso ocorre porque EVM tem a capacidade de executar qualquer código que seja definido por um desenvolvedor dentro da estrutura de seus recursos.

Isso representa uma grande vantagem para a rede Ethereum. Graças ao EVM e ao Solidity, os desenvolvedores podem programar ações que serão executadas pelo EVM de forma descentralizada na rede Ethereum. Mas isso também implica que um mecanismo de proteção deve estar em vigor para evitar seu uso indevido. Este mecanismo é conhecido como Gas e serve para evitar que o sistema seja travado pela criação de loops infinitos ou outras ações maliciosas. Leste Gas funciona como o despesa computacional que envolve o processamento de uma transação ou um contrato inteligente na rede.

O conceito se assemelha, por exemplo, ao que foi idealizado por Adam Back com seu sistema de combate ao spam de e-mail, o HashCash.

Importância e desenvolvimento de Solidez

Ethereum nasceu como uma alternativa à rede Bitcoin . Seu Criador, Vitalik Buterin na época, ele propôs incorporar uma linguagem de tipo Turing Complete à rede Bitcoin. Pois considerava que a linguagem com a qual o Bitcoin foi desenvolvido era insuficiente para a evolução da rede. Mas não recebendo nenhuma resposta dos desenvolvedores, Buterin decidiu criar e desenvolver seu próprio projeto: Ethereum.

Hoje, Bitcoin e Ethereum são as redes mais valiosas, conhecidas e usadas pela comunidade de criptomoedas. Ocupando o primeiro e o segundo lugar respectivamente. No entanto, Bitcoin e Ethereum têm grandes diferenças. Por exemplo, o bitcoin, a moeda da rede Bitcoin, foi criado como meio de pagamento e salvaguarda de valor. Já o Ethereum foi desenvolvido com o objetivo de ser muito mais flexível e programável, permitindo que evolua com novos recursos ao longo do tempo.

Isso graças ao EVM e ao Solidity, as duas ferramentas que permitem aos desenvolvedores obter o máximo do Ethereum. Com Solidity, a tarefa de desenvolver aplicações distribuído (DApps) ou outras funções que fazem uso de contratos inteligentes.

O desenvolvimento do Ethereum começou como uma ideia na mente de Gavin Wood em 2014. A ideia foi concretizada por Christian Reitwiessner junto com uma equipe de trabalho. O resultado desse trabalho gerou a Solidity. Desde então, o desenvolvimento do Solidity continuou sua evolução e atualmente está no versão 0.7.4 de linguagem (novembro de 2020).

Características

  1. Solidity é um tipo de linguagem orientada a objetos (OO) como C ++ e C #.
  2. Ele foi projetado especificamente para desenvolver aplicativos para a rede Ethereum. Portanto, ele só roda no blockchain Ethereum ou derivados compatíveis.
  3. Uma vantagem dessa linguagem é que o código-fonte dos programas feitos com ela pode ser acessado publicamente a partir do blockchain. Mesmo estando em bytecode, é possível descompilar e obter uma amostra bastante clara do código-fonte original.
  4. Suportes de solidez herança e a herança múltipla, proporcionando grande flexibilidade ao programar elementos complexos.
  5. Essa linguagem também fornece uma série de bibliotecas muito úteis que facilitam a programação de contratos inteligentes, tornando o código reutilizável e fácil de manter.

Quanto você sabe, cryptonuta?

Solidity é a única linguagem de programação disponível para Ethereum e seu EVM?

FALSO!

Solidity não é a única linguagem de programação disponível para Ethereum e seu EVM. Existem outras opções como LLL (Low-Level Language) ou Vyper que também podem ser usadas para programar DApps no Ethereum.

Ambientes de desenvolvimento disponíveis

Como quase qualquer linguagem de programação, o Solidity pode explorar os benefícios de um ambiente de desenvolvimento integrado ou IDE. No Ethereum, o IDE oficial é conhecido como Remix. Isso torna mais fácil para os desenvolvedores criarem contratos inteligentes, enquanto permite o acesso ao status e às propriedades dos contratos inteligentes já criados. Ele também possui ferramentas poderosas de correção e análise de código para ajudar os desenvolvedores a depurar seus programas.

O Remix também pode ser executado e usado online através do Firefox ou Chrome ou diretamente em nosso computador. E embora este seja o IDE oficial da Ethereum, também existem outros ambientes que suportam a linguagem Solidity. Por exemplo, Estúdio Ethereum é um IDE especializado que fornece acesso a um ambiente Ethereum completo por meio de um interpretador de comandos conhecido como concha.

  • Código do Visual Studio mostrando o plug-in Solidity
  • Ethereum Remix IDE

Da mesma forma, estamos em Plugin Solidity para IntelliJ IDEA, outro IDE criado para desenvolvimento de software compatível com Solidity. átomo é uma ferramenta editável que pode ser usada para personalizar qualquer coisa. Podemos encontrar um pacote conhecido como Etheratom que usa a biblioteca web3.js para interagir com um do Ethereum.

Outro IDE que podemos encontrar é o Plug-in do Visual Studio, criado pela Microsoft. Isso permite a criação e desenvolvimento de contratos inteligentes através de um compilador Solidity. Também permite a criação de aplicativos para Microsoft e modernos aplicativos web e serviços em nuvem que usam seu serviço Azure.