Injective | Documentation
InjectiveGithub
Injective | 中文文档
Injective | 中文文档
  • 关于 Injective
  • 快速入门
    • 钱包
      • 创建钱包
      • 账户
      • 质押
      • 治理
      • 拍卖
    • 代币标准
      • INJ 代币
      • Token Factory
      • CW20 标准
    • 交易
      • Gas 和 Fees
  • 指南
    • 创建钱包
    • 桥接
      • From Ethereum
      • Using Wormhole
      • Using IBC
      • From Solana
    • 发布代币
    • 发布市场
    • Denom 元数据
    • 获取INJ
  • 工具包
    • injectived
      • 安装 injectived
      • 使用 injectived
      • 指令
    • Injective TS SDK
    • Injective Go SDK
    • Injective Python SDK
    • Injective CW SDK
    • The Graph
  • 参考
  • 术语表
  • 开发者
    • 快速入门
      • 指南
        • 测试网提案
        • 转换地址
        • 计算
          • 最低价格刻度
          • 最低数量刻度
    • 交易所开发者
      • 构建 DEX
      • 预言机提供方
    • Cosmwasm 开发者
      • 您的首个智能合约
      • 指南
        • 本地开发
        • 主网开发
        • 给部署地址白名单
        • 创建您的 Swap 合约
        • 创建 UIs
      • CW20 适配器
      • Injective Test Tube
    • 模块
      • Injective
        • 拍卖(Auction)
          • State
          • 消息
          • EndBlock
          • 事件
          • 参数
        • 交易所(Exchange)
          • 衍生品市场概念
          • 现货市场概念
          • 二元期权市场概念
          • 其他概念
          • 状态
          • 状态转换
          • 消息
          • 提案
          • BeginBlock
          • EndBlock
          • 事件
          • 参数
          • MsgPrivilegedExecuteContract
        • 保险(Insurance)
          • 状态
          • 状态转换
          • 消息
          • EndBlock
          • 事件
          • 参数
          • 改进
        • OCR
          • 概念
          • 状态
          • 消息
          • 提案
          • BeginBlock
          • 钩子(Hooks)
          • 事件
          • 参数
        • 预言机(Oracle)
          • 状态
          • Keeper
          • 消息
          • 提案
          • 事件
          • 改进
        • Peggy
          • 定义
          • 工作流
          • 状态
          • 消息
          • 处罚
          • EndBlock
          • 事件
          • 参数
          • 中继语义
          • 改进
        • 权限(Permissions)
          • 概念
          • 状态
          • 状态转换
        • 代币工厂(TokenFactory)
          • 概念
          • 状态
          • 消息
          • 事件
          • 参数
        • WasmX
          • 概念
          • 数据
          • 提案
          • 消息
          • 参数
      • 核心
        • Auth
        • AuthZ
        • 银行(Bank)
        • 共识(Consensus)
        • 危机(Crisis)
        • 分发(Distribution)
        • 证据(Evidence)
        • 费用授权(Feegrant)
        • 治理(Gov)
        • 群组(Group)
        • 铸造(Mint)
        • NFT
        • 参数(Params)
        • 惩罚(Slashing)
        • 质押(Staking)
        • 升级(Upgrade)
        • Circuit
        • Genutils
    • dApps 开发文档
  • 节点
    • 快速入门
      • 和节点交互
      • 运行节点
        • 设置密钥环
        • 加入网络
        • Cosmovisor
        • 升级您的节点
    • 验证者
      • 主网
        • Peggo
        • 规范链升级
          • Upgrade to 10002-rc1
          • Upgrade to 10002-rc2
          • Upgrade to 10003-rc1
          • Upgrade to 10004-rc1
          • Upgrade to 10004-rc1-patch
          • Upgrade to 10005-rc1
          • Upgrade to 10006-rc1
          • Upgrade to 10007-rc1
          • Upgrade to 10008 - Camelot
          • Upgrade to 10009
          • Upgrade to v1.10
          • Upgrade to v1.11
          • Upgrade to v1.12.0 - Volan
          • Upgrade to v1.12.1
          • Upgrade to v1.13.0 - Altaris
          • Upgrade to v1.13.2
          • Upgrade to v1.13.3
          • Upgrade to v1.14.0
          • Upgrade to v1.14.1
      • 测试网
        • 测试网 Peggo
    • 公共端点
    • 高级端点
    • Injective 索引器设置
  • 交易员
    • 快速入门
    • 文档
    • API 参考
  • 常用链接
    • Injective 101
    • Injective Hub
    • Injective 浏览器
    • Chain API Reference
    • Indexer API Reference
    • 测试网水龙头
Powered by GitBook
On this page
  • 步骤 1:配置 .env
  • 管理Peggo的以太坊密钥
  • Injective 配置
  • 为发送Injective交易创建您的委托Cosmos密钥
  • 为peggo管理Cosmos账户密钥
  • 步骤 2:注册您的协调器和以太坊地址
  • 步骤 3:启动中继节点
  • 步骤 4:创建Peggo systemd服务
  • 步骤 5:(可选)保护Cosmos密钥环免受未授权访问
  • 贡献
Export as PDF
  1. 节点
  2. 验证者
  3. 主网

Peggo

如果您在此页面,您很可能已经成为Injective的验证者。恭喜您!配置peggo是您设置的最后一步。

peggo的.env示例:

PEGGO_ENV="local"         # environment name for metrics (dev/test/staging/prod/local)
PEGGO_LOG_LEVEL="debug"   # log level depth

PEGGO_COSMOS_CHAIN_ID="injective-1"           # chain ID of the Injective network
PEGGO_COSMOS_GRPC="tcp://localhost:9090"      # gRPC of your injectived process
PEGGO_TENDERMINT_RPC="http://localhost:26657" # Tendermint RPC of your injectived process

# Note: omitting PEGGO_COSMOS_GRPC and PEGGO_TENDERMINT_RPC enables stand-alone peggo mode. In this mode,
# peggo is connected to load balanced endpoints provided by the Injective network. This decouples peggo's connection from your injectived process.

# Injective config
PEGGO_COSMOS_FEE_DENOM="inj"            # token used to pay fees on Injective
PEGGO_COSMOS_GAS_PRICES="160000000inj"  # default --gas-prices flag value for sending messages to Injective
PEGGO_COSMOS_KEYRING="file"             # keyring backends ("os", "file", "kwallet", "memory", "pass", "test")
PEGGO_COSMOS_KEYRING_DIR=               # path to your keyring dir
PEGGO_COSMOS_KEYRING_APP="peggo"        # arbitrary name for your keyring app
PEGGO_COSMOS_FROM=                      # account address of your Validator (or your Delegated Orchestrator)
PEGGO_COSMOS_FROM_PASSPHRASE=           # keyring passphrase
PEGGO_COSMOS_PK=                        # private key of your Validator (or your Delegated Orchestrator)
PEGGO_COSMOS_USE_LEDGER=false

# Ethereum config
PEGGO_ETH_KEYSTORE_DIR=               # path to your Ethereum keystore
PEGGO_ETH_FROM=                       # your Ethereum address (must be Delegated Ethereum address if you're a Validator)
PEGGO_ETH_PASSPHRASE=                 # passphrase of your Ethereum keystore
PEGGO_ETH_PK=                         # private key of your Ethereum address
PEGGO_ETH_GAS_PRICE_ADJUSTMENT=1.3    # suggested Ethereum gas price will be adjusted by this factor (Relayer)
PEGGO_ETH_MAX_GAS_PRICE="500gwei"     # max gas price allowed for sending Eth transactions (Relayer)
PEGGO_ETH_CHAIN_ID=1                  # chain ID of Ethereum network
PEGGO_ETH_RPC="http://localhost:8545" # RPC of your Ethereum node
PEGGO_ETH_ALCHEMY_WS=""               # optional websocket endpoint for listening pending transactions on Peggy.sol
PEGGO_ETH_USE_LEDGER=false 

# Price feed provider for token assets (Batch Creator)
PEGGO_COINGECKO_API="https://api.coingecko.com/api/v3"

# Relayer config
PEGGO_RELAY_VALSETS=true                      # set to `true` to relay Validator Sets
PEGGO_RELAY_VALSET_OFFSET_DUR="5m"            # duration which needs to expire before a Valset is eligible for relaying 
PEGGO_RELAY_BATCHES=true                      # set to `true` to relay Token Batches
PEGGO_RELAY_BATCH_OFFSET_DUR="5m"             # duration which needs to expire before a Token Batch is eligible for relaying
PEGGO_RELAY_PENDING_TX_WAIT_DURATION="20m"    # time to wait until a pending tx is processed

# Batch Creator config
PEGGO_MIN_BATCH_FEE_USD=23.2  # minimum amount of fee a Token Batch must satisfy to be created

# Metrics config
PEGGO_STATSD_PREFIX="peggo."
PEGGO_STATSD_ADDR="localhost:8125"
PEGGO_STATSD_STUCK_DUR="5m"
PEGGO_STATSD_MOCKING=false
PEGGO_STATSD_DISABLED=true

重要提示:如果您正在运行自己的injectived(Injective节点)和geth(以太坊节点)进程,请确保它们与最新状态同步。过时的节点可能会导致peggo的业务逻辑出现问题,有时会显示“误报”日志。

步骤 1:配置 .env

# official Injective mainnet .env config 
mkdir ~/.peggo
cp mainnet-config/10001/peggo-config.env ~/.peggo/.env
cd ~/.peggo

管理Peggo的以太坊密钥

Peggo支持两种提供签名密钥凭证的选项——使用Geth密钥库(推荐)或提供明文以太坊私钥。

geth account new --datadir=/home/ec2-user/.peggo/data/

INFO [03-23|18:18:36.407] Maximum peer count                       ETH=50 LES=0 total=50
Your new account is locked with a password. Please give a password. Do not forget this password.
Password:
Repeat password:

Your new key was generated

Public address of the key:   0x9782dc957DaE6aDc394294954B27e2118D05176C
Path of the secret key file: /home/ec2-user/.peggo/data/keystore/UTC--2021-03-23T15-18-44.284118000Z--9782dc957dae6adc394294954b27e2118d05176c

- You can share your public address with anyone. Others need it to interact with you.
- You must NEVER share the secret key with anyone! The key controls access to your funds!
- You must BACKUP your key file! Without the key, it's impossible to access account funds!
- You must REMEMBER your password! Without the password, it's impossible to decrypt the key!

确保遵循geth提供的警告,特别是在备份您的密钥文件时,以免不小心丢失密钥。我们还建议在您的密码短语中不要使用任何引号或反引号字符,以确保与peggo的兼容性。

# example values, replace with your own
PEGGO_ETH_KEYSTORE_DIR=/home/ec2-user/.peggo/data/keystore
PEGGO_ETH_FROM=0x9782dc957DaE6aDc394294954B27e2118D05176C
PEGGO_ETH_PASSPHRASE=12345678

然后确保您的以太坊地址中有足够的ETH。

选项 2. 以太坊私钥(不安全) 只需将PEGGO_ETH_PK更新为来自新账户的以太坊私钥即可。

Injective 配置

为发送Injective交易创建您的委托Cosmos密钥

您的peggo协调器可以:

  • 使用专门的委托账户密钥来发送特定于验证者的Peggy交易(即ValsetConfirm、BatchConfirm和SendToCosmos交易);或

  • 直接使用您的验证者账户密钥(“您的验证者就是您的协调器”)

出于隔离的考虑,我们建议创建一个委托的Cosmos密钥来发送Injective交易,而不是使用您的验证者账户密钥。

要创建一个新密钥,请运行:

injectived keys add $ORCHESTRATOR_KEY_NAME

然后确保您的协调器INJ地址中有足够的INJ余额,以便peggo协调器可以向Injective发送消息。 要获取您的协调器INJ地址,请运行:

injectived keys list $ORCHESTRATOR_KEY_NAME

您可以使用以下命令将INJ从您的验证者账户转账到协调器地址:

injectived tx bank send $VALIDATOR_KEY_NAME  $ORCHESTRATOR_INJ_ADDRESS <amount-in-inj> --chain-id=injective-1 --keyring-backend=file --yes --node=tcp://localhost:26657 --gas-prices=500000000inj

示例

injectived tx bank send genesis inj1u3eyz8nkvym0p42h79aqgf37gckf7szreacy9e 20000000000000000000inj --chain-id=injective-1  --keyring-backend=file --yes --node=tcp://localhost:26657 --gas-prices=500000000inj

然后,您可以通过运行以下命令验证您的协调器账户是否有INJ余额:

injectived q bank balances $ORCHESTRATOR_INJ_ADDRESS

为peggo管理Cosmos账户密钥

Peggo支持两种提供Cosmos签名密钥凭证的选项——使用Cosmos密钥环(推荐)或提供明文私钥。

选项 1. Cosmos 密钥环

在.env文件中,首先指定对应您peggo账户签名密钥的PEGGO_COSMOS_FROM和PEGGO_COSMOS_FROM_PASSPHRASE。 如果您按照上述推荐使用委托账户密钥配置,这将分别是您的$ORCHESTRATOR_KEY_NAME和密码短语。否则,这应为您的$VALIDATOR_KEY_NAME和相关的验证者密码短语。

选项 2. Cosmos 私钥(不安全)

在.env文件中,指定对应您peggo账户签名密钥的PEGGO_COSMOS_PK。 如果您按照上述推荐使用委托账户密钥配置,这将是您的协调器账户的私钥。否则,这应为您的验证者账户私钥。

要获取您的协调器Cosmos私钥(如适用),请运行:

injectived keys unsafe-export-eth-key $ORCHESTRATOR_KEY_NAME

要获取您的验证者Cosmos私钥(如适用),请运行:

injectived keys unsafe-export-eth-key $VALIDATOR_KEY_NAME

再次强调,这种方法安全性较低,不推荐使用。

步骤 2:注册您的协调器和以太坊地址

您只能注册一次协调器和以太坊地址。之后无法更新。因此,在运行以下命令之前请仔细检查。

injectived tx peggy set-orchestrator-address $VALIDATOR_INJ_ADDRESS $ORCHESTRATOR_INJ_ADDRESS $ETHEREUM_ADDRESS --from $VALIDATOR_KEY_NAME --chain-id=injective-1 --keyring-backend=file --yes --node=tcp://localhost:26657 --gas-prices=500000000inj

要获取您的验证者INJ地址,请运行:

  • injectived keys list $VALIDATOR_KEY_NAME

要获取您的协调器INJ地址,请运行:

  • injectived keys list $ORCHESTRATOR_KEY_NAME

示例:

injectived tx peggy set-orchestrator-address inj10m247khat0esnl0x66vu9mhlanfftnvww67j9n inj1x7kvxlz2epqx3hpq6v8j8w859t29pgca4z92l2 0xf79D16a79130a07e77eE36e8067AeA783aBdA3b6 --from validator-key-name --chain-id=injective-1 --keyring-backend=file --yes --node=tcp://localhost:26657 --gas-prices=500000000inj

NOTE: 一旦您通过set-orchestrator-address消息注册了协调器,您将无法再次注册。完成此步骤后,您的验证者将绑定到提供的以太坊地址(以及您可能提供的委托地址)。换句话说,您的peggo必须始终使用您为注册提供的地址运行。

步骤 3:启动中继节点

cd ~/.peggo
peggo orchestrator

这将启动Peggo桥接(中继节点 / 协调器)。

步骤 4:创建Peggo systemd服务

在/etc/systemd/system/peggo.service下添加以下内容的peggo.service文件:

[Unit]
  Description=peggo

[Service]
  WorkingDirectory=/home/ec2-user/.peggo
  ExecStart=/bin/bash -c 'peggo orchestrator '
  Type=simple
  Restart=always
  RestartSec=1
  User=ec2-user

[Install]
  WantedBy=multi-user.target

然后使用以下命令配置环境变量,启动和停止peggo中继节点

sudo systemctl start peggo
sudo systemctl stop peggo
sudo systemctl restart peggo
sudo systemctl status peggo

# enable start on system boot
sudo systemctl enable peggo

# To check Logs
journalctl -f -u peggo

步骤 5:(可选)保护Cosmos密钥环免受未授权访问

这是一个高级的DevOps主题,请咨询您的系统管理员。

在这里了解更多关于Cosmos密钥环的设置。启动节点后,默认的密钥环将把验证者操作密钥以加密形式存储在磁盘上。通常,密钥环位于节点的主目录中,即~/.injectived/keyring-file。

Injective质押文档中的一些部分将引导您使用此密钥进行治理操作,例如提交交易和设置以太坊桥接。为了保护密钥免受未授权访问,即使密钥环密码短语通过配置泄露,您可以设置操作系统权限,仅允许injectived / peggo进程访问磁盘。

在Debian、Ubuntu和RHEL等Linux系统中,可以使用POSIX访问控制列表(ACL)来实现此目的。在开始使用ACL之前,文件系统必须启用ACL。每个发行版都有一些官方指南:

贡献

Previous主网Next规范链升级

Last updated 2 months ago

以太坊配置 首先,在.env文件中更新PEGGO_ETH_RPC,并填写有效的以太坊EVM RPC端点。 要设置您自己的以太坊完整节点,请按照的说明操作。您也可以使用外部以太坊RPC提供商,如Alchemy或Infura,但请注意,Peggo桥接中继节点大量使用eth_getLogs调用,这可能会增加您的成本负担,具体取决于您的提供商。

选项 1. Geth密钥库 您可以在中找到使用密钥库安全创建新以太坊账户的说明。 为了方便,下面提供了一个示例。

请注意,默认的密钥环后端是文件,因此peggo会默认尝试在磁盘上查找密钥。 要使用默认的injectived密钥配置,您应将密钥环路径设置为您的injectived节点的主目录,例如~/.injectived。 您还可以在阅读更多关于Cosmos密钥环的设置。

您可以通过在上检查您的验证者映射的以太坊地址来验证注册是否成功。

如果您希望查看Peggo协调器的源代码并做出贡献,可以访问。

此处
Geth文档
这里
https://lcd.injective.network/peggy/v1/valset/current
Ubuntu
Debian
Amazon Linux (RHEL)
https://github.com/InjectiveLabs/peggo