Basic Provenance Sample Application for Azure Blockchain Workbench¶
The Basic Provenance application expresses a workflow for a simple record of ownership or responsibility. The state transition diagram below shows the interactions among the states in this workflow.
|InitiatingCounterParty||The first participant in the supply chain.|
|Counterparty||A party to whom responsibility for a product has been assigned. For example, a shipper|
|Owner||The organization that owns the product being transported. For example, a manufacturer|
|Observer||The individual or organization monitoring the supply chain. For example, a government agency|
|Created||Indicates that the contract has initiated and tracking is in progress.|
|InTransit||Indicates that a Counterparty currently is in possession and responsible for goods being transported.|
|Completed||Indicates the product has reached it's intended destination.|
An instance of the Basic Provenance application's workflow starts in the Created state when an owner wants to begin a process for tracking ownership or responsibility. An owner is also the InitiatingCounterParty since the owner initiates the process for tracking the ownership or responsibility. The state changes to InTransit whenever a new counterparty that can take on the responsibility is identified. The owner in the InitiatingCounterParty role calls a function to transfer responsibility by specifying a counterparty. Upon reaching the InTransit state, the counterparty can transfer the responsibility to another counterparty or the owner can decide to complete the transfers of responsibility and call the Complete function to reach the Completed state.
The happy path shown in the transition diagram traces the owner transferring responsibility to a counterparty once and then completing the workflow.