Hyperlane

Hyperlane is an interchain messaging protocol designed to enable applications to communicate between blockchains. This protocol allows developers to share state across multiple blockchains, facilitating the creation of interchain applications that operate natively across various chains.

Key Features

  • Interchain Messaging: Hyperlane allows for seamless communication between different blockchain networks, making it possible to build applications that can share state and interact across chains.
  • Decentralized: By eliminating the need for a centralized server, Hyperlane enhances the security and reliability of blockchain applications.
  • Scalability: The protocol is designed to handle the demands of large-scale interchain applications, ensuring consistent performance and high reliability.

Versioning

The Hyperlane repository currently hosts Hyperlane v3, which is the latest version. Previous versions, V2 and V1, are deprecated but can still be accessed in their respective branches:

Development and Integration

Developers can find comprehensive documentation and resources for integrating with Hyperlane at the Hyperlane Documentation.

Foundry

Hyperlane uses Foundry for development, a fast and modular toolkit for Ethereum application development. To set up Foundry on your machine:

  1. Install foundryup:

    curl -L https://foundry.paradigm.xyz | bash
  2. Install forge, cast, anvil, and chisel by running:

    foundryup

    For more information, refer to the Foundry Book.

Node.js

This repository targets Node.js v20. It is recommended to use nvm (Node Version Manager) to manage your Node.js version:

  1. Install nvm:
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
  2. Install and use Node.js v20:
    nvm install 20
    nvm use 20

Workspaces

Hyperlane uses Yarn Workspaces for managing multiple packages within a single repository. Key commands include:

  • Installing dependencies:
    yarn install
  • Building the project:
    yarn build

Logging

Hyperlane uses Pino for logging, which outputs structured JSON logs by default. The verbosity level and format can be configured using environment variables:

LOG_LEVEL=DEBUG|INFO|WARN|ERROR|OFF
LOG_FORMAT=PRETTY|JSON

Additional Tools and Releasing

Rust

For projects involving Rust, refer to the specific README in the rust directory of the repository.

Releasing Packages

  • Agents: Tag commits with the current date (e.g., agents-2023-03-28) and create a GitHub release with changelog details.
  • NPM Packages: Use changesets for publishing to NPM. Use the release script in package.json for publishing, with specific instructions for alpha or beta versions.

Hyperlane provides a robust framework for developing interchain applications, enabling secure, reliable, and scalable communication across multiple blockchains.

Similar Projects