Page 29 - Revista_60.pub
P. 29
A PROGRAMAR
BLOCKCHAIN
ploy. Espero que o leitor tenha gostado e com isto tenha
var abiArray = JSON.parse(fs.readFileSync
(path.resolve(__dirname, './contract.json'), aprendido um pouco mais sobre blockchain.
'utf-8'));
var contractAddress = "0x9E4555ae3(...)";
app.get('/usercar/:useraddress/:index', (req, res)
=> {
var contract = new web3.eth.Contract(abiArray, Muitos dizem que
contractAddress);
contract.methods.getUserCars
(req.params.useraddress, vai mudar o mundo,
req.params.index).call().then((receipt) => {
res.render('usercar', { carname: receipt })
}); outros acreditam que
})
app.get('/add/:useraddress/:carname', (req, res) =>
{ pode vir a ser um pro-
var contract = new web3.eth.Contract(abiArray,
contractAddress);
contract.methods.addUserCar blema. A verdade é que
(req.params.carname).send({from:
req.params.useraddress}).then((receipt) => { está a revolucionar a
res.send(receipt)
});
}) forma como se fazem e
app.listen(3000, () => console.log('Example app
listening on port 3000!'))
O contractAddress deve ser o endereço gerado quando pensam algumas coi-
o contracto foi deployed. No contract.json deve estar o abi do
contrato que pode ser encontrado na pasta onde estão os con- sas, mas é um tecnolo-
tratos, em build/contracts/UserCar.json. E por fim a interface
pug num ficheiro de nome usercar.pug dentro do directório gia tão recente que ain-
views:
da faz com que haja
doctype html
html(lang='en')
head pouca informação.
title Car
body
h1 User Car Blockchain é um con-
#container.col
p= carname ceito, um conceito defi-
Com isto, o leitor pode agora executar o comando:
nido como "base de
$nodejs index.js
para iniciar a webapp e postariormente adicionar carros a um dados descentraliza-
utilizador através do url http://localhost:3000/add/endereco-da-
conta-utilizada-para-fazer-deploy-do-contrato/nome-do-carro. da".
Caso tudo corra bem, receberá uma reposta de suces-
so. Para ver os carros de qualquer utilizador, deve ser feito
através do url http://localhost:3000/usercar/endereco-da-conta-
utilizada-para-fazer-deploy-do-contrato/index e poderá ver um
simples output que deve conter o nome do veiculo, por exem-
plo, para o primeiro carro adicionado, deve pesquisar pelo in-
dex 0 e deve aparecer o nome que adicionou. O endereço da
conta utilizada é normalmente a primeira conta no ganache,
aquela que tiver menos eth, pois foi utilizado para fazer o de-
AUTOR
Escrito por Bernardo Vieira
Licenciado em Engenharia Informática pelo ISEC. Comecei a programar por diversão aos 15, quando com
amigos comecei a jogar online. Curioso o suficiente para explorar algo que me pareça bom e quando
tenho possibilidade gosto de escrever sobre o que explorei. Com especial interesse em blockchain, iot e
devops. @obernardovieira
29