Data Structure - zoobc/zoobc-core GitHub Wiki

Data Structure

This page contains the Protobuf and SQLite database structure used in the source code. The format of the table for each data structure is [database-structure | protobuf/application structure]

  • Block

No Key Value
1 table name {chaintype}_block
2 model name Block
No Field Type Field Type
1 id (pk) INTEGER ID int64
2 block_hash BLOB BlockHash []byte
3 previous_block_hash BLOB PreviousBlockHash []byte
4 height INTEGER Height uint32
5 timestamp INTEGER Timestamp int64
6 block_seed BLOB BlockSeed []byte
7 block_signature BLOB BlockSignature []byte
8 cumulative_difficulty VARCHAR CumulativeDifficulty string
9 smith_scale INTEGER SmithScale int64
10 blocksmith_address VARCHAR(255) BlocksmithAddress string
11 total_amount INTEGER TotalAmount int64
12 total_fee INTEGER TotalFee int64
13 total_coinbase INTEGER TotalCoinbase int64
14 version INTEGER Version uint32
15 - - Transactions []Transaction
16 payload_length INTEGER PayloadLength uint32
17 payload_hash BLOB PayloadHash []byte
  • Transaction

No Key Value
1 table name transaction
2 model name Transaction
No Field Type Field Type
1 version INTEGER Version uint32
2 id (pk) INTEGER ID int64
3 block_id INTEGER BlockID int64
4 block_height INTEGER Height uint32
5 sender_account_address BLOB SenderAccount []byte
6 recipient_account_address BLOB RecipientAccount []byte
7 transaction_type INTEGER TransactionType uint32
8 fee INTEGER Fee int64
9 timestamp INTEGER Timestamp int64
10 transaction_hash BLOB TransactionHash []byte
11 transaction_body_length INTEGER TransactionBodyLength uint32
12 transaction_body_bytes BLOB TransactionBodyBytes []byte
13 signature BLOB Signature []byte
14 - - TransactionBody TransactionBody
15 transaction_index INTEGER TransactionIndex uint32
16 - - Escrow Escrow
  • Mempool transaction

No Key Value
1 table name mempool
2 model name MempoolTransaction
No Field Type Field Type
1 id (pk) INTEGER ID int64
2 fee_per_byte INTEGER FeePerByte int32
3 arrival_timestamp INTEGER ArrivalTimestamp int64
4 transaction_bytes INTEGER TransactionBytes []byte
5 sender_account_address BLOB SenderAccount []byte
6 recipient_account_address BLOB RecipientAccount []byte
  • Account Balance

No Key Value
1 table name account_balance
2 model name AccountBalance
No Field Type Field Type
1 id (pk) BLOB ID []byte
2 account_address BLOB AccountAddress []byte
3 block_height INTEGER BlockHeight uint32
4 spendable_balance INTEGER SpendableBalance int64
5 balance INTEGER Balance int64
6 pop_revenue INTEGER PopRevenue int64
7 latest INTEGER Latest bool
  • Node Registration

No Key Value
1 table name node_registry
2 model name NodeRegistration
No Field Type Field Type
1 id (pk) INTEGER NodeID int64
2 node_public_key BLOB NodePublicKey []byte
3 account_address BLOB AccountAddress []byte
4 registration_height INTEGER RegistrationHeight uint32
5 node_address varchar(255) NodeAddress string
6 locked_balance INTEGER LockedBalance int64
7 ququed INTEGER Queued bool
8 latest INTEGER Latest bool
9 height INTEGER Height uint32
  • Participation Score

No Key Value
1 table name participation_score
2 model name ParticipationScore
No Field Type Field Type
1 node_id (pk) INTEGER NodeID int64
2 score INTEGER Score int64
3 latest INTEGER Latest bool
4 height INTEGER Height uint32
  • Account Dataset

No Key Value
1 table name account_dataset
2 model name AccountDataset
No Field Type Field Type
1 setter_account_address BLOB SetterAccountAddress []byte
2 recipient_account_address BLOB RecipientAccountAddress []byte
3 property TEXT Property string
4 value TEXT Value string
5 is_active INTEGER IsActive bool
6 height INTEGER Height uint32
7 latest INTEGER Latest bool
  • Escrow Transaction

No Key Value
1 table name escrow_transaction
2 model name Escrow
No Field Type Field Type
1 id INTEGER ID int64
2 sender_address BLOB SenderAdress []byte
3 recipient_address BLOB RecipientAddress []byte
4 approver_address BLOB ApproverAddress []byte
5 amount INTEGER Amount int64
6 commission INTEGER Commission int64
7 timeout INTEGER Timeout uint64
8 status INTEGER Status EscrowStatus
9 instruction VARCHAR(255) Instruction string
  • Fee Vote Commitment Transaction

    No Key Value
    1 table name fee_vote_commit_vote
    2 model name FeeVoteCommitmentVote
No Field Type Field Type
1 vote_hash BLOB VoteHash []byte
2 voter_address BLOB VoterAddress []byte
3 block_height(pk) INTEGER BlockHeight uint32
  • Fee Vote Reveal Transaction

    No Key Value
    1 table name fee_vote_reveal_vote
    2 model name FeeVoteRevealVote
No Field Type Field Type
1 recent_block_hash BLOB FeeVoteInfo.RecentBlockHash []byte
2 recent_block_height VARCHAR(255) FeeVoteInfo.RecentBlockHeight uint32
3 fee_vote INTEGER FeeVoteInfo.FeeVote int64
4 voter_address BLOB VoterAddress []byte
5 voter_signature BLOB VoterSignature []byte
6 block_height(pk) INTEGER BlockHeight uint32