Getting Started
This guide will walk you through the complete setup process to integrate apphash.io into your blockchain.
Overview
Setting up apphash.io involves three main steps:
- Integrate memlogger into your Cosmos SDK dependency
- Add streaming listener to your chain’s app.go
- Configure your node’s config.toml and app.toml
Prerequisites
- A Cosmos SDK-based blockchain project
- Go development environment
- Access to modify your chain’s source code
Setup Steps
Step 1: Integrate Cosmos SDK with memlogger
You have two options for integrating the memlogger-enabled Cosmos SDK:
Option A: Use Pre-built Release (Recommended)
BFT Labs provides pre-built releases with memlogger already integrated. For example, for Cosmos SDK v0.53.4:
// In your go.mod
replace (
github.com/cosmos/cosmos-sdk => github.com/bft-labs/cosmos-sdk v0.53.4-bft-labs-memlogger
cosmossdk.io/log => github.com/bft-labs/cosmos-sdk/log 02fd6029530ef1bac718436e1d1fefff4db3ef5f
cosmossdk.io/store => github.com/bft-labs/cosmos-sdk/store 02fd6029530ef1bac718436e1d1fefff4db3ef5f
)Available releases: bft-labs/cosmos-sdk releases
Option B: Cherry-pick the Integration Commit
If you need a different SDK version or want to maintain your own fork:
# Add the bft-labs remote
git remote add bft-labs https://github.com/bft-labs/cosmos-sdk.git
git fetch bft-labs
# Cherry-pick the memlogger integration
git cherry-pick 2a53c378ae5734c834fa7f7187a6c672d3d79521Reference commit: 02fd6029
Step 2: Add Streaming Listener to app.go
Next, you’ll need to modify your chain’s app.go to enable the in-memory listener and streaming manager.
Continue to the Setup Guide for detailed implementation instructions.
What’s Next?
After completing the setup:
- Your node will start generating compressed log files in
$CHAIN_DIR/data/log.wal/ - Set up walship to send logs to apphash.io
- Access the apphash.io dashboard to monitor your chain
Need Help?
- Check out the Setup Guide for detailed instructions
- Review the Architecture documentation to understand how it works
- Visit our GitHub for examples and support