Files
aitbc/AITBC_FIXES_20260313.md

3.8 KiB

AITBC System Fixes - 2026-03-13

Issues Resolved

1. Matrix Agent Not Responding

Problem: Agent read messages but didn't answer due to duplicate plugin loading.

Root Cause: Two copies of the Matrix plugin existed:

  • System: /usr/lib/node_modules/openclaw/extensions/matrix
  • Local: /root/.openclaw/extensions/matrix

Fix:

  • Removed both copies
  • Reinstalled via openclaw plugins install @openclaw/matrix (v2026.3.12) to local extensions
  • Removed conflicting system copy
  • Added groupAllowFrom: ["*"] to allow all senders in allowed rooms
  • Added room settings: autoReply: true, requireMention: false

Status: Matrix channel working, no duplicate warnings.


2. Blockchain Node - Missing chain_id Column

Problem: Failed to propose block error: no such column: chain_id.

Root Cause: The mempool table (in data/mempool.db) lacked the chain_id column, required by the database-backed mempool implementation. The block table already had it.

Fix:

ALTER TABLE mempool ADD COLUMN chain_id VARCHAR NOT NULL DEFAULT 'ait-devnet';
CREATE INDEX idx_mempool_chain_id ON mempool(chain_id);

Status: PoA proposer now runs without errors.


3. Missing RPC Endpoint /rpc/mempool

Problem: GET /rpc/mempool returned 404 Not Found.

Root Cause: The endpoint was not implemented in the RPC router.

Fix: Added to /opt/aitbc/apps/blockchain-node/src/aitbc_chain/rpc/router.py:

@router.get("/mempool", summary="Get mempool transactions")
async def get_mempool_endpoint(chain_id: str = "ait-devnet", limit: int = 100) -> Dict[str, Any]:
    """Get pending transactions in the mempool for a chain"""
    ...

Status: Endpoint now returns mempool data (empty if no transactions).


Tools Installed

System (apt)

  • sqlite3, strace, ltrace, gdb, psmisc, lsof, net-tools, iproute2
  • python3-venv, python3-pip, python3-dev, build-essential
  • curl, wget, git, jq, htop, nmap

Python (pip)

  • ipdb, ptpython, ipython, debugpy
  • memory_profiler, line_profiler
  • py-spy, snakeviz
  • rich, traceback-with-variables
  • pytest, pytest-cov, pytest-xdist, hypothesis

Git Repository

Workspace initialized at /root/.openclaw/workspace:

  • Tracked config files: openclaw.json, identity files, SOUL.md, etc.
  • .gitignore excludes sensitive data (credentials, sessions, logs)
  • Remote: git@gitea.bubuit.net:oib/aitbc.git (SSH deploy key added)

Note: Application code (/opt/aitbc/apps/...) is separate and not in this repo.


Current Running Services

  • OpenClaw Gateway (matrix + webchat)
  • Blockchain Node (PoA proposer active)
  • Uvicorn RPC server on port 8006
  • Uvicorn app on port 8025

Verification

# Matrix agent
openclaw channels status --probe

# Blockchain RPC
curl http://localhost:8006/rpc/head
curl "http://localhost:8006/rpc/mempool?chain_id=ait-devnet"

# Logs
tail -f /var/log/aitbc_node.log

Recommendations

Security (Matrix Agent)

Currently groupAllowFrom: ["*"] with requireMention: false means anyone in allowed rooms can trigger arbitrary code execution (coding profile). Consider:

"channels": {
  "matrix": {
    "groupPolicy": "allowlist",
    "groups": {
      "!TuWuNlZVCNESaZmHiA:matrix.bubuit.net": {
        "allow": true,
        "autoReply": true,
        "requireMention": true,
        "users": ["@your_user_id:matrix.bubuit.net"]
      }
    }
  }
}

Database Migrations

Future schema changes should use Alembic migrations. The mempool table needs an Alembic migration to add chain_id for consistency.

Monitoring

  • Set up log rotation for /var/log/aitbc_node.log
  • Monitor /rpc/metrics for Prometheus metrics
  • Watch for repeated Failed to propose block errors

All critical issues resolved as of 2026-03-13 19:00 UTC.