Creating a cryptocurrency application will allow us to implement all the blockchain concepts we've looked at so far, along with the transaction structure used in Bitcoin, and we can then deploy it in a fully P2P network. We created a blockchain application in a decentralized P2P network in Chapter 4, Networking in Blockchain. We will be using the same application to create and propagate the blocks in the network, but also extend the application with the concepts of transactions and wallets to create a completely decentralized cryptocurrency:
Figure 5.5 shows how the cryptocurrency application can be extended by adding wallet and transaction functionality. We will walk through the implementation of each component in order to understand its functionality.
...