美文网首页
以太坊账本存储探秘

以太坊账本存储探秘

作者: golang推广大使 | 来源:发表于2018-11-08 00:52 被阅读0次

以太坊中的一些键的构成

前一篇文章介绍了超级账本fabric的区块存储,其中有部分是索引数据库,其中索引的key非常有规律。写完后自己好奇以太坊是否有类似的东西,所以就翻看了以太坊的代码,发现了类似的东西。

go-ethereum/rawdb/schema.go中定义了以下几个全局变量,用于构造组合键

变量 备注
headHeaderKey []byte("LastHeader")
headBlockKey []byte("LastBlock")
headFastBlockKey []byte("LastFast") 存放hash至
fastTrieProgressKey []byte("TrieSync")
headerPrefix []byte("h") "h"+num(uint64 big endian)+hash ->headerKey 存放区块header的rlp编码
headerTDSuffix []byte("t") headerKey+"t"->headerTDKey 存放一个区块高度big.Int值的rlp编码
headerHashSuffix []byte("n") "h" + num(uint64 big endian)+ headerHashSuffix -> headerHashKey 存放区块hash值
headerNumberPrefix []byte("H") headerNumberPrefix + hash -> headerNumberKey 存放区块头编号的大端字节编码
blockBodyPrefix []byte("b") "b"+num(uint64 big endian)+hash->blockBodyKey 存放区块body的rlp编码值
blockReceiptsPrefix []byte("r") "r" +num(uint64 big endian)+hash 存放receipts切片的rlp编码
txLookupPrefix []byte("l") txLookupPrefix + hash-> 存放一个TxLookupEntry值的rlp编码
bloomBitsPrefix []byte("B") bloomBitsPrefix + bit (uint16 big endian) + section (uint64 big endian) + hash->
preimagePrefix []byte("secure-key-") preimagePrefix + hash -> preimage
configPrefix []byte("ethereum-config-") db配置的前缀
BloomBitsIndexPrefix []byte("iB")
databaseVerisionKey []byte("DatabaseVersion")
type TxLookupEntry struct {
    BlockHash  common.Hash
    BlockIndex uint64
    Index      uint64
}

未完待续

相关文章

  • 以太坊账本存储探秘

    以太坊中的一些键的构成 前一篇文章介绍了超级账本fabric的区块存储,其中有部分是索引数据库,其中索引的key非...

  • 探秘以太坊

    一、智能合约 智能合约的英文是“Smart Contract”。首先,它是个合同,与所有合同一样,它规定了合同双方...

  • Swarm和Whisper是什么鬼?

    以太坊的智能合约smart contract实现了分布式逻辑,以太坊的Swarm实现了分布式存储,以太坊的Whis...

  • 以太坊扩展-Quorum简介

    以太坊联盟链 以太坊公链很多人都很熟悉,说到联盟链,一般都会想到超级账本-Hyperledger。这里介绍下,基于...

  • 超级账本hyperledger fabric词汇汇总

    最近在学习超级账本,概念名词以及架构都比 比特币、以太坊、EOS复杂。整理一下超级账本的词汇。 下面是超级账本的词...

  • 基于以太坊发行token(代币)

    以太坊钱包同步区块导致C盘存储空间不足的解决办法以太坊钱包Ethereum wallet怎么删除/新建钱包账户通过...

  • 今日资讯

    账户和合约存储数据的方式是影响以太坊的众多问题之一。以太坊协议选用了 Merkle Patricia Tree(M...

  • 以太坊轻客户端

    以太坊轻客户端 以太坊轻客户端会下载区块头,同时利用DHT的节点请求partircia node数据来代替硬件存储...

  • 以太坊白皮书中去中心化存储是要存储啥宝贝?

    以太坊白皮书中去中心化存储是要存储啥宝贝? 以太坊白皮书是这样讲的: “在过去的几年里出现了一些大众化的在线文件存...

  • 以太坊

    介绍 1.以太坊网络设计用于交易,存储,运行应用。2.以太坊网络由大量节点构成(去中心话网络)。3.每个节点都存在...

网友评论

      本文标题:以太坊账本存储探秘

      本文链接:https://www.haomeiwen.com/subject/ubibxqtx.html