DxChain Wiki
  • 👋Welcome to DxChain!
    • About $DX
    • About DxChain V3
    • Important Links
    • Project Updates
  • 📝The Basics
    • 📖DxChain V3 LitePaper
      • Notice
      • 1. Background
      • 2. Introduction
      • 3. The Ecosystem Powered by DxChain 3.0
      • 4. DxChain Design Principles & Architecture
        • 4.1 Fully Compatible with EVM
        • 4.2 DPoS Consensus Algorithm
        • 4.3 Cross Chain
        • 4.4 API Layer
        • 4.5 Blacklist Management
        • 4.6 P2P Decentralized Network Layer
        • 4.7 MPT + LevelDB
        • 4.8 Ellipse Curve Digital Signature Algorithm
      • 5. Economic system
      • 6. Governance
      • 7. Roadmap
      • 8. Follow Us
      • 9. Reference
      • 10. Risk Warning
  • 🪙Stake and Trade
    • About DX DPoS
    • How to Earn DX
    • Stake on DxChain
      • DxChain V3 Staking
      • Wallet
      • Consensus
      • How to Stake
    • Develop on DxChain
      • Compile and Run
      • On-chain Interaction
        • DPoS API
      • Smart Contract
      • Private Chain Construction
      • Genesis Block
      • Parameters Table
      • Mainnet
      • Testnet
      • Participate as Validator
    • Trade on DxChain
      • Cross Chain Bridge
  • ⛏️Liquidity Mining
    • Introduction of DxFarm
      • Functions
    • Tutorial
  • 🎙️Media Press
  • 🌏中文社区
    • 📙DxChain新人手册
    • 📜DxChain V3技术文档
      • 1. 背景
      • 2. 简介
      • 3. DxChain 3.0赋能的生态系统
      • 4. 技术的设计原理与架构
        • 4.1 全面兼容EVM
        • 4.2 DPOS共识机制
        • 4.3 跨链
        • 4.4 接口层
        • 4.5 严格的黑名单管理
        • 4.6 P2P分布式网络层
        • 4.7 MPT + LevelDB
        • 4.8 椭圆曲线数字签名算法
      • 5. 经济系统
      • 6. 社区治理
      • 7. 在社交媒体上与我们互动
      • 8. 参考文献
      • 9. 风险提示
      • 免责声明
    • ⛓️重要链接
    • 💻开发者文档
      • 关于DxChain 3.0
      • 钱包
      • 共识
      • 创世块
      • 开发者
        • 编译和运行
        • 链上交互
          • DPoS API
        • 智能合约
        • 私链搭建
        • 主网
        • 测试网
      • 参与区块验证
      • 参数表
    • 💎「DX V3去中心化质押」
      • 质押投票
        • 1)连接钱包
        • 2)进行投票
          • 可能出现的问题
        • 3)领取奖励
        • 4)取消投票
      • 成为节点
        • 1)部署节点
        • 2)申请节点
        • 3)同意节点
        • 4)成为节点
        • 5)取消节点
        • 6)恢复节点
      • 测试环境
    • 💎「DX V3托管社区」
      • 托管社区FAQ
      • 矿机节点
        • 1)进行投票
        • 2)领取奖励
        • 3)取消投票
      • 超级节点
        • 1)成为超级节点
        • 2)修改奖励比例和质押数
        • 3)查看节点托管费用
        • 4)查看节点收益
        • 5)恢复/取消节点
    • 💡骆驼小课堂
      • 🪙USDT是什么?
      • 🪙什么是币币交易?
      • 🪙如何支付节点托管费用?
      • 💬如何加入DxChain全球社区
      • 🌉【跨链桥】进行了跨链交易但不到账
      • 📱DxChain3.0测试教程
      • 🧬区块链的共识机制
      • 🔐私钥/助记词是什么
      • 🌉什么是区块链的跨链技术
    • 🪧社区布告
      • 节点托管收费细则
      • DxChain V3节点公告
      • 「提现白名单」功能上线公告
      • DX关于热钱包使用安全的公告
      • DX关于Coinbase钱包支持DX-ERC20的公告
Powered by GitBook
On this page

Was this helpful?

  1. 中文社区
  2. DxChain V3技术文档
  3. 4. 技术的设计原理与架构

4.7 MPT + LevelDB

Previous4.6 P2P分布式网络层Next4.8 椭圆曲线数字签名算法

Last updated 2 years ago

Was this helpful?

DxChain使用了MPT树(Merkle Patricia Trie)作为数据组织形式,不仅可用来组织并管理用户的账户状态、交易信息、区块信息等重要数据,还能达到区块链数据高性能存储、不可篡改的目的。MPT是一种加密认证的数据结构,它融合了Merkle树和Trie树(前缀树)两种数据类型的优点。在MPT树中,数据节点的Key值通常存储着从根节点到Value所在子节点的路径。

在DxChain中,该Key值由节点数据的RLP编码(Recursive length prefix encoding,递归长度前缀编码)的SHA3散列值产生,Value值由节点数据的RLP编码产生,整个MPT树的数据存储在内置LevelDB数据库中。想要获得一个数据节点的内容,只需要根据该数据节点的散列值访问数据库以获得节点的RLP编码,然后进行RLP解码即可。

结合Merkle树的优点,MPT树允许区块的数据零散的传送,避免固定顺序传送带来的传输效率低下,允许节点从不同的P2P节点同步区块数据,确保来自不同源同步数据的准确性。同时由于MPT树是自下向上扩散的结构,如果节点数据被恶意篡改,MPT树中该数据节点后的所有节点数据都将发生偏差,DxChain区块验证机制将无法验证该区块数据,并不会记录在区块链网络中,以此防止恶意区块的产生。

下图展示了一个MPT树的底层节点数据被篡改后,自它以上的节点数据散列值都将存在偏差。

🌏
📜
图9:交易数据篡改前后的MPT树