feat(pusher): add opt-in v2 WeTime ping signing
- Add WELIST_PING_SIG_VERSION (1 legacy, 2 canonical JSON); default 1
- Sign WELIST-PING-V2\n + compact sorted JSON covering url, chain, height,
median_time, last_block_hash, info, base_fee, version and sig_version
- Fetch info/base_fee/version from the local /{chain}/info endpoint and sign them
- Fall back to null metadata on fetch failure; skip the fetch for onion URLs
- Normalize the advertised URL and bound metadata to match the WeTime service
- Activate v2 in bal-pusher.sh and document the TXT record setup
- Add unit tests for canonical payloads, URL normalization, metadata and onion detection
Includes previously uncommitted local deployment hardening:
- pg-server.sh configurable loopback bind address, volume and recreate handling
- .env loading in bal-server.sh and bal-pusher.sh
- second bal-server/bal-pusher development scripts
This commit is contained in:
44
bal-pusher-2.sh
Executable file
44
bal-pusher-2.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
# Second bal-pusher instance: talks to the second bal-server and database.
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
. "$SCRIPT_DIR/lib.sh"
|
||||
|
||||
# Load local, gitignored environment overrides (e.g. BAL_PG_PASSWORD).
|
||||
if [ -f "$SCRIPT_DIR/.env" ]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
. "$SCRIPT_DIR/.env"
|
||||
set +a
|
||||
fi
|
||||
|
||||
WORKING_DIR=$(pwd)
|
||||
|
||||
export RUST_LOG=trace
|
||||
|
||||
export BAL_SERVER_DB_FILE="$WORKING_DIR/bal2.db"
|
||||
export BAL_SERVER_DB_BACKEND="postgresql"
|
||||
#export BAL_PUSHER_BITCOIN_COOKIE_FILE=/~/.bitcoin/.cookie
|
||||
#export BAL_PUSHER_REGTEST_COOKIE_FILE=/~/.bitcoin/regtest/.cookie
|
||||
#export BAL_PUSHER_TESTNET_COOKIE_FILE=/~/.bitcoin/testnet3/.cookie
|
||||
#export BAL_PUSHER_SIGNET_COOKIE_FILE=/~/.bitcoin/signet/.cookie
|
||||
|
||||
export BAL_PUSHER_REGTEST_ZMQ_HASHBLOCK=tcp://127.0.0.1:21332
|
||||
# Only the first pusher reports executor stats, to avoid double reporting for
|
||||
# the same executor key on the welist service.
|
||||
export BAL_PUSHER_SEND_STATS=false
|
||||
export WELIST_SERVER_URL=http://localhost:8086
|
||||
export WELIST_SKIP_URL_VALIDATION=true
|
||||
export BAL_SERVER_URL="http://127.0.0.1:9134"
|
||||
export SSL_KEY_PATH="$WORKING_DIR/private_key.pem"
|
||||
|
||||
# Instance-specific settings must win over .env, which defines BAL_PG_DB=baldb.
|
||||
export BAL_PG_DB="baldb2"
|
||||
unset BAL_SERVER_PG_DSN
|
||||
|
||||
if [ "$BAL_SERVER_DB_BACKEND" = "postgresql" ]; then
|
||||
. "$SCRIPT_DIR/pg-server.sh"
|
||||
fi
|
||||
|
||||
cargo run --bin=bal-pusher regtest --features=pusher
|
||||
Reference in New Issue
Block a user