脉波开发者文档
  • 脉波开发者文档
  • 基础主題
    • 脉波简介
    • 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
  • Compass - 架构及模块说明
  • maintainer
  • messenger
  • Compass配置参数
  • main-config
  • Opts
  • Other
  • Compass环境与部署
  • 环境
  • 常规部署
  • Docker 部署
  • Compass二次开发 - 基于compass定义自己的路由服务
  1. 基础主題

Compass(maintainer,messenger)

Previous如何成为一个 Validator 并加入到 Atlas 网络中[高级]Next堆栈

Last updated 1 year ago

Compass - 架构及模块说明

maintainer

messenger

Compass配置参数

compass 配置参数如下

{
  "mapchain": {
    "id": "212",
    "endpoint": "http://18.142.54.137:7445",
    "from": "0xE0DC8D7f134d0A79019BEF9C2fd4b2013a64fCD6",
    "opts": {
      "mcs": "0x0ac4611305254cdd257beC56CB79CBeC720Cd02D",
      "lightnode": "0x000068656164657273746F726541646472657373",
      "http": "true",
      "gasLimit": "4000000000000",
      "maxGasPrice": "2000000000000",
      "syncIdList": "[34434]",
      "apiUrl" : "http://127.0.0.1:8080"
    }
  },
  "chains": [
    {
      "name": "pri-eth",
      "type": "ethereum",
      "id": "34434",
      "endpoint": "http://18.138.248.113:8545",
      "from": "0xE0DC8D7f134d0A79019BEF9C2fd4b2013a64fCD6",
      "opts": {
        "mcs": "0xcfc80beddb70f12af6da768fc30e396889dfce26",
        "lightnode": "0x80Be41aEBFdaDBD58a65aa549cB266dAFb6b8304",
        "http": "true",
        "gasLimit": "400000000000",
        "maxGasPrice": "200000000000",
        "syncToMap": "true"
      }
    }
  ],
  "other": {
    "monitor_url": "http:/slack...",
    "etcd": "...",
    "env": "example-compass-config"
  }
}

main-config

{
      "name": "pri-eth",                                    // 链名称
      "type": "ethereum",                                   // 链类型,具体类型参考下表
      "id": "34434",                                        // 链ID
      "endpoint": "http://18.138.248.113:8545",             // 链rpc地址
      "from": "0xE0DC8D7f134d0A79019BEF9C2fd4b2013a64fCD6"  // 用户地址,使用此地址发送交易
}
chain
type

ethereum、map

ethereum

bsc

bsc

goerli、eth

eth2

polygon

matic

near

near

klaytn

klaytn

platon

platon

conflux

conflux

Opts

{
    "mcs": "0x12345...",                                    // mcs地址
    "maxGasPrice": "0x1234",                                // 最高gasPrice
    "gasLimit": "0x1234",                                   // 最高gasLimit
    "gasMultiplier": "1.25",                                // gasPrice倍数
    "http": "true",                                         // 链接chain是否使用http
    "startBlock": "1234",                                   // 程序开始的block高度
    "blockConfirmations": "10"                              // block与链上最新的block高度相差多少
    "egsApiKey": "xxx..."                                   // apiKey,详细请查看 (https://www.ethgasstation.info/)
    "egsSpeed": "fast"                                      // gasPrice速度,例如 "average", "fast", "fastest"
    "lightnode": "0x12345...",                              // lightnode地址
    "syncToMap": "true",                                    // block是否同步到map
    "syncIdList": "[214]"                                   // map header同步到那些chain,使用chainId
    "event": "mapTransferOut(...)|depositOutToken(...)",    // mcs扫描事件                                              
}

Other

{
    "monitor_url": "http:/slack...", // 程序监控告警地址,目前支持slack
    "etcd": "...",                   // 注册中心地址,程序运行,会向此地址注册
    "env": "example-compass-config"  // 告警前缀、程序运行标识
  }

Compass环境与部署

环境

需要安装 Go 1.16+,gcc、make,需要near链的,请安装npm,登陆生成你的账户凭证,机器2C4G以上。

常规部署

  1. clone项目 https://github.com/mapprotocol/compass 到机器中

  2. cd compass && make build

  3. 通过以下命令,导入你账户的私钥,compass accounts import --privateKey key

  4. 运行 maintainer compass maintainer --blockstore ./blockStore --config ./config.json (其中blockStore为本次存储历史进度,下次运行时,会从本地读取历史进度并从此进度开始)

  5. 运行 messenger compass messenger --blockstore ./blockStore --config ./config.json

Docker 部署

  1. 通过项目下的Dockerfile文件编译,docker build -t compass:1.0.0 .

  2. 编译之后查看编译的镜像,docker images

  3. 运行镜像 docker run --name maintainer -d -e KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD -v ${你的配置文件目录}:/root/config -v ${你的账户文件目录}:/root/keys -v ${你的Near账户文件目录}:/root/.near-credentials compass:1.0.0 maintainer --config /root/config/config.json --blockstore /root/config/all/maintainer (建议blockStore目录与配置目录放在一起)

Compass二次开发 - 基于compass定义自己的路由服务

目前compass仅将生成proof部分摘除,更多后续请关注官方社区

具体请查看 https://github.com/mapprotocol/compass-sdk