diff --git a/docs/source/node-database.rst b/docs/source/node-database.rst index e40c3bf520..2f078cbaf5 100644 --- a/docs/source/node-database.rst +++ b/docs/source/node-database.rst @@ -102,6 +102,10 @@ By default, the node database has the following tables: +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | NODE_TRANSACTIONS | TX_ID, TRANSACTION_VALUE, STATE_MACHINE_RUN_ID | +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PK_HASH_TO_EXT_ID_MAP | ID, EXTERNAL_ID, PUBLIC_KEY_HASH | ++-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| STATE_PARTY | OUTPUT_INDEX, TRANSACTION_ID, ID, PUBLIC_KEY_HASH, X500_NAME | ++-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | VAULT_FUNGIBLE_STATES | OUTPUT_INDEX, TRANSACTION_ID, ISSUER_NAME, ISSUER_REF, OWNER_NAME, QUANTITY | +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | VAULT_FUNGIBLE_STATES_PARTS | OUTPUT_INDEX, TRANSACTION_ID, PARTICIPANTS | @@ -114,3 +118,5 @@ By default, the node database has the following tables: +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | VAULT_TRANSACTION_NOTES | SEQ_NO, NOTE, TRANSACTION_ID | +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| V_PKEY_HASH_EX_ID_MAP | ID, PUBLIC_KEY_HASH, TRANSACTION_ID, OUTPUT_INDEX, EXTERNAL_ID | ++-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt b/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt index 0cbaa360de..c7934a5c02 100644 --- a/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt +++ b/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt @@ -11,6 +11,7 @@ import net.corda.nodeapi.internal.persistence.CordaPersistence import net.corda.nodeapi.internal.persistence.NODE_DATABASE_PREFIX import org.apache.commons.lang.ArrayUtils.EMPTY_BYTE_ARRAY import org.bouncycastle.operator.ContentSigner +import org.hibernate.annotations.Type import java.security.KeyPair import java.security.PrivateKey import java.security.PublicKey @@ -50,13 +51,14 @@ class PersistentKeyManagementService(cacheFactory: NamedCacheFactory, val identi @Id @GeneratedValue @Column(name = "id", unique = true, nullable = false) - var key: Long? = null, + val key: Long?, @Column(name = "external_id", nullable = false) - var externalId: UUID, + @Type(type = "uuid-char") + val externalId: UUID, @Column(name = "public_key_hash", nullable = false) - var publicKeyHash: String + val publicKeyHash: String ) { constructor(accountId: UUID, publicKey: PublicKey) : this(null, accountId, publicKey.toStringShort()) diff --git a/node/src/main/kotlin/net/corda/node/services/vault/VaultSchema.kt b/node/src/main/kotlin/net/corda/node/services/vault/VaultSchema.kt index b2cf297557..586ea4bfdf 100644 --- a/node/src/main/kotlin/net/corda/node/services/vault/VaultSchema.kt +++ b/node/src/main/kotlin/net/corda/node/services/vault/VaultSchema.kt @@ -167,14 +167,14 @@ object VaultSchemaV1 : MappedSchema( @Id @GeneratedValue @Column(name = "id", unique = true, nullable = false) - var id: Long? = null, + val id: Long?, // Foreign key. @Column(name = "state_ref") - var stateRef: PersistentStateRef, + val stateRef: PersistentStateRef, @Column(name = "public_key_hash", nullable = false) - var publicKeyHash: String, + val publicKeyHash: String, @Column(name = "x500_name", nullable = true) var x500Name: AbstractParty? = null @@ -190,17 +190,18 @@ object VaultSchemaV1 : MappedSchema( @Id @GeneratedValue @Column(name = "id", unique = true, nullable = false) - var id: Long? = null, + val id: Long, // Foreign key. @Column(name = "state_ref") - var stateRef: PersistentStateRef, + val stateRef: PersistentStateRef, @Column(name = "public_key_hash") - var publicKeyHash: String, + val publicKeyHash: String, @Column(name = "external_id") - var externalId: UUID + @Type(type = "uuid-char") + val externalId: UUID ) : StatePersistable } diff --git a/node/src/main/resources/migration/vault-schema.changelog-v8.xml b/node/src/main/resources/migration/vault-schema.changelog-v8.xml index 3f7adda2c2..b52eb27d92 100644 --- a/node/src/main/resources/migration/vault-schema.changelog-v8.xml +++ b/node/src/main/resources/migration/vault-schema.changelog-v8.xml @@ -6,17 +6,27 @@ - - + + + + + + - - - + + + + + + + + +