A Golang implementation of Paloma Chain, a decentralized, automation network for smart contracts
deployed in the Cosmos, EVM, Solana, and Polkadot networks.
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
Mainnet
N/A
Testnet Setup Instructions
To get the latest palomad
binary:
wget -O - https://github.com/palomachain/paloma/releases/download/v0.1.0-alpha/paloma_0.1.0-alpha_Linux_x86_64v3.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/api/libwasmvm.x86_64.so
Connecting to an existing testnet.
Download and install the latest release of palomad.
Initialize our configuration. This will populate a ~/.paloma/
directory.
MONIKER="$(hostname)"
palomad init "$MONIKER"
Copy the configs of the testnet we wish to connect to
wget -O .paloma/config/genesis.json https://raw.githubusercontent.com/palomachain/testnet/master/livia/genesis.json
wget -O .paloma/config/addrbook.json https://raw.githubusercontent.com/palomachain/testnet/master/livia/addrbook.json
Next you will need to add a new set of keys to the new machine.
VALIDATOR=<choose a name>
palomad keys add "$VALIDATOR"
Transfer funds. We'll need the address of our new validator and the address of the original validator.
You can run palomad keys list
on their respective nodes. On the main node run:
palomad --fees 200grain tx bank send -y "$ORIGINAL_VALIDATOR_ADDRESS" "$VALIDATOR_ADDRESS" 100000000grain
We can then verify that the funds have been deposited:
palomad query bank balances --node tcp://157.245.76.119:26657 "$VALIDATOR_ADDRESS"
Stake your funds and create our validator.
MAIN_VALIDATOR_NODE="tcp://157.245.76.119:26657"
CHAIN_ID="paloma"
DEFAULT_GAS_AMOUNT="10000000"
VALIDATOR_STAKE_AMOUNT=100000grain
PUBKEY="$(palomad tendermint show-validator)"
palomad tx staking create-validator \
--fees 10000grain \
--from="$VALIDATOR" \
--amount="$VALIDATOR_STAKE_AMOUNT" \
--pubkey="$PUBKEY" \
--moniker="$MONIKER" \
--chain-id="$CHAIN_ID" \
--commission-rate="0.1" \
--commission-max-rate="0.2" \
--commission-max-change-rate="0.05" \
--min-self-delegation="100" \
--gas=$DEFAULT_GAS_AMOUNT \
--node "$MAIN_VALIDATOR_NODE" \
--yes \
-b block
Start it!
MAIN_PEER_DESIGNATION=f64dd167410a242c993648faa6406edf74a7f4b7@157.245.76.119:26656
palomad start --p2p.persistent_peers "$MAIN_PEER_DESIGNATION"
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
Restart=always
RestartSec=5
WorkingDirectory=~
ExecStartPre=
ExecStart=/usr/local/bin/palomad start --p2p.persistent_peers f64dd167410a242c993648faa6406edf74a7f4b7@157.245.76.119:26656
ExecReload=
[Install]
WantedBy=multi-user.target
[Service]
LimitNOFILE=65535
EOT
Then reload systemd configurations and start the service!
systemctl daemon-reload
service palomad start
# Check that it started successfully.
service palomad status
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 3000grain
Setting up a new private testnet
Download and install the latest release of palomad.
Install jq
, used by the setup script.
apt install jq
Set up the chain validator.
PALOMA_CMD=palomad \
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/palomachain/paloma/master/scripts/setup-chain-validator.sh)"
We should now see an error free execution steadily increasing chain depth.
palomad start
Others wishing to connect to the new testnet will need your .paloma/config/genesis.json
file,
as well as the main peer designation. We can get the main peer designation with jq
:
jq -r '.body.memo' ~/.paloma/config/gentx/gentx-*.json