Dev Guide for Archival Node & Indexer Setup

Overview

Algorand - The Undocumented Docs

Dev Notes for Archival Node, Indexer Setup (and more)

Archival Node FAQ

[ ? ] How much space will I need?

See -> https://howbigisalgorand.com/

[ ? ] How long will it take to stand up an Archival Node?

Depends on hardware. The biggest bottleneck is I/O speed. NVMe is by far the optimal HW for this purpose. If you plan to run both an Indexer and Archival Node, split their data directories on separate drives. Some representative hardware estimates (as of block # 18,400,000):

  • Raspberry Pi 4 - Archival Node - 11 days

[ ? ] My archival node started off wicked fast and now it is slow as molasses. (Usually around block 8M+) Why?

Reportedly this was due to an Italian company minting millions of Assets/NFTs, regardless Algorand began seeing much greater popularity around this point. Expect a long, hard slog after block 8M.

Transaction History

[ ? ] How do I figure out what relays I'm connecting to?

On Linux: netstat -nap | grep algod (port 4160 for MainNet)

[ ? ] What are the LookupSRV errors in node.log?

Set "EnableBlockServiceFallbackToArchiver": false in your $ALGORAND_DATA_DIR/config.json to get rid of these

Indexer FAQ

[ ? ] Can the Indexer be set at a specific catchpoint to ignore prior blocks?

Not currently. If your use-cases differ, you may want to consider forking the Indexer or writing your own direct interface to algod and skipping the Indexer

[ ? ] How long for the Indexer to fully catch up?

ETA currently unknown. Please pull-req if you have estimates.

Participation Keys FAQ

Some raw Ubuntu 20 Setup Notes (credit: xbox7887)

# variables
WALLET_ADDRESS=<ACCOUNT ADDRESS GOES HERE>
CATCHPOINT=$(curl -s https://algorand-catchpoints.s3.us-east-2.amazonaws.com/channel/mainnet/latest.catchpoint)
BLOCK_VALIDITY_PERIOD=3000000
KEY_DILUTION=$(echo "sqrt($BLOCK_VALIDITY_PERIOD)" | bc)
MIN_UALGO_FEE=1000

# constants
export ALGORAND_DATA=/var/lib/algorand

# prereqs
sudo apt-get update
sudo apt-get install -y gnupg2 curl software-properties-common qrencode
curl -O https://releases.algorand.com/key.pub
sudo apt-key add key.pub
sudo add-apt-repository "deb [arch=amd64] https://releases.algorand.com/deb/ stable main"
sudo apt-get update
sudo apt-get install -y algorand-devtools

# initial fast sync
goal node status -d $ALGORAND_DATA
goal node catchup $CATCHPOINT -d $ALGORAND_DATA
goal node status -d $ALGORAND_DATA -w 1000
# wait unti sync time equals zero, then CTRL+C to exit

# calculate block validity
VALID_BLOCK_START=$(goal node status -d $ALGORAND_DATA | grep -oP '(?<=Last committed block: ).*' )
VALID_BLOCK_END=$(($VALID_BLOCK_START+$BLOCK_VALIDITY_PERIOD))

# generate part key
sudo -u algorand -E goal account addpartkey -a $WALLET_ADDRESS --roundFirstValid=$VALID_BLOCK_START --roundLastValid=$VALID_BLOCK_END --keyDilution=$KEY_DILUTION
sudo -u algorand -E goal account listpartkeys
sudo -u algorand -E goal account partkeyinfo

# generate online txn
sudo -u algorand -E goal account changeonlinestatus --address=$WALLET_ADDRESS --fee=$MIN_UALGO_FEE --online=true --firstvalid=$VALID_BLOCK_START --lastvalid=$(($VALID_BLOCK_START+1000)) --txfile=online.txn

# transfer to offline computer
# sudo qrencode -8 -m 2 -t ansiutf8 -r online.txn

# sign them from a secure offline computer without local storage running a live cd
goal wallet new
goal account import
# enter mnemonic
goal clerk sign --infile="online.txn" --outfile="online.stxn"
goal clerk inspect online.stxn

# transfer back to the node

# raw send
sudo -u algorand -E goal clerk rawsend -f online.stxn
You might also like...

Markdown Blogging, Without Setup or Signup

You write. We do the rest. 📝 Memos.pub Memos.pub publishes Markdown files instantly without any setup. If you have a public GitHub repo with Markdown

Dec 11, 2022

Markdown Blogging, Without Setup or Signup

You write. We do the rest. 📝 Memos.pub Memos.pub publishes Markdown files instantly without any setup. If you have a public GitHub repo with Markdown

Apr 27, 2022

This GitHub Action will setup a Nushell environment for you.

setup-nu 中文说明 This GitHub Action will setup a Nushell environment for you. Usage Examples In most cases you need to specify the version of Nushell to

Dec 30, 2022

⛺️ Tipi is a homeserver for everyone! One command setup, one click installs for your favorites self-hosted apps. ✨

⛺️ Tipi is a homeserver for everyone! One command setup, one click installs for your favorites self-hosted apps. ✨

⛺️ Tipi — A personal homeserver for everyone ⚠️ Tipi is still at an early stage of development and issues are to be expected. Feel free to open an iss

Jan 4, 2023

A Remix stack setup to run on Deno with support for Rust WASM modules!

Remix + Deno + Rust - Webassembly - The Air Metal Stack Welcome to the Air Metal Stack for Remix! 🦕 + 🦀 This stack is a good choice if you want to

Jan 5, 2023

serverless plugin to setup custom domain for lambdas deployed with function url.

serverless-aws-function-url-custom-domain Automatically creates AWS CloudFront distribution and Route 53 records to AWS Lambda with Function URL (no a

Nov 27, 2022

A server setup to take screenshots against the green screen in-game.

alt:V Clothing Green Screener Support on Patreon. Seriously. Ever want screenshots of every single clothing item in GTA:V? Well this is your repositor

Dec 26, 2022

This is boilerplate of express, typescript and postgreSql with typeorm and docker based setup

express-typescript-postgres-typeorm-docker-swagger-boilerplate This is boilerplate of express, typescript and postgreSql with typeorm and docker based

Jun 2, 2022

Create a new project with Next.js, TypeScript, Eslint, Prettier in just 1 second and you don't need to setup anything.

Create a new project with Next.js, TypeScript, Eslint, Prettier in just 1 second and you don't need to setup anything.

Next + TypeScript + Eslint + Prettier Template 🔥 Create a new project with Next.js, TypeScript, Eslint, Prettier in just 1 second and you don't need

Oct 2, 2022
Owner
null
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
An indexer that aggregates and normalizes NFT related data on the Tezos Blockchain and provides a GraphQL API for developers.

TezTok Token Indexer An indexer that aggregates and normalizes NFT related data on the Tezos Blockchain and provides a GraphQL API for developers. Not

null 29 Dec 23, 2022
A socially-scalable music NFT indexer.

neume-network-core installation Prerequsites neume-network-core is dependent on an Ethereum full node JSON-RPC interface. Consider running your own no

neume 25 Nov 17, 2022
Quickly create an anchor program from templates and setup anchor dev environment.

Create Anchor App Quickly create an anchor program from templates and setup anchor dev environment. Example Installation npm i -g @create-anchor-app/c

null 24 Nov 28, 2022
⚡️ Free, open-source and easy to setup tempmail written in Node.JS!

tempmail-js ⚡️ Free, open-source and easy to setup tempmail written in Node.JS! tempmail.js uses MongoDB to store it's data. Installation Installing t

vida 2 Nov 7, 2022
my ethereum RPC node setup & notes

UBUNTU RPC (scaffold-rpc) sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum = created geth script = g

Austin Griffith 10 Jul 4, 2022
Projeto de Final de Módulo da Resilia, curso de Web Dev Full Stack, utilizando como base Node.js e Javascript.

?? API Transportadora Projeto de encerramento do módulo 4 da Resilia Educação. O objetivo é desenvolver uma API Rest de uma transportadora. ?? Pré-req

null 5 Mar 26, 2022
Setup-graalvm - GitHub Action for setting up GraalVM CE.

GitHub Action for GraalVM This GitHub action sets up GraalVM Community Edition and GraalVM components such as Native Image and GraalVM languages. Key

GraalVM 105 Jan 2, 2023
Projen project type for Turborepo monorepo setup.

?? projen-turborepo Projen project type for Turborepo monorepo setup. Getting Started To create a new project, run the following command and follow th

Roman 23 Oct 4, 2022