Giter Site home page Giter Site logo

sanurichgit / pigeon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from palomachain/pigeon

0.0 0.0 0.0 747 KB

Pigeon software is run by Paloma validators to send messages to any public blockchain

Home Page: https://palomachain.com

License: Apache License 2.0

Shell 0.38% Go 98.94% Dockerfile 0.68%

pigeon's Introduction

Logo!

Pigeon

A Golang cross-chain message relayer system for Paloma validators to deliver messages to any blockchain.

For Crosschain software engineers that want simultaneous control of mulitiple smart contracts, on any blockchain, Paloma is decentralized and consensus-driven message delivery, fast state awareness, low cost state computation, and powerful attestation system that enables scaleable, crosschain, smart contract execution with any data source.

Table of Contents

Talk to us

We have active, helpful communities on Twitter and Telegram.

Releases

See Release procedure for more information about the release model.

Active Networks

  • Paloma Testnest 13 (Oct 27, 2022)
  • Ethereum Mainnet (relay)
  • Binance Smart Chain Mainnet (relay)

Public Testnest 13

ISSUES

This repo does not accept issues. Please use https://github.com/palomachain/paloma/issues to submit issues and add pigeon label!

Install

If you are upgrading from a prior tesntet confirm that you added the health-check-port: 5757 to your pigeon yaml configuration file and upgrade the paloma chain-id field to paloma-testnet-13 (see example below).

Note

If you're joining while testnet didn't boot up yet you may see a log line saying not staking. waiting. That's OK. If you see this after the chains starts producing blocks, then it means that your validator has been jailed.

wget -O - https://github.com/palomachain/pigeon/releases/download/v0.12.0/pigeon_Linux_x86_64.tar.gz | \
tar -C /usr/local/bin -xvzf - pigeon
chmod +x /usr/local/bin/pigeon
mkdir ~/.pigeon

If you're upgrading to the most recent version, you will need to stop pigeond before removing the old binary and copying the new binary into place.

If you want to install from source use

go build ./cmd/pigeon

Set up your EVM Keys. Don't forget your passwords!

Ethereum Mainnet (eth-main)

pigeon evm keys generate-new ~/.pigeon/keys/evm/eth-main

Binance Smart Chain Mainnet (bnb-main)

pigeon evm keys generate-new ~/.pigeon/keys/evm/bnb-main

or import existing you existing Ethereum evm private keys

Ethereum Mainnet (eth-main)

pigeon evm keys import ~/.pigeon/keys/evm/eth-main

Binance Smart Chain Mainnet (bnb-main)

pigeon evm keys import ~/.pigeon/keys/evm/bnb-main

Config setup

Make sure your Paloma Cosmos-SDK keys are stored and available on your environment.

palomad keys add "$VALIDATOR" --recover

Set the VALIDATOR env variable

export VALIDATOR="$(palomad keys list --list-names | head -n1)"

Create configuration file here ~/.pigeon/config.yaml

loop-timeout: 5s
health-check-port: 5757

paloma:
  chain-id: paloma-testnet-13
  call-timeout: 20s
  keyring-dir: ~/.paloma
  keyring-pass-env-name: PALOMA_KEYRING_PASS
  keyring-type: os
  signing-key: ${VALIDATOR}
  base-rpc-url: http://localhost:26657
  gas-adjustment: 1.5
  gas-prices: 0.001ugrain
  account-prefix: paloma

evm:
  eth-main:
    chain-id: 1
    base-rpc-url: ${ETH_RPC_URL}
    keyring-pass-env-name: ETH_PASSWORD
    signing-key: ${ETH_SIGNING_KEY}
    keyring-dir: ~/.pigeon/keys/evm/eth-main
    gas-adjustment: 2
    tx-type: 2

  bnb-main:
    chain-id: 56
    base-rpc-url: ${BNB_RPC_URL}
    keyring-pass-env-name: BNB_PASSWORD
    signing-key: ${BNB_SIGNING_KEY}
    keyring-dir: ~/.pigeon/keys/evm/bnb-main
    gas-adjustment: 1
    tx-type: 0

Start pigeon

First pigeon will need some keys:

cat <<EOT >~/.pigeon/env.sh
PALOMA_KEYRING_PASS=<your Paloma key password>
ETH_RPC_URL=<Your Ethereum mainnet RPC URL>
ETH_PASSWORD=<Your ETH Key Password>
ETH_SIGNING_KEY=<Your ETH SIGNING KEY>
BNB_RPC_URL=<Your Binance mainnet RPC URL>
BNB_PASSWORD=<Your BNB Key Password>
BNB_SIGNING_KEY=<Your BNB SIGNING KEY>
VALIDATOR=<VALIDATOR NAME>
EOT

Then we can run pigeon with:

source ~/.pigeon/env.sh
pigeon start

Using systemd

Make sure you have configured .pigeon/env.sh as above. Then create a systemctl configuration:

cat <<EOT >/etc/systemd/system/pigeond.service
[Unit]
Description=Pigeon daemon
After=network-online.target
ConditionPathExists=/usr/local/bin/pigeon

[Service]
Type=simple
Restart=always
RestartSec=5
User=${USER}
WorkingDirectory=~
EnvironmentFile=${HOME}/.pigeon/env.sh
ExecStart=/usr/local/bin/pigeon start
ExecReload=

[Install]
WantedBy=multi-user.target
EOT

Then start our pigeon!

service pigeond start

# Check that it's running successfully:
service pigeond status
# Or watch the logs:
journalctl -u pigeond.service -f -n 100

Definitions and Descriptions of Pigeons Variables

  • for paloma key:
    • keyring-dir
      • right now it's not really super important where this points. The important things for the future is that pigeon needs to send transactions to Paloma using it's validator (operator) key!
      • it's best to leave it as is
    • keyring-pass-env-name
      • this one is super important!
      • it is the name of the ENV variable where password to unlock the keyring is stored!
      • you are not writing password here!! You are writing the ENV variable's name where the password is stored.
      • you should obviously use a bit more advanced method than shown here, but here is the example:
        • if the keyring-pass-env-name is set to MY_SUPER_SECRET_PASS then you should provide ENV variable MY_SUPER_SECRET_PASS and store the password there
        • e.g. MY_SUPER_SECRET_PASS=abcd pigeon start
    • keyring-type
      • it should be the same as it's defined for paloma's client. Look under the ~/.paloma/config/client.toml
    • signing-key
      • right now it's again not important which key we are using. It can be any key that has enough balance to submit TXs to Paloma. It's best to use the same key that's set up for the validator.
    • gas-adustment:
      • gas multiplier. The pigeon will estimate the gas to run a TX and then it will multiply it with gas-adjustment (if it's a positive number)
  • for evm -> eth-main:
    • keyring-pass-env-name: as as above for paloma.
    • signing-key
      • address of the key from the keyring used to sign and send TXs to EVM network (one that you got when running pigeon evm keys generate-new from the install section)
    • keyring-dir:
      • a directory where keys to communicate with the EVM network is stored

pigeon's People

Contributors

vizualni avatar taariq avatar webelf101 avatar verabehr avatar alexanderbez avatar measure-fi avatar aditya-manit avatar a33cpa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.