Page 61 - Revista_60.pub
P. 61
COMUNIDADE DESIGNSPARK
https://www.rs-online.com/designspark/home
EXPLORAR ETHEREUM COM RASPBERRY PI
Como instalar e executar um cliente blockchain Um blockchain é um ledger distribuído que normal-
Ethereum num Pi 3 Model B. mente é gerido através de uma rede peer-to-peer e cresce
constantemente à medida que mais registos ou blocos são
A tecnologia Blockchain ainda é um tópico incrivel- adicionados. Os blocos geralmente contêm um registo de
mente quente e tem sido assim há algum tempo, devido em data e hora juntamente com os dados da transação e são
grande parte à riqueza que as criptomoedas - principalmente protegidos criptograficamente por meio de algoritmos de
Bitcoin – geraram, de um dia para o outro, para os primeiros hashing, de forma que, uma vez que os dados sejam confir-
investidores. Juntando a isto as novas possibilidades econó- mados, não podem ser modificados - é imutável.
micas, percebe-se o porquê do interesse.
A plataforma Ethereum tem a sua criptomoeda pró-
No entanto, o Blockchain pode ser usado para muito pria, chamada ether, mas também usa a tecnologia
mais do que criptomoedas. A sua natureza distribuída e ca- blockchain para criar uma plataforma descentralizada para
pacidade de verificar transações para efetuar registos à pro- contratos inteligentes - objetos que contêm funções de código
va de falsificação, fazem desta tecnologia uma ferramenta e que vivem no blockchain, capazes de interagir com outros
ideal para aplicativos de IoT. O que é empolgante na plata- contratos, fazer decisões, armazenar dados e enviar ether
forma Ethereum é que esta vai para além da simples cripto- para outros.
moeda e da proteção de transações, podendo chegar a ser
uma plataforma de computação distribuída. Os contratos inteligentes são implementados numa
linguagem chamada Solidity, baseada em JavaScript. O com-
Neste artigo vamos dar uma vista de olhos rápida pilador Solidity é usado para compilar contratos inteligentes
pela arquitetura do Ethereum e tentar abordar alguns dos para bytecode - assim como é feito com JavaScript ou com
principais conceitos e componentes, antes de explicar a ins- Python, Java e Android, por exemplo, antes da execução -
talação do software cliente num Raspberry Pi. Deixemos que é então feita através da Máquina Virtual Ethereum
bem claro que não iremos minar criptomoeda. Para isso seria (EVM).
necessário uma GPU poderosa, mas um Raspberry Pi pode
ser usado para criar uma sandbox simples, para experimen- Existem várias aplicações disponíveis para Ethereum,
tação - e isso também demonstra que é realmente possível com a implementação de referência original, geth, escrita em
usar tecnologia blockchain com plataformas integradas Go. Algumas delas podem minar ether, e existe também soft-
(embedded platforms). ware de mineração autónomo. Além disso, existem clientes
GUI e um IDE para aplicações distribuídas.
Além da principal rede pública de blockchain Ethe-
Ethereum: noções básicas
reum, mainnet, também existem redes de teste para experi-
mentação, o que permite criar as suas próprias redes priva-
contract mortal {
/* define uma variável owner do tipo address */ das.
address owner;
/* Esta função é executada na inicialização e
define o owner do contracto */ Instalar Geth
function mortal() { owner = msg.sender; }
/* Função para recuperar os fundos no
contrato */
function kill() { if (msg.sender == owner)
selfdestruct(owner); }
}
contract greeter is mortal {
/* Define uma variável greeting do tipo
string */
string greeting;
/* Isto é executado quando o contrato é
executado */
function greeter(string _greeting) public {
greeting = _greeting;
}
/* Função principal */
function greet() constant returns (string) {
return greeting;
}
} Assumindo que já instalamos o Raspbian, começamos por
atualizar o software instalado para as versões mais recentes.
Um exemplo de contrato inteligente da Ethereum. Fonte:
ethereum.org
61