Ich habe meine eigene CorDapp gemäß Cordas offizieller Dokumentation erstellt. In diesem Artikel werde ich bis zur Erstellung von Zuständen beschreiben.
https://docs.corda.net/_static/corda-developer-site.pdf (Hauptsächlich implementiert gemäß Kapitel 5 "Erste Schritte mit der Entwicklung von CorDapps" und Kapitel 6 "SCHLÜSSELKONZEPTE".)
Was sind "Staaten"? Zustände sind Objekte, in denen "Fakten im Hauptbuch" aufgezeichnet werden. Status werden aktualisiert, wenn sich der Status ändert (der Betrag bewegt sich, der Eigentümer ändert sich usw.). Darüber hinaus hat jeder an der Corda-Plattform teilnehmende Knoten seine eigenen Status. Es hat einen Tresorraum zur Aufbewahrung.
Reihenfolge der Aktualisierung der "Zustände" Weil "Zustands" -Situationen unveränderlich sind (Objekte, deren Zustand nach der Erstellung nicht geändert werden kann) Es kann nicht direkt aktualisiert werden. Erstellen Sie stattdessen eine neue Version von Status, die die neuen Status darstellt. Markieren Sie vorhandene Zustände als Geschichte. Die Geschichte der Zustände wird im Tresor jedes Knotens gesammelt.
Code CorDapp gemäß dem offiziellen Dokument "5.2.2 Schritt zwei: Erstellen von Zuständen". Die Programmiersprache ist übrigens Kotlin.
CarState.kt
package com.template.states
import com.template.contracts.CarContract
import com.template.contracts.TemplateContract
import net.corda.core.contracts.BelongsToContract
import net.corda.core.contracts.ContractState
import net.corda.core.contracts.UniqueIdentifier
import net.corda.core.identity.AbstractParty
import net.corda.core.identity.Party
// *********
// * State *
// *********
@BelongsToContract(CarContract::class)
data class CarState( ※1
val owningBank: Party, ※2
val holdingDealer: Party,
val manufacturer: Party,
val vin: String,
val licensePlateNumber: String,
val make: String,
val model: String,
val dealershipLocation: String,
val linearId: UniqueIdentifier ※3
) : ContractState { ※1
override val participants: List<AbstractParty> = listOf(owningBank, holdingDealer, manufacturer) ※4
}
Unten ist ein Hinweis von "*" in der Quelle.
Das nächste Mal habe ich vor, wieder Verträge zu erstellen.
Recommended Posts