The home for Hyperlane core contracts, sdk packages, and other infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyperlane-monorepo/README.md

71 lines
2.3 KiB

# Abacus
## Overview
Abacus is an interchain messaging protocol that allows applications to communicate between blockchains.
Developers can use Abacus to share state between blockchains, allowing them to build interchain applications that live natively across multiple chains.
To read more about interchain applications, how the protocol works, and how to integrate with Abacus, please see the [documentation](https://docs.useabacus.network/).
## Working on Abacus
### Workspaces
This monorepo uses [Yarn Workspaces](https://yarnpkg.com/features/workspaces). Installing dependencies, building, testing, and running prettier for all packages can be done from the root directory of the repository.
- Installing dependencies
```bash
yarn install
```
- Building
```bash
yarn build
```
- Running prettier
```bash
yarn prettier
```
If you are using [VSCode](https://code.visualstudio.com/), you can launch the [multi-root workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces) with `code mono.code-workspace`, install the recommended workspace extensions, and use the editor settings.
### Rust
- install [`rustup`](https://rustup.rs)
- see `rust/README.md`
### Running Agents Locally
See [this guide](rust/running-locally.md) for how to run the agents locally and perform a full end-to-end test.
#### Building Agent Images
There exists a docker build for the agent binaries. These docker images are used for deploying the agents in a production environment.
```bash
cd rust
./build.sh <image_tag>
./release.sh <image_tag>
```
## Deploy Procedure
The contract addresses of each deploy can be found in `rust/config`. The latest
deploy will be at `rust/config/[latest timestamp]` with bridge contracts within
that same folder under `/bridge/[latest timestamp]`.
The agents are set up to point at one environment at a time.
When agents are deployed to point at a new environment, they cease to point at
the old ones. We **do not** continue to operate off-chain agents on old contract
deploys. Contracts not supported by the agents will cease to function (i.e.
messages will not be relayed between chains).
Off-chain agents are **not** automatically re-deployed when new contract deploys
are merged. Auto-redeploys will be implemented at some future date.