Skip to content

A Kurtosis package that spins up a local near testnet

Notifications You must be signed in to change notification settings

kurtosis-tech/near-package

Repository files navigation

NEAR PACKAGE

This repository contains a Kurtosis package for setting up a NEAR network locally on your machine using Kurtosis.

The validator key of the node that it starts is:

{
  "account_id": "test.near",
  "public_key": "ed25519:3Kuyi2DUXdoHgoaNEvCxa1m6G8xqc6Xs7WGajaqLhNmW",
  "secret_key": "ed25519:2ykcMLiM7vCmsSECcgfmUzihBtNdBv7v2CxNi94sNt4R8ar4xsrMMYvtsSNGQDfSRhNWXEnZvgx2wzS9ViBiS9jW"
}

The URLs of the services started inside Kurtosis are as follows:

Near node RPC URL: http://127.0.0.1:8332,
Contract helper service URL: http://127.0.0.1:8330,
Explorer URL: http://127.0.0.1:8331
Wallet URL: http://127.0.0.1:8334

Quickstart

Follow the instructions on the NEAR docs.

For Kurtosis Devs: Upgrading Dependencies

Rebuild the indexer-for-explorer NEAR node

  1. Clone the NEAR indexer-for-explorer repository
  2. Pull the latest master branch
  3. In the root of the repo, build a Docker image (will take ~45 minutes!):
    docker build -f Dockerfile -t "kurtosistech/near-indexer-for-explorer:$(git rev-parse --short HEAD)" .
    
  4. Slot the produced image-and-tag into the IMAGE constant in the indexer.star file

Rebuild the contract helper service

  1. Clone the NEAR contract-helper-service repository
  2. Pull the latest master branch
  3. In the root of the repo, build a Docker image:
    docker build -f Dockerfile.app -t "kurtosistech/near-contract-helper:$(git rev-parse --short HEAD)" .
    
  4. Slot the produced image-and-tag into the IMAGE constant in the contract_helper.star file

Rebuild the explorer backend & frontend

  1. Clone the NEAR explorer repository
  2. Pull the latest master branch
  3. In the root of the repo, build an explorer backend Docker image:
    docker build -f backend/Dockerfile -t "kurtosistech/near-explorer_backend:$(git rev-parse --short HEAD)" .
    
  4. Slot the produced image-and-tag into the IMAGE constant in the explorer_backend.star file
  5. In the root of the repo, build an explorer backend Docker image:
    docker build -f frontend/Dockerfile -t "kurtosistech/near-explorer_frontend:$(git rev-parse --short HEAD)" .
    
  6. Slot the produced image-and-tag into the IMAGE constant in the explorer_frontend.star file

Rebuild the wallet

  1. Clone the NEAR wallet
  2. Pull the latest master branch
  3. In the root of the repo, build a Docker image:
    docker build -f Dockerfile -t "kurtosistech/near-wallet:$(git rev-parse --short HEAD)" .
    
  4. Slot the produced image-and-tag into the IMAGE constant in the wallet.star file

Test the package

  1. Re run the package
kurtosis run .
  1. Debug & fix any errors, opening issues on the various NEAR repositories as necessary (this is the fastest way to interact with the NEAR devs)
    • NOTE: the NEAR wallet doesn't have a productized way to be configured at runtime (only at buildtime!) because it uses Parcel to precompile & minify all the Javascript into a single file; this means that to point the Wallet at the local services inside of Kurtosis we do janky sed'ing to replace variable values inside the minified Wallet Javascript file
  2. Repeat the dev loop as necessary

Release the package

  1. Push the images that your package version is now using (easy way to find them: go through the IMAGE constants in each file)
  2. Cut a PR
  3. Once it's approved, merge & release