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.6 P2P分布式网络层

Previous4.5 严格的黑名单管理Next4.7 MPT + LevelDB

Last updated 2 years ago

Was this helpful?

P2P网络技术在区块链中常用来用于不同的节点之间的通信与信息互换。本质上,P2P网络是一种网络覆盖层(overlay network),建立在公开互联网之上。P2P网络从数学的角度可以看做一个有向图,每一台计算机都是网络中的对等节点。如图所示,在理想情况下,所有的对等节点之间至少存在一条路径可以实现网络通信,但因为每个节点对网络拓扑和其他对等节点只有一个不完整的视图,所以网络覆盖层需要中间节点将消息转发至正确目的。图的连通性性质确保了即使存在对等节点改变,整个P2P网络也可以迅速恢复通信能力。对每个对等节点来说,图的连通性通过与其他对等节点的邻接关系来反映。当对等节点加入或者离开网络,邻接的对等节点可能会持有不正确的邻接信息,因此需要网络覆盖层维护机制(Overlay maintenance mechanisms)保存更新的邻接信息,使得所有节点间保持连通性。

DxChain使用了名为Kademlia(分布式哈希表技术)的覆盖层维护机制,实现了对等节点发现协议(RLPx节点发现协议)。每一个区块链节点都配备有一个enodeID,作为区块链网络中的自身节点标识。除此之外,为了发现网络中新的对等节点,每个区块链对等节点都拥有一个包含256个不同节点的节点集合,每个集合 i 中存储与本节点距离在 2i-1 到 2i 之间的16个节点。DxChain节点选择自己作为目标x,从集合中寻找到16个与目标x最近的节点,之后请求这16个节点,让它们从各自的节点集合中各找出16个与目标x“更近”的节点,如此会得到最多16x16个新发现的节点,重复上述流程,直至没有新的节点发现为止。

同样,当DxChain节点加入或者退出区块链网络时,Kademlia可以迅速进行网络维护,确保所有节点可以在网络中以最优路径和其他节点通信。当建立好对等节点的连接之后,DxChain节点通过加密和认证的TCP连接与其他对等节点之间交换区块链信息,其中包含不同类型交易的广播、区块产生的广播、节点间的数据同步等,确保所有的节点维护同一套区块链账本,以此达到区块链网络中节点信息的一致性。

🌏
📜
图8:P2P网络的有向图