11 A roadmap to Dapp development

 

This chapter covers

  • Navigating end-to-end Dapp development guided by a roadmap
  • Designing and developing an educational credentialing application
  • Developing a test-driven prototype on a local test chain
  • Configuring and transforming the prototype Dapp for public deployment
  • Creating a distributable web app to enable decentralized participants

This chapter provides a roadmap for Dapp development from beginning to end. In the preceding chapters, you learned how to design, develop, deploy, and test smart contracts and decentralized web applications (Dapps). You learned the core idea of blockchain technology and its application. You explored a wide variety of applications, from a simple counter to asset tokenization. You studied a new language, Solidity, for programming smart contracts, and tools such as Remix and Truffle to process and test them. Blockchain programming is not meant for data-intensive image processing; neither is it for computationally intensive scientific computation. In the case of a smart contract, for example, it is not good practice to use a smart contract for storing multidimensional image processing or for long-running, complex computations.

In this chapter, let’s put all these concepts together, not only to reinforce the concepts discussed, but also to comprehend how and why blockchain programming is different from traditional web application development.

11.1 Motivating scenario: Educational credentialing

11.2 The roadmap

11.3 Problem description

11.3.1 Context for the DCC application

11.3.2 Design choices

11.4 Analysis and design

11.4.1 Operation flow and finite state machine

11.4.2 Contract diagram

11.5 Developing the smart contract

11.5.1 Data structures

11.5.2 Events

11.5.3 Modifiers

11.5.4 Functions

11.6 Local deployment

11.7 Automated testing using truffle