Burstcoin 区块链技术信息
Burstcoin 区块链是数字分类账账,其中 Burstcoin 交易按时间顺序和公开方式记录(包括智能合约、代管、消息等)。 所有这些信息都存储在 H2 或 MariaDB 数据库中。 使用数据清理将Burstcoin的区块链保持在合理的大小。
所有区块链数据存储在以下数据库表中:
座桌
这 19 个字段定义了当前版本的 Burstcoin 软件中的块。 请注意,块表自起源块以来已经演变。
Field Name | Data Type | NOT NULL |
---|---|---|
db_id | BIGINT(20) | yes |
id | BIGINT(20) | yes |
version | INTEGER(11) | yes |
timestamp | INTEGER(11) | yes |
previous_block_id | BIGINT(20) | no |
total_amount | BIGINT(20) | yes |
total_fee | BIGINT(20) | yes |
payload_length | INTEGER(11) | yes |
generator_public_key | VARBINARY(32) | yes |
previous_block_hash | VARBINARY(32) | no |
cumulative_difficulty | BLOB | yes |
base_target | BIGINT(20) | yes |
next_block_id | BIGINT(20) | no |
height | INTEGER(11) | yes |
generation_signature | VARBINARY(64) | yes |
block_signature | VARBINARY(64) | yes |
payload_hash | VARBINARY(32) | yes |
nonce | BIGINT(20) | yes |
ats | BLOB | ? |
注意:自起源块以来,块表已经演变。
注意:大多数字段不能为 NULL。 例外是 previous_… 和 next_… 块将块链接成向前和向后链的字段。 创世块具有NULL previous_block_id 并且最后一个(当前)块具有NULL next_block_id.
列列表下方是索引列表。 索引全部用于对各种列进行排序以进行快速检索,但以下列也被限制为具有唯一值: db_id, height, id, timestamp. 它们全部用于唯一地识别块。 db_id 是表格的自动递增字段。 通常每个新块增加一个,但是由于偶尔会删除块,因此序列中可能会出现间隙。 height 对于创世块,它为零,并且每个块增加一。 此序列中没有间隙。 id 是从某些区块字段的哈希值派生的唯一区块ID。 时间戳是自创世块以来经过的秒数来衡量的块创建时间。
注意:存储在 BLOCK
表与存储在 transaction
表通过字段 payload_length 和 payload_hash, 和 total_amount 和 total_fee. payload_length 是与该块关联的所有事务的某些字段的字节总数,并且 payload_hash 是所有这些字段的哈希。 total_amount 和 total_fee 是与该区块关联的所有交易的总金额和费用。 当没有与块关联的事务时,这四个块字段都为零。
交易记录表
这 25 个字段定义当前版本的 Burstcoin 软件中的事务。 请注意,事务表自起源块以来已经演变。
Field Name | Data Type | NOT NULL |
---|---|---|
db_id | BIGINT(20) | yes |
id | BIGINT(20) | yes |
deadline | SMALLINT(6) | yes |
sender_public_key | VARBINARY(32) | yes |
recipient_id | BIGINT(20) | no |
amount | BIGINT(20) | yes |
fee | BIGINT(20) | yes |
height | INTEGER(11) | yes |
block_id | BIGINT(20) | yes |
signature | VARBINARY(64) | yes |
timestamp | INTEGER(11) | yes |
type | TINYINT(4) | yes |
subtype | TINYINT(4) | yes |
sender_id | BIGINT(20) | yes |
block_timestamp | INTEGER(11) | yes |
full_hash | VARBINARY(32) | yes |
referenced_transaction_full_hash | VARBINARY(32) | no |
attachments_bytes | BLOB | no |
version | TINYINT(4) | yes |
has_message | BOOLEAN(1) | yes |
has_encrypted_message | BOOLEAN(1) | yes |
has_public_key_announcement | BOOLEAN(1) | yes |
ec_block_height | INTEGER(11) | no |
ec_block_id | BIGINT(20) | no |
has_encrypttoself_message | BOOLEAN(1) | yes |
注意:大多数字段不能为 NULL。 例外是 recipient_id, referenced_transaction_full_hash, attachments_bytes, 和 ec_block_… 领域. 事务在未指定任何这些字段的情况下有效。
列列表下方是索引列表。 索引全部用于对各种列进行排序以进行快速检索,但以下列也被限制为具有唯一值: db_id, id, full_hash.
注意: 交易存储在 transaction 表与存储在 block 通过字段表 height, block_id, 和 block_timestamp.
上面的图中列出了所有其他表(包含字段名称和数据类型)。
