It's nice to have the important pieces of your architecture run on your local machine when developing. It lowers latency for requests and helps debugging errors. With the release of the AR.IO gateway, we can now run an Arweave gateway with a small resource footprint. This guide will explain how to run the AR.IO gateway on GitHub Codespaces.
This guide assumes you know how to use GitHub (e.g., creating a repository and starting a Codespace) and how to use the command line on Linux.
We need a GitHub account to create a repository and run a Codespace.
First, we need to create a new repository on GitHub. We give it a name like "arweave-gateway", set the "Add a README file" checkbox to ensure the repository isn't empty after creation (this allows us to start a Codespace right away), and click the "Create Repository" button.
After we create the repository, GitHub will redirect us directly to it. There, we have to click the "Code" button, choose the "Codespaces" tab, and click" Create Codespace".
A codespace runs on Ubuntu pre-installed with many useful development tools, but we need to get these tools up-to-date and ensure we have the right Node.js version. For this, we run the following commands:
$ sudo apt update $ sudo apt upgrade $ nvm install 16.15.1
We start by cloning the
ar-io/ar-io-node repository from GitHub with this command:
$ gh repo clone ar-io/ar-io-node
Next, we need to configure the gateway by creating a new file at
ar-io-node/.env with the following content:
GRAPHQL_HOST=arweave.net GRAPHQL_PORT=443 START_HEIGHT=1000000
Now that we configured everything, we can run the build command inside the
$ sudo docker-compose up -d --build
After it finishes (it can take a few minutes), Docker-Compose automatically starts a cluster with two containers. One is an Envoy proxy (running on port 3000) that relays requests from outside the cluster to the other container (running on port 4000), which is our AR.IO gateway that will handle the requests.
After the gateway starts, our codespace will show us a small popup that lets us open the server running on port 3000 in the browser.
Interesting URLs we can use to test the gateway:
The gateway info page:
The TX of the Universal Data License:
The website of the Universal Data License:
Again, we must replace
<CODESPACE_SUBDOMAIN> with our actual subdomain.
The AR.IO gateway is a lightweight implementation of an Arweave gateway suitable for many purposes. It even runs on a Raspberry PI if we can trust its creators!
Since GitHub Codespaces runs Ubuntu and comes pre-installed with most of the gateway's dependencies, getting up and running is just a question of a few minutes. After that, we can enjoy the low latency of our very own Arweave gateway.