比特币的数据模式会是什么样子?

How would the data schema of bitcoin look like?

既然比特币是区块链,而区块链又被描述为一种数据库,那么比特币的数据模式是怎样的呢?它是单个 table 数据库吗?如果是,此 table 中有哪些列?

The data is stored in an application-specific format optimized for compact storage, and wasn't really intended to be easily parsed by other applications. See https://bitcoin.stackexchange.com/q/10814

对于此自定义格式,请参阅 https://en.bitcoin.it/wiki/Protocol_documentation#block

有各种不同用途的数据库。作为参考客户端,我将使用 bitcoin-core 并描述其通过客户端存储的标准结构。它实际上使用 "leveldb""berkleydb-4.8" 来存储所有类型的数据。

钱包数据库

保存您的交易,生成 public/private 密钥。这通常是加密的 ;)

来源:Wallets

索引数据库

它通常是可选的,但通常会存储所有交易的列表以及它们发生在哪个区块中

阻止数据库

这是最重要的数据库,通过网络在本地存储和共享,以交流新创建的块并验证它们。每个客户都有它的复制版本。

它们通常存储曾经出现过的所有区块,也包括分叉区块和废弃区块。

来源:Blockchain / Transactions

同行数据库

显然还有一个数据库,用于您过去见过的所有同行。它通过给它一个禁令分数来评价每个点,存储它们的 IP 地址、端口和最后看到的状态。

结论:

那将是所有数据库。他们大多有 "一个 table",其中完全包括前面描述的数据结构。

可以在此处找到有关 p2p network structure 的更多信息。