mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-22 11:35:49 +00:00
and SQL code. This uses some of the 'magic' properties of elliptic curves to create related families of public and private keys. Wallet encryption is not needed because the private keys do not need to be stored.
90 lines
2.4 KiB
SQL
90 lines
2.4 KiB
SQL
|
|
|
|
CREATE TABLE Transactions ( -- transactions in all states
|
|
TransID CHARACTER(64) PRIMARY KEY, -- in hex
|
|
FromAcct CHARACTER(40), -- 20 byte hash of pub key in hex
|
|
FromSeq BIGINT UNSIGNED, -- account seq
|
|
FromLedger BIGINT UNSIGNED,
|
|
Identifier BIGINT UNSIGNED,
|
|
ToAcct CHARACTER(40), -- 20 byte hash of pub key
|
|
Amount BIGINT UNSIGNED,
|
|
Fee BIGINT UNSIGNED,
|
|
FirstSeen TEXT, -- time first seen
|
|
CommitSeq BIGINT UNSIGNED, -- ledger commited to, 0 if none
|
|
Status CHARACTER(1), -- (N)ew, (A)ctive, (C)onflicted, (D)one, (H)eld
|
|
Signature BLOB
|
|
);
|
|
|
|
|
|
CREATE TABLE PubKeys ( -- holds pub keys for nodes and accounts
|
|
ID CHARACTER(40) PRIMARY KEY,
|
|
PubKey BLOB
|
|
);
|
|
|
|
|
|
CREATE TABLE Ledgers ( -- closed/accepted ledgers
|
|
LedgerHash CHARACTER(64) PRIMARY KEY,
|
|
LedgerSeq BIGINT UNSIGNED,
|
|
PrevHash CHARACTER(64),
|
|
FeeHeld BIGINT UNSIGNED,
|
|
ClosingTime BIGINT UNSINGED,
|
|
AccountSetHash CHARACTER(64),
|
|
TransSetHash CHARACTER(64),
|
|
);
|
|
|
|
CREATE INDEX SeqLedger ON Ledgers(LedgerSeq);
|
|
|
|
|
|
CREATE TABLE LedgerConfirmations (
|
|
LedgerSeq BIGINT UNSIGNED,
|
|
LedgerHash CHARACTER(64),
|
|
Hanko CHARACTER(40),
|
|
Signature BLOB
|
|
);
|
|
|
|
CREATE INDEX LedgerConfByHash ON LedgerConfirmations(LedgerHash);
|
|
|
|
|
|
CREATE TABLE TrustedNodes (
|
|
Hanko CHARACTER(40) PRIMARY KEY,
|
|
TrustLevel SMALLINT,
|
|
Comment TEXT
|
|
);
|
|
|
|
CREATE TABLE KnownNodes (
|
|
Hanko CHARACTER(40) PRIMARY KEY,
|
|
LastSeen TEXT, -- YYYY-MM-DD HH:MM:SS.SSS
|
|
HaveContactInfo CHARACTER(1),
|
|
ContactObject BLOB
|
|
);
|
|
|
|
|
|
CREATE TABLE CommittedObjects ( -- used to synch nodes
|
|
Hash CHARACTER(64) PRIMARY KEY,
|
|
ObjType CHAR(1) NOT NULL, -- (L)edger, (T)ransaction, (A)ccount node, transaction (N)ode
|
|
LedgerIndex BIGINT UNSIGNED, -- 0 if none
|
|
Object BLOB
|
|
);
|
|
|
|
CREATE INDEX ObjectLocate ON CommittedObjects(LedgerIndex, ObjType);
|
|
|
|
CREATE TABLE LocalAcctFamilies ( -- a family of accounts that share a payphrase
|
|
FamilyName CHARACTER(40) PRIMARY KEY,
|
|
RootPubKey CHARACTER(66),
|
|
Seq BIGINT UNSIGNED, -- last one issued
|
|
Name TEXT,
|
|
Comment TEXT
|
|
)
|
|
|
|
CREATE TABLE LocalAccounts ( -- an individual account
|
|
ID CHARACTER(40) PRIMARY KEY,
|
|
DKID CHARACTER(40), -- root determinstic key
|
|
DKSeq BIGINT UNSIGNED, -- sequence number
|
|
Seq BIGINT UNSIGNED, -- last transaction seen/issued
|
|
Balance BIGINT UNSIGNED,
|
|
LedgerSeq BIGINT UNSIGNED, -- ledger this balance is from
|
|
Comment TEXT
|
|
);
|
|
|
|
CREATE UNIQUE INDEX AccountLocate ON LocalAccounts(DKID, DKSeq);
|