Como escrever e implantar seu primeiro contrato inteligente?
Publicados: 2020-02-13Os contratos inteligentes são uma tendência líder na tecnologia Blockchain hoje. Se você está pensando em construir uma carreira na área, este artigo o ajudará com tudo o que você precisa saber para escrever seu primeiro contrato inteligente !
Aprenda cursos de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Índice
Como escrever seu primeiro contrato inteligente?
A era digital de hoje permitiu que duas partes celebrassem acordos sem o envolvimento de terceiros. Esses contratos digitais são processados pelo blockchain e armazenados em um banco de dados público. Assim, as transações são rastreáveis e irreversíveis.
Se você deseja escrever seu primeiro contrato inteligente , os recursos compilados abaixo o colocarão no caminho certo.
Leia: 10 tendências e previsões do Blockchain para 2020
Definindo contratos inteligentes
O termo 'Smart Contract' foi proposto pela primeira vez pelo cientista da computação americano Nick Szabo em 1996. É um computador ou protocolo digital que facilita, verifica e reforça a execução de um contrato. Como uma computação de uso geral, um contrato inteligente reside em um Blockchain ou livro-razão distribuído.

Em outras palavras, o contrato é embutido no código na forma de um programa de computador. E os atores designados recebem permissão para executar a função do programa. As regras predefinidas devem ser atendidas para a execução bem-sucedida do contrato inteligente.
Tome uma Ordem de Compra (PO), por exemplo. É um contrato simples entre um comprador e um vendedor. Certas condições devem ser cumpridas para a realização do PO. Essas especificações incluem pagamento bem-sucedido pelo comprador, entrega de mercadorias pelo fornecedor conforme os termos acordados no momento da compra, condições de devolução etc.
Assim, o comprador pode fazer um pedido e o fornecedor pode atender o pedido em formato digital. Em uma rede de computação, todas as ações são chamadas de transações. E todas as transações são verificadas e aplicadas pela rede. Uma vez confirmadas, as transações não podem ser revertidas.
Leia: Pré-requisitos para aprender Blockchain. Não é o que você pensa que é
Requisitos para configurar um contrato inteligente
Várias linguagens de programação estão disponíveis para construir contratos inteligentes. A escolha do idioma depende principalmente da plataforma blockchain. Por exemplo, Solidity, Vyper, eWASM e bytecode Ethereum são algumas das linguagens de contrato inteligente mais populares para a plataforma blockchain Ethereum.
Ambiente de desenvolvimento de contrato inteligente
Antes de escrever seu primeiro contrato inteligente , configure o playground para seu desenvolvimento. Aprofundar-se no mundo blockchain seria complicado sem o conhecimento dos ambientes de desenvolvimento. Você pode escolher entre as seguintes alternativas.
- Remix IDE: É um ambiente de desenvolvimento integrado para construção e teste de contratos inteligentes. Esta opção totalmente online é altamente recomendada para iniciantes, pois não requer instalação. Além disso, apresenta menos desafios para prototipagem e validação rápida de contratos inteligentes.
- Configuração local: as máquinas locais fornecem mais um recurso para o desenvolvimento de contratos inteligentes. As ferramentas oferecem maior flexibilidade para aplicativos de nível empresarial. E embora leve tempo para configurar esse ambiente, a seleção de ferramentas para Aplicativos Distribuídos ou DApps é um processo razoavelmente simples.
Estrutura de um contrato inteligente
Vamos explorar um contrato de pedido de compra desenvolvido usando a linguagem de programação Solidity.
Um contrato inteligente Solidity segue uma estrutura padrão, compreendendo 'dados' e 'função'. Enquanto os dados mantêm o estado atual do contrato inteligente, a função aplica a lógica para fazer a transição desse estado.
O contrato começa com a declaração chamada ' diretiva pragma '. A palavra-chave “pragma” habilita verificações ou recursos do compilador. Considere a afirmação abaixo:
solidez do pragma >=0.4.0 <=0.6.0
A declaração pretende garantir que o contrato inteligente não seja compilado com uma versão do compilador anterior a 0,40 e posterior a 0,60.
Em seguida vem a ' declaração do contrato '. A instrução a seguir usa a palavra-chave “contrato” e identifica um contrato vazio pelo nome “Pedido de compra”.
contrato CompraOrdem{}
Armazenando dados
Todo contrato ou programa de computador tem dados armazenados nele. As variáveis fornecem uma maneira de armazenar, rotular, recuperar e manipular os dados. Existem dois tipos de variáveis em Solidity – Valor e Referência. As variáveis do tipo valor são sempre copiadas quando usadas como argumentos de função, como booleanos, inteiros, etc.
Considerando que, variáveis de tipo de referência armazenam a localização dos dados. Qualquer mudança em uma variável de referência afeta outra variável. Portanto, eles devem ser gerenciados com cuidado. Exemplos incluem Arrays e Structs.
Adicionando dados
Em um pedido de compra normalmente teria uma quantidade de produto associada a ele. Então, agora, vamos adicionar uma variável de dados ao contrato inteligente. Adicionaremos uma variável product_quantity com a suposição de que ela terá apenas valores positivos.
Primeiro, introduzimos um inteiro sem sinal representado por uint256. Aqui, sem sinal (u) significa o tipo de variável que só pode representar números inteiros positivos e 256 significa o armazenamento de 256 bits.
ordem de compra do contrato{uint256 product_quantity;}
Construtor
O construtor inicializa o contrato inteligente com alguns valores quando o contrato é implantado. Suponha que a quantidade do produto seja definida em 100.

constructor() public{product_quantity = 100;}
Deve-se notar que a palavra-chave ou modificador de acesso “public” especifica que a função não é restrita. Portanto, pode ser acessado por qualquer pessoa.
Adicionando funções
Adicionar funções torna seu programa interativo. Esses são recursos controlados precedidos pela palavra-chave “função”. A declaração inclui o nome da função, modificador de acesso, modificador de estado e valor de retorno.
Para ler o valor armazenado, adicionamos a “função get”. Com “get_quantity”, esta função obtém a capacidade de recuperar ou ler os dados armazenados. Observe a afirmação dada abaixo.
function get_quantity() exibição pública return(uint256){return product_quantity;}
Decompondo ainda mais, vemos que:
- Nome da função: get_quantity (O “()” significa que nenhum parâmetro é passado)
- Modificador de acesso: público (o acesso não é restrito)
- State Mutator: view (indica que a função não altera o estado do contrato, mas apenas o lê)
- Retorna: define o que é retornado pela função, ou seja, uma variável do tipo uint256
Funções do setter
A função setter entra em cena quando você deseja gravar ou atualizar os dados. Esta função recebe um parâmetro de entrada do usuário, com base no qual atualiza o valor da variável “product_quantity”. A função set (update_quantity) é conectada assim:
update_quantity(uint256 value) public {product_quantity = product_quantity + value;}
Agora, conecte todas as declarações fornecidas acima para escrever seu primeiro contrato inteligente .

Como implantar o contrato inteligente
Depois de concluir as etapas mencionadas anteriormente, é hora de testar seu contrato inteligente. Você pode fazer o mesmo usando o Remix IDE, que fornece o recurso do compilador Solidity para criar, testar e validar seu contrato inteligente online.
Aqui estão as instruções passo a passo para projetar e implantar um contrato inteligente com o Remix Online IDE:
- Clique no ícone de adição para criar um novo arquivo (vazio)
- Clique para abrir o arquivo vazio
- Cole seu contrato neste arquivo
- Vá para o menu à esquerda e clique no segundo ícone, logo abaixo do ícone do arquivo. Com isso, a opção do compilador de solidez aparecerá
- Vá para o rótulo do compilador para selecionar a versão do compilador
- Clique no arquivo para compilar o contrato inteligente
- Após a compilação, clique no botão de detalhes do compilador para entender o bytecode e a interface binária do aplicativo. Bytecode contém o código operacional do Ethereum e a lógica do contrato inteligente após a conversão e compilação
- No menu à esquerda, clique no ícone abaixo do ícone de compilação para implantar seu contrato inteligente
Interagindo com o contrato implantado
Os métodos públicos mencionados no contrato fornecem maneiras de interagir com o contrato implantado. No contexto do Pedido de Compra, “update_quantity” e “get_quantity” são os dois métodos de interação disponíveis. Você também pode inserir seus parâmetros usando a caixa de entrada. Lembre-se de que qualquer operação que altere as variáveis do contrato resultará em uma transação.
Com isso, abordamos o básico de como escrever seu primeiro contrato inteligente e como testá-lo e implantá-lo usando a linguagem de programação Solidity em um ambiente de desenvolvimento online. Também entendemos o processo de interagir com um contrato inteligente e iniciar transações. Portanto, aplique seu aprendizado e crie um contrato inteligente hoje. Afinal, a prática leva à perfeição!
Empacotando
Há um aumento nas carreiras na tecnologia blockchain e blockchain mudou tremendamente a própria face da indústria de tecnologia para sempre. Se você estiver interessado em se tornar um desenvolvedor de blockchain e criar contratos inteligentes e códigos de cadeia, faça o check-out do programa de certificação avançada do IIIT-B e do upGrad em tecnologia blockchain
Quais são algumas aplicações possíveis de contratos inteligentes?
Contratos inteligentes são programas de computador que executam as condições de um contrato automaticamente. Eles usam a tecnologia blockchain, que é um banco de dados distribuído que permite transações seguras, transparentes e invioláveis. Aluguel de carros, reservas de hotéis e ingressos para eventos são apenas alguns exemplos de como os contratos inteligentes podem ser empregados.
Por que os contratos inteligentes são considerados mais seguros do que os contratos regulares?
Como os contratos inteligentes são implementados em uma rede blockchain, eles são considerados mais seguros do que os contratos tradicionais. Um blockchain é um banco de dados distribuído criptograficamente protegido. Isso significa que as informações no blockchain não podem ser adulteradas ou hackeadas. Como resultado, a execução de um contrato inteligente é garantida como precisa e confiável. Eles também são públicos e auditáveis, o que significa que todos no blockchain podem visualizar as condições do contrato e verificar se ele está sendo executado. Por outro lado, os contratos inteligentes podem ajudar a diminuir o risco de fraudes e conflitos. A linha inferior é que eles têm muitos recursos e são fáceis de usar.
Por que os contratos inteligentes estão se tornando mais populares?
Uma das vantagens mais essenciais dos contratos inteligentes é que eles podem ajudar as organizações a automatizar procedimentos e reduzir custos. Por exemplo, uma empresa pode utilizar um acordo inteligente para pagar seus fornecedores imediatamente após a entrega. Isso reduziria a necessidade de a empresa processar pagamentos manualmente, economizando tempo e dinheiro. Também pode ser usado para construir confiança entre as empresas e seus clientes. Por exemplo, um contrato inteligente pode ser usado para construir um sistema de pagamento online seguro. Isso permitiria que os clientes fizessem pagamentos sem medo de que suas informações pessoais fossem comprometidas. Por último, mas não menos importante, pode ser usado para construir identidades digitais para pessoas e empresas. As empresas seriam capazes de autenticar as identidades de seus clientes e protegê-los contra fraudes como resultado disso.