Solidez (Solidity)

Por que confiar em nós

A saber, se você quer se tornar um bom desenvolvedor Blockchain, é preciso aprender sobre solidez. Assim, saiba como funciona e o que é solidez no artigo abaixo. 

O que é Solidez (Solidity)?

Solidity é uma linguagem de programação de alto nível orientada a objetos, projetada especificamente para criar e implementar contratos inteligentes em várias plataformas de blockchain.

Essas plataformas incluem predominantemente Ethereum, mas Solidity tem sido usada em outras, como Polkadot.

Como funciona o Solidity?

A sintaxe do Solidity se inspira em linguagens influentes como C++ , Python e JavaScript , o que lhe confere um ar de familiaridade para desenvolvedores versados ​​nessas linguagens.

Contratos inteligentes, a aplicação central do Solidity, são contratos autoexecutáveis ​​com os termos do acordo escritos diretamente no código.

Elas permitem que transações e acordos confiáveis ​​sejam realizados sem a necessidade de uma autoridade central, sistema legal ou mecanismos externos de execução.

A Solidity dá vida a esses contratos, fornecendo um conjunto robusto de recursos, como variáveis ​​de membros complexas, esquemas de herança e funções de tipo seguro, para criar aplicações de blockchain complexas e seguras.

Executando na Máquina Virtual Ethereum (EVM) ou em máquinas virtuais compatíveis com EVM, os programas Solidity aproveitam o poder da tecnologia blockchain, desempenhando um papel crucial no desenvolvimento e na operação de aplicativos descentralizados (dApps).

Como a Solidez foi criada?

Em agosto de 2014, Gavin Wood, cofundador da Ethereum, propôs o Solidity, uma linguagem de programação orientada a objetos projetada para permitir o desenvolvimento e a implementação de contratos inteligentes em várias plataformas de blockchain.

Sob a orientação do desenvolvedor líder Christian Reitwiessner, uma equipe de ex-colaboradores principais do Ethereum, incluindo Alex Beregszaszi, criou o Solidity.

A linguagem é mais proeminentemente associada à blockchain Ethereum, mas também opera perfeitamente com outras máquinas virtuais compatíveis com EVM (Ethereum Virtual Machine).

O início da Solidity se alinhou ao aumento da popularidade do blockchain empresarial da Ethereum, o Hyperledger Fabric, e também dos blockchains privados.

Encontrou amplas aplicações. Por exemplo, a SWIFT aproveitou suas capacidades em uma prova de conceito rodando no Hyperledger Fabric.

Prós e contras da solidez

Pros:

  • Capacidades robustas: A adoção do Solidity para criar aplicativos de blockchain se deve em grande parte às suas capacidades robustas.
  • Desenvolvimento de contratos inteligentes: a Solidity permite o desenvolvimento de contratos inteligentes que são seguros, confiáveis ​​e têm o potencial de aumentar a eficiência operacional, reduzir custos e minimizar a dependência de terceiros.
  • Sintaxe familiar: A sintaxe do Solidity, inspirada em C++, Python e JavaScript, faz dele um terreno familiar para desenvolvedores familiarizados com essas linguagens. Variáveis, funções, operações aritméticas e outros conceitos de programação familiares são muito utilizados no Solidity.
  • Documentação e casos de uso abundantes: Uma grande quantidade de documentação de código aberto e casos de uso para cadeias Ethereum e EVM tornam a tarefa de construir aplicativos complexos uma tarefa menos assustadora.
  • Funcionalidades inovadoras: Mesmo em cenários que exigem funcionalidades inovadoras, como agricultura de liquidez e empréstimos , pode-se simplesmente bifurcar o código-fonte de exchanges descentralizadas populares como a Uniswap.

Contras:

  • Imutabilidade de contratos inteligentes: A imutabilidade de contratos inteligentes no Solidity, embora benéfica em muitos casos, pode representar desafios. Uma vez que um contrato é implantado, ele não pode ser alterado ou melhorado, o que pode ser problemático em ambientes dinâmicos.
  • Limitações na coleta e atualização de informações: Solidity, assim como outros sistemas baseados em blockchain, não consegue coletar e atualizar informações de forma autônoma em seu sistema. Isso se torna um problema crítico ao lidar com dados voláteis, como pares de moedas (forex).
  • A relativa escassez de bibliotecas e recursos: Comparado a linguagens maduras como C ou Java, Solidity ainda está em sua infância. Apesar de sua crescente popularidade, a relativa escassez de bibliotecas e recursos pode tornar o aprendizado de Solidity uma tarefa desafiadora para iniciantes.

Exemplo de Solidez

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.4;

contract Coin {
// The keyword “public” makes variables
// accessible from other contracts
address public minter;
mapping(address => uint) public balances;

// Events allow clients to react to specific
// contract changes you declare
event Sent(address from, address to, uint amount);

// Constructor code is only run when the contract
// is created
constructor() {
minter = msg.sender;
}

// Sends an amount of newly created coins to an address
// Can only be called by the contract creator
function mint(address receiver, uint amount) public {
require(msg.sender == minter);
balances[receiver] += amount;
}

// Errors allow you to provide information about
// why an operation failed. They are returned
// to the caller of the function.
error InsufficientBalance(uint requested, uint available);

// Sends an amount of existing coins
// from any caller to an address
function send(address receiver, uint amount) public {
if (amount > balances[msg.sender])
revert InsufficientBalance({
requested: amount,
available: balances[msg.sender] });

balances[msg.sender] -= amount;
balances[receiver] += amount;
emit Sent(msg.sender, receiver, amount);
}
}

Resultado Final

Apesar da infinidade de desafios como uma linguagem de programação nova e emergente, a Solidity conquistou um lugar significativo no cenário de programação devido ao seu papel fundamental no suporte aos contratos inteligentes do Ethereum.

Como qualquer ferramenta, sua eficácia depende de como ela é utilizada, exigindo que os desenvolvedores estejam cientes de seus pontos fortes e limitações para realmente liberar seu potencial.

À medida que o papel dos contratos inteligentes cresce no futuro dos ecossistemas financeiros, é esperado que o papel da Solidity também cresça.

Sam Cooling
Crypto and Blockchain Writer
Sam Cooling
Escritor de Cripto e Blockchain

Sam Cooling é um jornalista criptográfico, financeiro e de negócios que mora em Londres. Junto com a Techopedia, seu trabalho foi publicado em Yahoo Finance, Coin Rivet, e outras publicações importantes no espaço financeiro. Seu interesse em criptomoedas é motivado por uma paixão em aproveitar tecnologias blockchain descentralizadas para capacitar comunidades marginalizadas em todo o mundo. Isto inclui o reforço da transparência financeira, a prestação de serviços bancários às pessoas que não têm conta bancária e a melhoria das cadeias de abastecimento agrícola. Sam tem mestrado em Gestão do Desenvolvimento pela London School of Economics e trabalhou como pesquisador júnior…