脉波开发者文档
  • 脉波开发者文档
  • 基础主題
    • 脉波简介
    • MAPO币
    • 全链去中心化应用
    • 全链应用与单链或多链应用的区别
    • 第三方信任跨链与点对点跨链方案区别
    • 比特币二层
      • brc-201
    • 预言机 Oracle
      • Supra: MAP Protocol 上的去中心化预言机
    • 帐户
    • 交易
    • 区块
    • MPT树
    • RLP编码
    • Gas费用
    • 消息跨链
    • 轻客户端
      • MAPO轻客户端
    • 全链开发组件层MOS
      • MOS接口和功能
      • MOS的部署
      • Messenger
    • 中继链(atlas)
      • 节点架构
        • 中继链(atlas)架构 - 区块和交易结构
        • 创世
          • 创世配置 - 介绍创世配置文件
          • 创世合约
            • ABI
              • Accounts
              • Election
              • EpochRewards
              • LockedGold
              • Validators
            • 地址
            • 部署
        • 预编译合约 - 支持的预编译合约
        • 协议
          • Proof of Stake
          • 共识
          • 选举
          • 奖励
          • 治理
      • 部署节点 - 包括公共RPC节点
        • 运行节点(中继链)
        • 归档节点(中继链)
        • 引导节点(中继链)
        • 验证节点 (中继链)
        • RPC节点(中继链)
      • Marker工具 - atlas的简易客户端工具
        • Genesis
        • Validator
        • Vote
        • Common
      • 搭建私有网络
      • 公共网络服务信息
        • 公共网络
      • 示例
        • 如何成为一个 Validator 并加入到 Atlas 网络中
        • 如何成为一个 Validator 并加入到 Atlas 网络中[高级]
    • Compass(maintainer,messenger)
      • Compass - 架构及模块说明
      • Compass配置参数
      • Compass环境与部署
      • Compass二次开发 - 基于compass定义自己的路由服务
  • MAPO技术堆栈
    • 堆栈
      • 接入的链
    • EVM兼容
      • 智能合约语言
      • 智能合约结构
      • 智能合约库
      • 编译智能合约
      • 测试智能合约
      • 部署智能合约
      • 可组合性
      • 智能合约安全性
      • 智能合约形式化验证
      • 开发框架
      • 开发网络
    • 实现跨链互通
      • EVM兼容链的跨链互通
        • 轻客户端验证
        • 轻客户端状态更新
        • MOS层
      • 非EVM兼容链的跨链互通
        • 轻客户端验证
        • 轻客户端状态更新
        • MOS层
    • 如何开发全链应用
    • 轻客户端信息
    • SDK/API - mapo支持的API
      • MOS接口
      • 轻客户端接口
      • 中继链RPC
        • json-rpc
          • atlas json rpc
          • atlas consensus rpc
        • javaScript sdk
        • go-sdk
      • 后端API
        • 浏览器API
        • 数据统计与分析API
  • 零知识证明(zk)
    • 零知识证明
Powered by GitBook
On this page
  • Atlas BlockChain
  • 共识机制
  • 网络层
  1. 基础主題

中继链(atlas)

PreviousMessengerNext节点架构

Last updated 1 year ago

Atlas 是 MAPO Protocol中的Mapo-Relay-Chain的名字,它是一条EVM(Ethereum Virtual Machine)兼容的区块链,一种开放的加密协议,允许应用程序以安全和去中心化的方式进行交易并运行智能合约。Atlas 区块链代码与以太坊有着共同的祖先,并保持智能合约的完全 EVM 兼容性。然而,它使用拜占庭容错(BFT)共识机制(权益证明)而不是工作量证明,并且具有不同的块格式、交易格式以及天然气支付和定价机制。Atlas主要基于节点实现。Atlas兼容EVM,支持web3.js,remix,hardhat等应用开发工具。

其主要模块如下:

Atlas BlockChain

Atlas节点的区块链(BlockChain)是atlas区块链的本地数据库,是一个包含区块、交易、账户状态和配置信息的数据库。这个数据库不仅支持数据的持久化存储,还支持高效的数据查询和更新,以确保节点能够与atlas网络保持同步、处理交易和执行智能合约。它是atlas网络的核心数据存储组件,用于存储整个区块链的数据,。

  • 区块链数据库是 Atlas 节点的核心组件之一,它负责存储整个atlas区块链的数据,且数据库以 LevelDB 作为后端存储引擎,用于高效地管理和检索区块链数据。

  • 区块是atlas区块链中的基本数据单元。每个区块包含了一定数量的交易、时间戳、父区块的哈希等信息。这些区块按照时间顺序链接在一起,形成区块链。更多信息请。

  • 交易是区块中包含的一系列交易,这些交易包括了atlas网络中的价值转移和智能合约调用。每个交易都有发送者、接收者、数额、智能合约调用数据等信息。更多信息请。

  • 状态存储是一个关键的数据结构,它跟踪了atlas区块链中每个账户的状态。这包括账户的余额、智能合约代码、存储数据等。状态存储是基于MPT(Merkle Patricia Trie)树的数据结构实现的,用于高效地检索和更新账户状态。

  • 交易池是 atlas 节点维护的一个缓冲区,用于存储待处理的交易。交易池中的交易等待被打包到新的区块中。

  • 账户:区块链数据库存储了所有atlas账户的信息。这包括外部账户(由私钥控制)和智能合约账户(由智能合约代码控制)。更多信息请.

  • 账户状态是账户的当前状态,包括余额、智能合约代码、存储数据和其他相关信息。账户状态是状态存储的一部分。

  • 区块链索引:为了提高查询性能,atlas 节点通常会创建各种索引,例如交易索引、日志索引、账户余额索引等。这些索引允许快速检索特定数据而无需扫描整个区块链。

共识机制

Atlas区块链采用的共识机制是 IBFT(Istanbul Byzantine Fault Tolerance),这是一种 BFT(拜占庭容错)共识算法的变体。IBFT 是 Atlas 区块链的共识层,是基于权益证明(PoS)和拜占庭容错的原理,旨在确保网络的去中心化和安全性。拜占庭容错是指系统能够继续正常运行,即使其中的一部分节点出现了错误或恶意行为;Atlas共识层主要由BFT协议和一组共同组成。以下是对 Atlas 的 IBFT 共识机制以及与 Atlas 系统合约的内容和功能的详细解释。

IBFT 共识机制:

IBFT 共识机制的核心思想是,一组验证人(validators)负责验证交易和生成新的区块。这些验证人被选中并有权参与共识过程。共识的核心是投票机制,其中每个验证人对区块的有效性进行投票。只有在获得足够多的验证人的认可时,新的区块才能被接受。这种方法确保了快速终结(Fast Finality),一旦达成共识,区块和交易就被确认,无需等待多个确认块。

  • 投票机制: IBFT 共识使用投票机制来达成共识。验证人在区块的有效性上进行投票,包括验证交易和确定下一个区块的提议者。这种投票机制有助于防止拜占庭式错误,确保共识的可靠性(一个validator一票)。

  • 快速终结: IBFT 共识允许快速终结(Fast Finality),这意味着一旦达成共识,交易就会立即被确认,而无需等待多个区块的确认。

  • 去中心化: IBFT 共识机制通过轮流产生区块的方式保持了去中心化,没有单一的中心节点负责生成所有区块。

系统合约:

Atlas系统合约是一组智能合约,用于管理和控制 Atlas 区块链的各个方面。以下是一些重要的 Atlas 系统合约以及它们的功能:

  • Election合约: Election 合约定义了验证人选举的规则,包括验证人候选人的资格、选举时间表和相关参数。它与 IBFT 共识机制紧密相关,因为它确定了哪些验证人有资格参与共识。

  • LockedGold 合约: LockedGold 合约管理用户的抵押品,这些抵押品被用于参与网络治理、验证工作和其他目的。它与 IBFT 共识机制有关,因为它确保了验证人有足够的抵押品来履行他们的职责。

  • Governance合约: Governance 合约支持 Atlas 社区的治理。持有者可以通过治理合约参与投票,提出和批准提案,以影响网络的规则和参数。这些提案可能会与 IBFT 共识机制相关,如改变验证人列表或共识规则。

总的来说,Atlas 的 IBFT 共识机制确保网络的安全性和共识,而 Atlas 系统合约定义了网络的规则、治理、抵押品管理等方面的功能。这两者共同构建了 Atlas 区块链共识机制,支持稳定币系统和去中心化金融应用的发展。

网络层

Atlas 的网络层负责与Atlas网络中的其他节点通信。它使用 以太坊的P2P模块来传输数据和消息。网络层允许节点之间进行握手、交换区块、交易和状态信息,允许节点在网络中广播、接收和处理消息,以保持整个网络的同步。

Validator验证人: Atlas 区块链中的验证人是网络参与者,负责生成区块和验证交易。他们被选中并有权产生新的区块。Atlas通过在系统合约中并通过共识算法选出一组验证人,这些验证人轮流产生区块。

geth
参考
参考
参考
系统合约
质押