Chapter 8. State Linking, Fungibility, Coin Selection, and Observers
Up to this point, the ToDoDist CorDapp has only worked with states that are independent and evolve in a linear path—that is, the ToDoState state exists independent and unaware of any other state and is linked only with its own history of consumption. This is sufficient for many use cases, especially simple ones. However, the real world is anything but simple.
As more and more types of use cases shift to blockchains, simple states will be insufficient, and more complex state designs will be required. In this chapter, we’ll explore the complex ways states can be linked or referenced with each other, merged, split up, or propagated out. We’ll look at the various ways Corda allows one state to refer to another state, how a state that’s fungible creates complexities, and how states can be propagated to external parties known as observer nodes. We will also look at concepts like coin selection and soft locking, techniques that are essential when retrieving fungible states.
This chapter is important not just for developers, but also for architects and data modelers because it demonstrates how much flexibility Corda provides, and with great power comes great responsibility.1 We’ll wrap up the chapter with a brief set of heuristics to help you determine what should or shouldn’t be a state, which is useful if you’re tasked with designing a CorDapp.
Complex States
There are only two general options when designing states ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access