Я переписываю и запускаю IssueFlow для примера cordapp здесь . Я вижу, что поток прошел успешно, и могу найти несколько UTXO в запросе хранилища для узла.
run vaultQuery contractStateType: com.example.state.IOUStat
Я хотел бы просмотреть данные в постоянном хранилище (H2).
Я добавил следующее в конфигурацию моего узла (аналогично для узла партии А с другим портом).
devMode=true
myLegalName="O=PartyB,L=New York,C=US"
p2pAddress="localhost:10008"
rpcSettings {
address="localhost:10009"
adminAddress="localhost:10049"
}
security {
authService {
dataSource {
type=INMEMORY
users=[
{
password=test
permissions=[
ALL
]
user=user1
}
]
}
}
}
h2Settings {
address: "localhost:12344"
}
Я вижу URL БД на узлах выполнения
jdbc:h2:tcp://localhost:12344/node
Я могу успешно подключиться к этому URL базы данных. Однако я не вижу таблиц для моего постоянного состояния
Запрос к БД
object IOUSchema
object IOUSchemaV1 : MappedSchema(
schemaFamily = IOUSchema.javaClass,
version = 1,
mappedTypes = listOf(PersistentIOU::class.java)){
@Entity
@Table(name = "iou_states")
class PersistentIOU(
@Column(name = "lender")
var lenderName : String,
@Column (name = "borrower")
var borrowerName : String,
@Column(name = "value")
var value : Int,
@Column(name = "linear_id")
var linearId : UUID
) : PersistentState(){
constructor() : this("","",0, UUID.randomUUID())
}
}
@BelongsToContract(IOUContract::class)
data class IOUState (val value : Int,
val lender: Party,
val borrower : Party,
override val linearId: UniqueIdentifier = UniqueIdentifier()): LinearState, QueryableState {
override val participants : List<AbstractParty> get() = listOf(lender,borrower)
override fun generateMappedObject(schema: MappedSchema): PersistentState {
return when (schema){
is IOUSchemaV1 -> IOUSchemaV1.PersistentIOU(
this.lender.name.toString(),
this.borrower.name.toString(),
this.value,
this.linearId.id
)
else -> throw IllegalArgumentException("Unrecognised schema $schema")
}
}
override fun supportedSchemas(): Iterable<MappedSchema> = listOf(IOUSchemaV1)
}
РЕДАКТИРОВАТЬ: Это, безусловно, работает путем подключения непосредственно к файлу. См. здесь , однако похоже, что он подключается к другой базе данных при использовании внешнего клиента (dbeaver) для подключения к URL JDB C, полученному при запуске узла.