Skip to content

Instantly share code, notes, and snippets.

Node Debugging: Submitting Info for Crash or "AppHash" Error

If you encounter a crash, halt, or "apphash" error on your Sei node and can collect data, please follow these guidelines based on the specific issue.

1. AppHash Error

For app hash mismatches, we must capture the state to compare with a known "good" version:

  • State Dump:
  • Legacy IAVL DB:

Overview: Querying Transaction Data on Sei EVM and Tendermint

This guide covers how to query transaction data on Sei’s blockchain using both Tendermint-based and EVM-based methods. The examples demonstrate working queries and sample responses, showing how the same transaction can be viewed from different perspectives. Here, the two transaction hashes we use represent the same transaction: one is the EVM-compatible hash, while the other is the Tendermint (Cosmos) hash. Both provide insights into the same event but from the unique contexts of their respective environments.

1. Tendermint REST API (cosmos/tx/v1beta1/txs/{hash})

  • Endpoint: {$SEIREST}/cosmos/tx/v1beta1/txs/{transaction_hash}
  • Use Case: Retrieve comprehensive transaction details in a Cosmos-specific format, including message data, events, and gas usage.

Working Query Example:

SeiDB

Technical Summary

Overview

SeiDB is a storage optimization solution aimed at mitigating the challenges of growing blockchain state. It replaces the traditional IAVL-based storage system used in Cosmos SDK-based blockchains with an enhanced storage model to tackle storage bloat, enhance performance, and ensure efficient state handling for both full nodes and archive nodes. Key components of SeiDB include VersionDB and MemIAVL, which provide significant improvements to the storage efficiency and performance of nodes across the network.

Key Components

1. IAVL Tree Optimization

RPC Data and Endpoints (v5.9.0)

With the v5.9.0 release, we have reverted the EVM RPC methods to their original specifications, ensuring strict EVM compliance. At the same time, we continue to support developers who require both synthetic and EVM data through updated Sei-specific methods.

Summary of Changes:

  • EVM RPC methods:
    • eth_getBlockByNumber, eth_getBlockReceipts, and eth_getLogs will now return only EVM-specific data.
    • Synthetic transaction hashes (Tendermint hashes prefixed with '0x') can still be queried using eth_getTransactionReceipt. However, this data is only available when explicitly queried with the synthetic hash and will not appear in any other EVM RPC responses by default.
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
# NOTE: Any path below can be absolute (e.g. "/var/myawesomeapp/data") or
# relative to the home directory (e.g. "data"). The home directory is
# "$HOME/.tendermint" by default, but could be changed via $TMHOME env variable
# or --home cmd flag.
#######################################################################
### Main Base Config Options ###
@cordt-sei
cordt-sei / rpc.md
Last active October 18, 2024 02:48

Important Update to RPC Data and Endpoints

We believe providing both a unified, simplified solution alongside the original untouched data streams is the most sensible path forward for the majority of developers. In an effort to avoid introducing further frustration and integration issues while solving any existing problems, we are reverting the EVM RPC to its original specification and introducing several new custom API methods that will continue serving synthetic events.

We apologize for any inconvenience and additional work this has caused. These changes have been made with long-term stability in mind and should fully resolve the current situation. Please review carefully to ensure your applications continue functioning as expected and your data remains accurate.

What’s Changing:

  • Reversion of the EVM RPC:
  • The modified EVM RPC will be reverted to 100% conform to the EVM standard. This means that eth_getLogs, eth_getBlock, and eth_getBlockByNumber will no longer include any T

on-chain oracle methods

image



actives


method

multisend

There are a bunch of different ways to use this depending on what tokens you are sending, and to which addresses. They can be combined if it is multiple coins to a single address.

[
  {
    "coins": [
      {
        "denom": "usei",

How to Compile Protobuf Files and Integrate Sei-js

This guide will walk you through compiling Protobuf (.proto) files into TypeScript code for use in Cosmos SDK-based projects, using either Telescope or Sei-js.

Using Telescope

Telescope is a TypeScript transpiler designed for Cosmos Protobuf files, converting them into TypeScript with typed interfaces and helper functions.

Steps:

grpc testing

method

grpcurl -plaintext -d '[object Object]' sei.grpc.kjnodes.com:443 cosmos.base.reflection.v1beta1.ReflectionService.ListAllInterfaces

response