Validation of Smart Contracts through Automated Tooling

Detalhes bibliográficos
Autor(a) principal: Conceição, Tomás Morgado de Carvalho
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10316/86360
Resumo: Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
id RCAP_6a27510114def1b1156fdd10beb155de
oai_identifier_str oai:estudogeral.uc.pt:10316/86360
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Validation of Smart Contracts through Automated ToolingValidação de Smart Contracts Através de Ferramentas AutomatizadasAutomaçãoBlockchainNEOSmart ContractsTesteAutomationBlockchainNEOSmart ContractsTestingDissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e TecnologiaOs smart contracts são programas de computador que usam a tecnologia blockchain para permitir que os seus utilizadores troquem bens digitais sem a necessidade de um intermediário. NEO é uma recente plataforma de blockchain que oferece aos programadores a possibilidade de desenvolver smart contracts em linguagens de programação de alto nível. Devido às propriedades da blockchain, o código dos smart contracts não pode ser alterado após ser distribuido na blockchain. É portanto crucial que os programadores testem cuidadosamente os seus smart contracts antes de os usarem em ambiente de produção.Esta dissertação, o produto do estágio do seu autor na Whitesmith, apresenta as diferentes fases do desenvolvimento de uma ferramenta de testes para smart contracts de NEO.Esta ferramenta tenta colmatar a distância entre o estado da arte das ferramentas de desenvolvimento de NEO e de Ethereum, duas tecnologias de blockchain promissoras, apresentadas neste relatório. O estudo do estado da arte das ferramentas de desenvolvimento para estas tecnologias mostra que, apesar de NEO ter ferramentas de desenvolvimentos tais como o NeoCompiler Eco que assistem no desenvolvimento de smart contracts, estas não oferecem quaisquer funcionalidades de teste.Tomando partido de uma ferramenta já existente para NEO, o NeoCompiler Eco, foi desenvolvida uma ferramenta de automação de testes que permite aos seus utilizadores criar, importar, guardar e correr casos de teste e suites de teste numa rede privada de NEO, utilizando apenas um browser.Esta ferramenta, que avalia os casos de teste consoante eventos ouvidos na blockchain de NEO, é o resultado dos requisitos feitos ao estagiário pelos programadores da Blocksmith, uma startup spin-off da Whitesmith, e é agora usada por estes programadores.Smart contracts are computer programs which use blockchain technology to allow users to exchange digital assets without the need for a middle-man. NEO is a recent blockchain platform, which presents programmers with the possibility of developing smart contracts in high-level programming languages. Due to blockchain properties, smart contract code cannot be changed after being deployed. It is then crucial for developers to thoroughly test their smart contracts before using them in a production environment. This dissertation, a product of the intern’s internship at Whitesmith, presents the different phases of the development of a testing tool for NEO smart contracts. This tool attempts to fill the gap between the state of the art of NEO and Ethereum developer tools, two promising blockchain technologies which are presented in this report. The study of the state of the art of development tools for these technologies shows that, although NEO has development tools, such as NeoCompiler Eco, which assists in the development of smart contracts, these do not offer any testing features. Taking advantage of the existing NEO tool NeoCompilerEco, a test automation tool was developed, which enables users to create, import, save and run test cases and test suites on a NEO private network, using only a browser. This tool, which assesses tests according to events listened in the NEO blockchain, is the result of the requests made to the intern by developers at Blocksmith, a spin-off startup from Whitesmith, and is now in use by these developers.2019-02-01info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://hdl.handle.net/10316/86360http://hdl.handle.net/10316/86360TID:202223140engConceição, Tomás Morgado de Carvalhoinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2019-06-02T14:04:08Zoai:estudogeral.uc.pt:10316/86360Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:07:31.544073Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Validation of Smart Contracts through Automated Tooling
Validação de Smart Contracts Através de Ferramentas Automatizadas
title Validation of Smart Contracts through Automated Tooling
spellingShingle Validation of Smart Contracts through Automated Tooling
Conceição, Tomás Morgado de Carvalho
Automação
Blockchain
NEO
Smart Contracts
Teste
Automation
Blockchain
NEO
Smart Contracts
Testing
title_short Validation of Smart Contracts through Automated Tooling
title_full Validation of Smart Contracts through Automated Tooling
title_fullStr Validation of Smart Contracts through Automated Tooling
title_full_unstemmed Validation of Smart Contracts through Automated Tooling
title_sort Validation of Smart Contracts through Automated Tooling
author Conceição, Tomás Morgado de Carvalho
author_facet Conceição, Tomás Morgado de Carvalho
author_role author
dc.contributor.author.fl_str_mv Conceição, Tomás Morgado de Carvalho
dc.subject.por.fl_str_mv Automação
Blockchain
NEO
Smart Contracts
Teste
Automation
Blockchain
NEO
Smart Contracts
Testing
topic Automação
Blockchain
NEO
Smart Contracts
Teste
Automation
Blockchain
NEO
Smart Contracts
Testing
description Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
publishDate 2019
dc.date.none.fl_str_mv 2019-02-01
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10316/86360
http://hdl.handle.net/10316/86360
TID:202223140
url http://hdl.handle.net/10316/86360
identifier_str_mv TID:202223140
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799133966473625600