Building blockchain-oriented applications forces developers to rethink the architecture of their software from the ground up. The use of blockchain technology poses multiple challenges as the software is operated in a decentralized, trustless, transparent and tamper-proof environment. When building decentralized apps the developers need to deal with blockchain properties such as decentralization, a certain delay in the execution of function calls of distributed code contracts and particularly need to consider how users interact with their application. We surveyed several existing decentralized apps and examined their architecture to identify multiple reoccurring architectural patterns, each with different implications regarding the trust, user experience and security. As building blockchain-oriented applications is gaining importance, models, tools and methods for blockchain-oriented software engineering have to be developed. This paper gives a first hint towards architectural patterns for blockchain-based applications and motivates why it is important to consider how the user interacts with the decentralized apps.
[1]
Andreas M. Antonopoulos,et al.
Mastering Bitcoin: Unlocking Digital Crypto-Currencies
,
2014
.
[2]
Melanie Swan,et al.
Blockchain: Blueprint for a New Economy
,
2015
.
[3]
Vitalik Buterin.
A NEXT GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM
,
2015
.
[4]
Daniel Davis Wood,et al.
ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER
,
2014
.
[5]
Siraj Raval,et al.
Decentralized Applications: Harnessing Bitcoin's Blockchain Technology
,
2016
.
[6]
Andrea Pinna,et al.
Blockchain-Oriented Software Engineering: Challenges and New Directions
,
2017,
2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).