Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/palomachain/paloma

The fast blockchain messenger protocol
https://github.com/palomachain/paloma

arbitrum binance-smart-chain blockchain cometbft cosmos-sdk ethereum kava optimism solana

Last synced: 6 days ago
JSON representation

The fast blockchain messenger protocol

Awesome Lists containing this project

README

        


Paloma

> A Golang implementation of Paloma Chain, a decentralized, automation network for smart contracts
> deployed in the Cosmos, EVM, Solana, and Polkadot networks.



License: Apache-2.0


Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.

Go Version

Go Reference


Go report card




Code Coverage


Code Coverage

Lines of code

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](#talk-to-us)
- [International Community](#international-community)
- [Releases](#releases)
- [Active Networks](#active-networks)
- [Join a network](#join-an-active-network)
- [Contributing](CONTRIBUTING.md)

## Talk to us

We have active, helpful communities on Twitter and Telegram.

- [Twitter](https://twitter.com/paloma_chain)
- [Telegram](https://t.me/palomachain)
- [Discord](https://discord.gg/HtUvgxvh5N)
- [Forum](https://forum.palomachain.com/)

## International Community

- [Bengali README](docs/Welcome-Bengali.md)
- [Chinese README](docs/Welcome-Chinese.md)
- [Indonesian README](docs/Welcome-Indonesian.md)
- [Japanese README](docs/Welcome-Japanese.md)
- [Persian README](docs/Welcome-Persian.md)
- [Polish README](docs/Welcome-Polish.md)
- [Portuguese README](docs/Welcome-Portuguese.md)
- [Romanian README](docs/Welcome-Romanian.md)
- [Russian README](docs/Welcome-Russian.md)
- [Spanish README](docs/Welcome-Spanish.md)
- [Thai README](docs/Welcome-Thai.md)
- [Turkish README](docs/Welcome-Turkish.md)
- [Ukrainian README](docs/Welcome-Ukrainian.md)
- [Vietnamese README](docs/Welcome-Vietnamese.md)

## Releases

See [Release procedure](CONTRIBUTING.md#release-procedure) for more information about the release model.

## Active Networks

- Testnet `paloma-testnet-16` (May 23, 2024)
- Mainnet `tumbler` (April 22, 2024)

## Join an active Network

> #### Note
>
> Some have seen errors with GLIBC version differences with the downloaded binaries. This is caused by a difference in the libraries of the host that built the binary and the host running the binary.
>
> If you experience these errors, please pull down the code and build it, rather than downloading the prebuilt binary

### Install the correct version of libwasm

The current required version of libwasm is `2.1.3`. If you're upgrading from a prior version it is recommended to remove the cache to avoid errors. If you're already have `palomad` running, you will need to stop it before doing these steps.

```
wget https://github.com/CosmWasm/wasmvm/releases/download/v2.1.3/libwasmvm.x86_64.so
sudo mv libwasmvm.x86_64.so /usr/lib/

rm -r ~/.paloma/data/wasm/cache
```

### To get the latest prebuilt `palomad` binary

```shell
wget -O - https://github.com/palomachain/paloma/releases/download/v2.3.2/paloma_Linux_x86_64.tar.gz | \
sudo tar -C /usr/local/bin -xvzf - palomad
sudo chmod +x /usr/local/bin/palomad
```

### To build palomad using latest release

```shell
git clone https://github.com/palomachain/paloma.git
cd paloma
git checkout v2.3.2
make build
sudo mv ./build/palomad /usr/local/bin/palomad
```

If you're upgrading to the most recent version, you will need to stop `palomad` before copying the new binary into place.

### Connecting to an existing network

Download and install the latest release of palomad.

Initialize our configuration. This will populate a `~/.paloma/` directory.

```shell
MONIKER="$(hostname)"
palomad init "$MONIKER"

#for testnet
CHAIN_ID="paloma-testnet-16"
#for mainnet
CHAIN_ID="tumbler"

```

Copy the configs of the network we wish to connect to

Testnet:

```shell
wget -O ~/.paloma/config/genesis.json https://raw.githubusercontent.com/palomachain/testnet/master/paloma-testnet-16/genesis.json
wget -O ~/.paloma/config/addrbook.json https://raw.githubusercontent.com/palomachain/testnet/master/paloma-testnet-16/addrbook.json
```

Mainnet:

```shell
wget -O ~/.paloma/config/genesis.json https://raw.githubusercontent.com/palomachain/mainnet/master/tumbler/genesis.json
wget -O ~/.paloma/config/addrbook.json https://raw.githubusercontent.com/palomachain/mainnet/master/tumbler/addrbook.json
```

Next you can generate a new set of keys to the new machine, or reuse an existing key.

```shell
VALIDATOR=
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 and get some funds!

We can verify the new funds have been deposited.

```shell
palomad query bank balances --node "https://testnet.palomaswap.com:443" "$ADDRESS"
```

And start the node!

```shell
palomad start
```

If desired we can stake our funds and create a validator.

```shell
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="" \
--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:

```shell
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!

```shell
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

```shell
CONTRACT=
VALIDATOR="$(palomad keys list --list-names | head -n1)"
palomad tx wasm store "$CONTRACT" --from "$VALIDATOR" --broadcast-mode block -y --gas auto --fees 3000000000ugrain
```