NestJS + TypeScript stratum server configured for HCASH.
Protocol support:
- Stratum v1 (mining protocol)
getblocktemplate(GBT) via JSON-RPC tohashcashd- Not Stratum v2
This repository is intended to run against your existing hashcash-core devnet in ../hashcash-core.
- Start node stack:
cd ../hashcash-core
make regtest-up- Start pool stack:
cd ../hc-pool
docker compose -f docker-compose.hcash-regtest.yml up -d --build- Run deterministic validation:
./scripts/validate-hcash-regtest.sh- Stop pool stack:
docker compose -f docker-compose.hcash-regtest.yml down --remove-orphans- Compose file:
docker-compose.hcash-regtest.yml - Env file:
config/hcash-regtest.env - Cookie mount:
- source:
../hashcash-core/data/node1/regtest/.cookie - target:
/run/hashcash/.cookie
- source:
- RPC endpoint from container:
http://host.docker.internal:10309 - Chain/profile defaults live in
config/hcash-regtest.env:- address/network params (
CHAIN_*) - PoW diff1 target (
POW_DIFF1_TARGET) - vardiff tuning (
STRATUM_*)
- address/network params (
Ports:
- Stratum:
3333/tcp - API:
3334/tcp(localhost bound)
- Stratum URL:
stratum+tcp://<host>:3333 - Authorization format:
<HCASH_ADDRESS>.<worker> - Expected address support:
hcash1...bech32- HCASH legacy base58 prefixes
DEV_FEE_ADDRESS: fee payout address.DEV_FEE_PERCENT: fee percentage (0 < fee < 100, defaults to1.5if invalid).- If
DEV_FEE_ADDRESSis set, the fee split is applied on every template. - If
DEV_FEE_ADDRESSis empty, payout remains100%to the miner address.
- Setup and troubleshooting: docs/HCASH_STRATUM_DOCKER.md
- Legacy full-stack examples: full-setup/README.md
npm install
npm run build
npm run start