Files
bal-server/docs/09_references_and_links.md
svatantrya 69d877a360 docs: add comprehensive knowledge base and security audit
- Add docs/INDEX.md with navigable index and quick reference guides
- Add 9 knowledge base files covering project overview, Bitcoin domain,
  architecture, modules, API reference, database schema, deployment/security
- Update AGENTS.md with knowledge base reference and update policy
- Add tests/sql_injection_tests.rs with regression tests for SQL injection
- Fix SQL injection vulnerabilities in bal-pusher.rs:
  * Replace string-formatted UPDATE IN with loop + parameterized queries
  * Replace string-formatted UPDATE push_err with parameterized query
  * Add chain name validation in calculate_stats to prevent env var tampering
- Update .gitignore to exclude bal-pusher.env and bal-pusher.sh
2026-07-16 14:11:18 -04:00

6.5 KiB

References and Links

Quick Reference


Source Code References

Module/Component File Path Key Lines/Details
Library src/lib.rs Exports db and xpub modules
Database src/db.rs SQL schema, execute_insert, batched inserts
XPub/Address Derivation src/xpub.rs parse_xpub, derive_address, get_descriptor, BIP-84
HTTP Server src/bin/bal-server.rs Hyper + Tokio, routes, handlers, pushtxs logic
Async Pusher src/bin/bal-pusher.rs ZMQ hashblock, RPC + Reqwest, send_stats
Synchronous Pusher Enhanced src/bin/bal-pusher-enhanced.rs ZMQ rawblock, raw block header parsing, no getblockchaininfo
Stats (broken) src/bin/bal-stats.rs.dontcompile Not compiled, incomplete HTML report generator
Release script make_release.sh Hardcoded token, cargo install
DB download script download_bal_db.sh scp from remote
Server dev script bal-server.sh Sources bal-server.env, cargo run
Pusher dev script bal-pusher.sh Sources bal-pusher.env, cargo run
Send transaction script sendtx.sh bitcoin-cli wrapper
Utility scripts lib.sh Colored echo functions
Contrib (install) contrib/download_and_install_bal.sh Nginx, Certbot, systemd setup, hardcoded xpub
Contrib (install bitcoind) contrib/download_and_install_bitcoincore.sh Bitcoind download, GPG verify, systemd, config
Contrib (install Tor) contrib/install_tor.sh Tor repository, ControlPort 9051
Systemd service bal-server.service Runs as bal user, ProtectSystem, MemoryDenyWriteExecute
Systemd service bitcoind.service zmqpubhashblock setup
Systemd service tbitcoind.service Testnet bitcoind

Dependency Map (from Cargo.toml)

Dependency Version Purpose
base64 0.22.1 Encoding/decoding in pushtxs / xpub
bs58 0.4.0 Base58 encoding for Bitcoin addresses / xpubs
bytes 1.2 Byte handling for hyper/reqwest
bitcoin 0.32.5 Transaction parsing, ScriptBuf, Address, Xpub, Transaction
bitcoincore-rpc 0.19.0 RPC client for bitcoin-cli methods (sendrawtransaction, getblockchaininfo)
bitcoincore-rpc-json 0.19.0 JSON types for Bitcoin RPC responses
byteorder 1.5.0 Reading block timestamp from raw block header (big-endian) u32
confy 0.6.1 Loading .toml configuration files (default config)
chrono 0.4.40 Date and DateTime handling for timestamps and report
env_logger 0.11.5 Log level configuration via RUST_LOG environment variable
hex 0.4.3 Hex encoding for transaction serialization and raw bytes
hex-conservative 0.1.1 Hex parsing (used for Bitcoin hex strings)
hyper 1.3.1 Async HTTP server (features: http1, server)
hyper-util 0.1.3 Hyper utilities, TokioIo
http-body-util 0.1 HTTP body collection and streaming utilities
log 0.4.21 Logging facade (used by env_logger)
openssl 0.10.74 TLS/SSL, vendored feature to avoid system dependency
sha2 0.10.8 SHA-256 hashing (used in transaction validation or address generation)
serde 1.0.152 Serialization of config objects and JSON responses (derive feature)
serde_json 1.0.116 JSON parsing for HTTP request bodies and API responses
sqlite 0.34.0 Direct SQLite C bindings, raw SQL queries, no ORM
regex 1.10.4 RegExp parsing for URL matching (e.g., network regex) in bal-server
reqwest 0.12.24 HTTP client (json + socks features) for welist stats POST
tokio 1 Async runtime (rt, net, macros, rt-multi-thread)
zmq 0.10.0 ZeroMQ for hashblock/rawblock notifications

Mapping to Existing Documentation

Existing File Description Replaced/Managed By KB
README.md Installation, environment variables, ZMQ dependency 07_deployment_and_ops.md
RPC.md API endpoint specification (HTTP methods, paths) 05_api_reference.md
AGENTS.md Security guidelines, audit rules, baseline commands 08_security_audit.md
update Irrelevant saved conversation (Diesel/Axum) Ignored, not mapped
valid_txs / invalid_txs Logs of past transaction push results 08_security_audit.md (Information Leakage)
Cargo.toml Dependency versions and features 09_references_and_links.md (Dependency Map)
bal-server.service systemd unit file 07_deployment_and_ops.md (Systemd)
bitcoind.service systemd unit for bitcoin node 07_deployment_and_ops.md (Systemd)
tbitcoind.service systemd unit for testnet node 07_deployment_and_ops.md (Systemd)
bal-server.env bal-server environment variables 07_deployment_and_ops.md (Environment Variables)
bal-pusher.env bal-pusher environment variables 07_deployment_and_ops.md (Environment Variables)
bal-server.sh Dev server startup script 07_deployment_and_ops.md (Bash Scripts)
bal-pusher.sh Dev pusher startup script 07_deployment_and_ops.md (Bash Scripts)
sendtx.sh Test transaction sender 07_deployment_and_ops.md (Bash Scripts)
make_release.sh Release script with hardcoded secret 08_security_audit.md (Secret Leakage)
download_bal_db.sh scp from remote 07_deployment_and_ops.md (Bash Scripts)
generate_keys.sh Generate public key from private_key.pem 07_deployment_and_ops.md (Bash Scripts)
public_key.pem Ed25519 public key for stats verification 05_api_reference.md (GET /.pub_key.pem endpoint)
private_key.pem / privkey.pem / ec.key / chiave_privata.key Private keys for stats signing 08_security_audit.md (Secret Leakage)
contrib/download_and_install_bal.sh Full deployment setup 07_deployment_and_ops.md (Nginx, SSL) and 08_security_audit.md (Hardcoded Secret)
contrib/download_and_install_bitcoincore.sh Bitcoin Core install/verify 07_deployment_and_ops.md (Systemd)
contrib/install_tor.sh Tor installation script 07_deployment_and_ops.md (Tor)
contrib Various helper scripts 07_deployment_and_ops.md