A Golang implementation of Paloma Chain, a decentralized, automation network for smart contracts
deployed in the Cosmos, EVM, Solana, and Polkadot networks.
Paloma is the fastest, secure crosschain communications blockchain. For Crosschain Software engineers who want simultaneous control of multiple, cross-chain-deployed, smart contracts, Paloma is decentralized and consensus-driven message delivery. Paloma is fast state awareness, low cost state computation, and a powerful attestation system. Polama blockchain enables scalable, 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
- Testnet
paloma-testnet-15
(January 20, 2023) - current tag v0.11.7
- Mainnet
messenger
(February 2, 2023) - current tag: v0.11.6
Join an active Network
To get the latest palomad
binary:
Testnet:
wget -O - https://github.com/palomachain/paloma/releases/download/v0.11.7/paloma_Linux_x86_64.tar.gz | \
sudo tar -C /usr/local/bin -xvzf - palomad
sudo chmod +x /usr/local/bin/palomad
# Required until we figure out cgo
sudo wget -P /usr/lib https://github.com/CosmWasm/wasmvm/raw/main/internal/api/libwasmvm.x86_64.so
Mainnet:
wget -O - https://github.com/palomachain/paloma/releases/download/v0.11.6/paloma_Linux_x86_64.tar.gz | \
sudo tar -C /usr/local/bin -xvzf - palomad
sudo chmod +x /usr/local/bin/palomad
# Required until we figure out cgo
sudo wget -P /usr/lib https://github.com/CosmWasm/wasmvm/raw/main/internal/api/libwasmvm.x86_64.so
If you're upgrading to the most recent version, you will need to stop palomad
before copying the new binary into place.
Steps for upgrading from a prior testnet to paloma-testnet-15
(These need to be done in the order listed)
ALERT: You will need to update your pigeon config.yaml file to reference this new chain-ID!
- Stop your paloma version and get 0.11.7
service palomad stop
wget -O - https://github.com/palomachain/paloma/releases/download/v0.11.7
/paloma_Linux_x86_64.tar.gz | \
tar -C /usr/local/bin -xvzf - palomad
-
Setup your pigeon relayer by following the instructions and then come back here.
-
Copy the latest genesis file
wget -O ~/.paloma/config/genesis.json https://raw.githubusercontent.com/palomachain/testnet/master/paloma-testnet-15/genesis.json
- Reset your local chain state:
palomad tendermint unsafe-reset-all --home $HOME/.paloma
- Copy the latest addrbook
wget -O ~/.paloma/config/addrbook.json https://raw.githubusercontent.com/palomachain/testnet/master/paloma-testnet-15/addrbook.json
- Start paloma.
service palomad start
- If you are planning to be a VALIDATOR with stake, ensure that your pigeon relayer is up & running and that you have at least 0.05 ETH on eth mainnet target chain and 0.05 BNB on bnb mainnet target chain addresses is in your pigeon configuration file.
Connecting to an existing network.
Download and install the latest release of palomad.
Initialize our configuration. This will populate a ~/.paloma/
directory.
MONIKER="$(hostname)"
palomad init "$MONIKER"
#for testnet
CHAIN_ID="paloma-testnet-15"
#for mainnet
CHAIN_ID="messenger"
Copy the configs of the network we wish to connect to
Testnet:
wget -O ~/.paloma/config/genesis.json https://raw.githubusercontent.com/palomachain/testnet/master/paloma-testnet-15/genesis.json
wget -O ~/.paloma/config/addrbook.json https://raw.githubusercontent.com/palomachain/testnet/master/paloma-testnet-15/addrbook.json
Mainnet:
wget -O ~/.paloma/config/genesis.json https://https://raw.githubusercontent.com/palomachain/mainnet/master/messenger/genesis.json
wget -O ~/.paloma/config/addrbook.json https://https://raw.githubusercontent.com/palomachain/mainnet/master/messenger/addrbook.json
Next you can generate a new set of keys to the new machine, or reuse an existing key.
VALIDATOR=<choose a name>
palomad keys add "$VALIDATOR"
# Or if you have a mnemonic already, we can recover the keys with:
palomad keys add "$VALIDATOR" --recover
Head over to https://faucet.palomaswap.com/ and get some funds!
We can verify the new funds have been deposited.
palomad query bank balances --node tcp://testnet.palomaswap.com:26656 "$ADDRESS"
And start the node!
palomad start
If desired we can stake our funds and create a validator.
MONIKER="$(hostname)"
VALIDATOR="$(palomad keys list --list-names | head -n1)"
STAKE_AMOUNT=1000000ugrain
PUBKEY="$(palomad tendermint show-validator)"
palomad tx staking create-validator \
--fees=1000000ugrain \
--from="$VALIDATOR" \
--amount="$STAKE_AMOUNT" \
--pubkey="$PUBKEY" \
--moniker="$MONIKER" \
--website="https://www.example.com" \
--details="<enter a description>" \
--chain-id=$CHAIN_ID \
--commission-rate="0.1" \
--commission-max-rate="0.2" \
--commission-max-change-rate="0.05" \
--min-self-delegation="100" \
--yes \
--broadcast-mode=block
You may receive an error account sequence mismatch
, you will need to wait until your local paloma
catches up with the rest of the chain.
Running with systemd
First configure the service:
cat << EOT > /etc/systemd/system/palomad.service
[Unit]
Description=Paloma Blockchain
After=network.target
ConditionPathExists=/usr/local/bin/palomad
[Service]
Type=simple
LimitNOFILE=65535
Restart=always
RestartSec=5
WorkingDirectory=~
ExecStartPre=
ExecStart=/usr/local/bin/palomad start
Environment=PIGEON_HEALTHCHECK_PORT=5757
ExecReload=
[Install]
WantedBy=multi-user.target
EOT
Then reload systemd configurations and start the service!
service palomad start
# Check that it's running successfully:
service palomad status
# Or watch the logs:
journalctl -u palomad.service -f
Uploading a local contract
CONTRACT=<contract.wasm>
VALIDATOR="$(palomad keys list --list-names | head -n1)"
palomad tx wasm store "$CONTRACT" --from "$VALIDATOR" --broadcast-mode block -y --gas auto --fees 3000000000ugrain