Skip to main content

Setting Up Your Environment

Installations​

Hermes Relayer​

Hermes is a highly efficient IBC (Inter-Blockchain Communication) relayer developed for the Cosmos ecosystem. It facilitates the transfer of tokens and data between two Cosmos-based blockchains by relaying messages between them. Hermes is optimized for high performance and reliability, making it a popular choice for IBC communication.

With Hermes, you can set up cross-chain transactions, monitor channels, and enable the secure and fast transfer of assets across different blockchains that support the IBC protocol.

Download Hermes​

Follow the instructions in the repository to download and install Hermes. Depending on your system, you can either install it using pre-built binaries or compile it from source.

Run Hermes Relayer​

Run hermes version command to verify installation.

hermes version

Makefile​

A Makefile is a script used by the make utility to automate the building, testing, or deployment of projects. It defines a set of tasks to execute (called rules) and their dependencies, allowing developers to efficiently manage repetitive workflows. Makefiles are commonly used in software development for compiling code, managing dependencies, and running custom commands.

A typical Makefile structure includes:

  • Targets: Names for tasks (e.g., build, test).
  • Dependencies: Files or rules the target depends on.
  • Commands: Instructions to execute for the target.

How to Install make

  • Linux On most Linux distributions, make comes pre-installed. If not, you can install it using your package manager:
sudo apt update && sudo apt install make  # Debian/Ubuntu
sudo yum install make # RHEL/CentOS
  • macOS Install make as part of the Xcode Command Line Tools:
xcode-select --install

Verify Installation

After installation, check if make is available by running:

make --version

Go​

Go, also known as Golang, is an open-source programming language developed by Google. It is designed for simplicity, efficiency, and scalability, making it a popular choice for building web servers, distributed systems, and command-line tools.

As of now, we are using Go (Version 1.22)

  1. Visit the Go downloads page: https://go.dev/dl/.
  2. Download and install Go version 1.22 for your operating system.
  3. Verify the installation:
go version

Git​

Git is a distributed version control system designed to track changes in source code during software development. It allows developers to collaborate, manage their codebase efficiently, and maintain version history.

How to Install Git:

  • Visit the official Git website at https://git-scm.com/.
  • Download the version suitable for your operating system.
  • Follow the installation instructions provided on the website. For additional details and usage tips, refer to the documentation on the Git website.

Sourdough Binary​

This instruction will explain how to clone the repository and build it.

Clone the Repository

Open your terminal and execute the following command to clone the repository:

git clone https://github.com/s16rv/interchain-auth.git

Navigate to the Repository Directory

cd interchain-auth

Build the Project

Run the following command to build the project:

make localnet-build

Connect to a Local Network​

We provide a quick setup for easy learning and test out our chain.

  1. Run multiple chain We provide multiple script to quickly run chain. Feel free to run how many chain that you want to test.
make localnet-start-alpha
make localnet-start-beta
make localnet-start-charlie
make localnet-start-delta
  1. Study the script parameter You can see the script parameter for each chain in scripts/local directory. Focus on rpc address, grpc address and home setup. This will help a lot when creating transaction or querying the chain.

  2. Initiate hermes relayer You need to create IBC channel to communicate between chain. Here's a sample between alpha chain and beta chain.

hermes start

hermes create channel --a-chain alpha-1 --b-chain beta-1 --a-port icauth --b-port icauth --channel-version icauth-1 --new-client-connection --yes

Connect to a Testnet Network​