6 Transactions and Calls

 

“If debugging is the process of removing software bugs, then programming must be the process of putting them in.”

— Edsger Dijkstra

This chapter covers:

  • Differentiating transaction types
  • Examining identity management at the node level
  • Interpreting the visibility of transactions

In the last chapter, we deployed our first multi-node network and talked a bit about consensus algorithms. We saw how nodes stay in sync over the data that has been put on the blockchain. And then we learned how to deploy a contract on to this network and how to send transactions to a deployed contract. However, we never really explained what a transaction is. We simply used it. In this chapter, we’ll get a better understanding of all they do and highlight their uses in DLT frameworks. While we are at it, we will look at the visibility of data in a DLT network to see what information transactions leak.

6.1            The Theory behind Transactions

6.1.1                     Crafting Transactions

6.1.2                     A note about visibility

6.2            Types of Transactions

6.2.1                     Contract Deployment

6.2.2                     Contract function calls

6.2.3                     Admin Calls

6.3            Node Identity Management

6.3.1                     Pizzaensus

6.4            Exercise: Build a Card Game

6.4.1                     Architecting the game

6.4.2                     Solidity code

6.4.3                     Validation using Remix

6.4.4                     Learning opponents’ moves

6.4.5                     Playing the Game on Quorum

6.4.6                     Reading other nodes’ moves

6.5            Exercise: Altering Node Membership

6.5.1                     Adding a node to an existing network

6.5.2                     Removing a node from a network

6.6            Summary