How to Connect Public Pool to Windows Bitcoin Node
To connect Public Pool to a Windows Bitcoin node, enable Bitcoin Core’s RPC server, configure Public Pool to authenticate to that server, and point your ASIC miner at Public Pool’s Stratum port. Bitcoin Core supplies the block information; Public Pool provides mining work to the device.
If you searched for how to connect public pool to windows bitcoin node, first check which “pool” you mean. Running the Public Pool application yourself is different from joining a mining pool operated by someone else.
This guide uses Bitcoin Core and Public Pool running directly on the same Windows computer, with a miner on your trusted home network. Keeping that arrangement consistent avoids many of the confusing address and firewall errors that appear when Windows, Docker, and WSL instructions are mixed together.
Public Pool Software or a Public Mining Pool?
Public Pool is an open-source Bitcoin Stratum mining server that you can operate yourself. A public mining pool, by contrast, is a service whose operator supplies the connection details and payout rules.
The distinction changes what you need to install. If you simply want to join an existing service, your miner normally connects to that service’s Stratum endpoint, and your Windows node doesn’t automatically become its backend.
| Your goal | Connection you need | Is your own node required? |
|---|---|---|
| Join an existing mining service | Miner connects to the provider’s Stratum server | Usually not for ordinary participation |
| Run Public Pool against your node | Public Pool connects to Core through RPC; miner connects to Public Pool | Yes |
| Monitor or verify Bitcoin independently | Bitcoin Core connects to Bitcoin peers | No mining software required |
Running a node does not create hashing power. You still need compatible mining hardware to do useful mining work, and a private solo setup doesn’t provide a regular payout schedule.
Understand the Three Ports Before Changing Settings
For the mainnet setup in this article, Bitcoin Core RPC uses port 8332, while Public Pool’s example configuration uses 3333 for Stratum and 3334 for its API. Bitcoin’s peer-to-peer port, normally 8333, serves a different purpose from RPC.
| Port | Purpose | Access needed for this setup |
|---|---|---|
| 8332 | Public Pool communicates with Bitcoin Core | Same Windows computer only |
| 3333 | ASIC receives work and submits shares | Miner on the trusted local network |
| 3334 | Public Pool API | Keep restricted; not the miner’s connection port |
| 8333 | Bitcoin peer-to-peer networking | Separate from the pool-to-node connection |
The address 127.0.0.1 means the computer or network environment where the connecting program runs. It works between two native Windows applications on the same PC, but entering it into an ASIC’s settings points the ASIC back at itself.
What You Need Before Starting
Use a supported Windows installation, a synchronized Bitcoin Core node, and a compatible Stratum miner. You also need Node.js to run Public Pool, enough storage for your node’s configuration, and a Bitcoin receiving address you control.
Download Bitcoin Core through the official Windows download and verification instructions. Allow the initial blockchain synchronization to finish before diagnosing mining problems; downloading software and synchronizing a node are separate tasks.
For Public Pool, check its current Node.js requirement. The source reviewed for this guide specifies Node.js 22.12.0 or newer; use a supported release that meets the requirements of the revision you install.
This is a source-checked configuration walkthrough, not a claim that we tested on your particular Windows installation or ASIC. Native dependencies and firmware can differ, so keep the project’s instructions and your device documentation available during setup.
How to Connect Public Pool to Windows Bitcoin Node: Setup
Step 1: Confirm that Bitcoin Core is ready
Open Bitcoin Core’s RPC console, usually available under Window → Console. Enter this read-only command directly into the Core console, not PowerShell:
getblockchaininfo
The getblockchaininfo documentation explains the returned fields. For this mainnet guide, check that chain is main, initialblockdownload is false, and the block count has caught up with the known headers.
Next, request a block template in the same console:
getblocktemplate {"rules":["segwit"]}
A successful getblocktemplate response contains structured mining information. If Core reports that it is still downloading blocks or has no peer connections, resolve that before starting Public Pool.
This command does not mine a block or move funds. It checks whether your node can supply the information the mining server needs.
Step 2: Enable local RPC and identify the data directory
Open the configuration file through Bitcoin Core’s settings when that option is available. Otherwise, locate bitcoin.conf in the active data directory; a custom data directory takes precedence over the common default under %APPDATA%\Bitcoin.
Back up the existing configuration before editing it. For a mainnet node dedicated to this same-PC setup, make sure these settings are present without conflicting duplicates:
server=1
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
rpcport=8332
Restart Bitcoin Core after saving the file. Its RPC interface documentation explains why the graphical application needs server mode enabled for external RPC clients.
This guide uses cookie authentication, which lets Public Pool read Core’s locally generated credentials. If you have an existing installation with explicit RPC passwords or other authentication settings, review those settings before changing authentication; other applications may depend on them.
After Core restarts, confirm that a .cookie file exists in the active mainnet data directory. Do not copy its contents into the article’s examples, your miner settings, screenshots, or support messages.
Step 3: Prepare Public Pool on Windows
Install a compatible Windows version of Node.js. Then download the source ZIP from the official Public Pool repository’s Code → Download ZIP menu, extract it into a folder you control, and open PowerShell in the extracted folder containing package.json.
Check the installed tools and install the project dependencies:
node --version
npm.cmd --version
npm.cmd install
Using npm.cmd avoids invoking PowerShell’s npm.ps1 wrapper. There is no need to weaken the computer’s script-execution policy merely to run these commands.
If installation fails while building a native module, stop and read the first meaningful error. Check the project’s supported runtime and that module’s Windows build requirements before installing additional development tools or switching environments.
Step 4: Create the Public Pool configuration
Public Pool’s environment configuration example defines the RPC address, authentication options, and server ports. For this setup, the RPC host is the same Windows PC, and the credentials come from the cookie file.
Run the following in the Public Pool project folder. When prompted, paste the full path to your node’s .cookie file without surrounding quotation marks; the command checks that the file exists without displaying its contents.
$poolCookiePath = Read-Host 'Full path to the Bitcoin Core .cookie file'
if (-not (Test-Path -LiteralPath $poolCookiePath -PathType Leaf)) {
throw 'Cookie file not found. Check the active data directory and restart Core.'
}
$poolCookiePath = (Resolve-Path -LiteralPath $poolCookiePath).Path.Replace('\', '/')
if (Test-Path -LiteralPath '.env') {
throw 'An .env file already exists. Back it up and edit it instead of overwriting it.'
}
$poolEnvText = @"
BITCOIN_RPC_URL=http://127.0.0.1
BITCOIN_RPC_PORT=8332
BITCOIN_RPC_TIMEOUT=10000
BITCOIN_RPC_COOKIEFILE="$poolCookiePath"
API_PORT=3334
STRATUM_PORT=3333
NETWORK=mainnet
API_SECURE=false
POOL_IDENTIFIER="Public-Pool"
"@
[System.IO.File]::WriteAllText(
(Join-Path (Get-Location).Path '.env'),
$poolEnvText,
(New-Object System.Text.UTF8Encoding($false))
)
The local HTTP address in this configuration is a connection setting, not a public website. The RPC port is supplied separately, and the cookie path points to a file rather than containing its secret value.
Leave optional integrations disabled while establishing the basic connection. Public Pool can poll the node without ZeroMQ, so adding a ZMQ listener is unnecessary for this first setup.
Step 5: Start Public Pool and confirm its RPC connection
Build and start the application from the same project folder. Keep this terminal open while you configure the miner:
npm.cmd run build
npm.cmd run start:prod
The reviewed RPC connection code logs Bitcoin RPC connected when its initial RPC check succeeds. Watch for a Stratum listening message as well; startup isn’t complete just because an API message appears.
In a second PowerShell window, check the local Stratum port:
Test-NetConnection -ComputerName 127.0.0.1 -Port 3333
TcpTestSucceeded : True confirms that something accepts a TCP connection on that port. It does not by itself prove successful miner authorization or accepted shares.
If you restart Bitcoin Core, restart Public Pool afterwards. Core rotates its cookie credentials, while the reviewed Public Pool implementation reads the cookie during initialization.
Step 6: Allow your miner to reach Stratum
Run ipconfig on the Windows computer and identify the IPv4 address of its active home-network adapter. Use that address in the miner, rather than a VPN adapter address, a disconnected adapter, or 127.0.0.1.
In Windows Defender Firewall with Advanced Security, create an inbound rule for TCP port 3333. Apply it to the Private profile and, under the rule’s scope, restrict the allowed remote address to your miner’s actual IP address.
Keep the firewall enabled and review existing broad Node.js rules, because an older allow-all rule can override a narrower one. A DHCP reservation for the computer and miner helps prevent their addresses from changing unexpectedly.
The miner needs Stratum access, not access to RPC port 8332 or the API on 3334. No router port forwarding is needed for a miner on the same local network.
Step 7: Enter the miner’s connection details
Open your ASIC’s management interface and select its pool configuration. Field names vary, but the following mapping applies to a typical Stratum setup:
| Miner setting | What to enter |
|---|---|
| Pool host or address | The Windows computer’s actual LAN IPv4 address |
| Port | 3333, unless you deliberately changed it STRATUM_PORT |
| Username | Your mainnet Bitcoin receiving address, with a worker suffix only if supported |
| Worker name | A short device label where the interface supports a separate field |
| Password | The value required by your miner/server combination; never the Core RPC cookie or wallet password |
If the device uses a single URL field, select its documented Stratum TCP format and include the host and port. If it provides separate host and port fields, enter them separately rather than pasting a combined address into both.
Verify the receiving address on a wallet you control. This connection does not require importing its seed phrase or private key into Public Pool.
Step 8: Confirm accepted work
Save the miner settings and inspect both the miner interface and Public Pool logs. You want successful authorization, mining jobs reaching the device, and accepted shares over a suitable observation period.
Check any configured backup pool too. A device may silently switch to a remote fallback, so an active hash-rate display does not prove it is mining through your Windows node.
Accepted shares demonstrate contributed work at the assigned share difficulty. In a solo setup, they do not represent small withdrawable payments or guarantee that a full Bitcoin block will be found.
Troubleshooting: Find the Connection That Failed
Check the system in order: Core readiness, RPC authentication, Public Pool startup, network reachability, and miner authorization. Changing every setting at once makes it harder to identify what actually solved the problem.
| Symptom | Likely checks | Next action |
|---|---|---|
| RPC connection refused | Core stopped, server mode disabled, or wrong port | Check Core and restart after configuration changes |
| RPC unauthorized or HTTP 401 | Wrong credentials or a cookie that changed after restart | Confirm the cookie path and restart Public Pool |
| Cookie file missing or unreadable | Wrong data directory, different Windows account, or no generated cookie | Verify the active path and run under the intended account |
| Core refuses a block template | Initial synchronization or peer connectivity | Resolve the Core error before changing miner settings |
| Local port 3333 is closed | Startup failure or Stratum not listening yet | Inspect the first application error and listening messages |
| Local connection works but ASIC cannot connect | Firewall scope, wrong LAN IP, guest Wi-Fi isolation, or VLAN separation | Check the miner’s route to the Windows computer |
| Miner connects but authorization fails | Wrong network or invalid username/address format | Validate the mainnet receiving address and supported format |
| Device hashes but local pool records no work | Fallback pool active, rejected work, or insufficient observation time | Confirm the active endpoint and inspect share results |
| Port 3334 does not show a dashboard | Confusing the API with a web frontend | Use the separately documented Public Pool UI if wanted |
A TCP check tests reachability, while a template request tests Core’s readiness to supply mining work. Neither replaces checking accepted shares from the actual miner.
What Changes With Docker or WSL?
The instructions above assume native Windows processes. Inside a container or a separate WSL networking environment, loopback addresses and filesystem paths can refer to that environment instead of the Windows host.
For Docker Desktop, the project’s sample mentions host.docker.internal for reaching a host-side node. That hostname alone does not solve RPC binding, allowlisting, Windows Firewall, or access to a Windows cookie file.
Treat a container or WSL installation as a separate network design. Follow its documented host-access method, expose only the interfaces it needs, and verify RPC from inside that environment before connecting the miner.
Do not copy broad Docker subnet allowances into a working native setup. Bitcoin Core explicitly warns against exposing RPC over the public internet, even when authentication is enabled.
Is This Setup Free, and What About Windows 10?
Bitcoin Core and a public pool don’t require a software purchase for this local setup. The computer, mining hardware, storage, electricity, internet connection, and time spent maintaining them still have costs.
Hosting your own server helps you learn and control the mining backend. If the objective is financial exposure rather than operating equipment, compare those commitments with the considerations in this crypto investment guide.
For readers asking how to connect Public Pool to a Windows Bitcoin node on Windows 10, the connection concepts are the same, but supported software matters. Standard Windows 10 Home and Pro support ended on October 14, 2025; check Microsoft’s Windows 10 support guidance and your eligibility for continued updates before using the machine as an always-on server.
Keep wallet recovery information separate from troubleshooting. If a supposed support provider asks for a seed phrase or demands payment to unlock nonexistent mining earnings, the checks in this crypto recovery provider guide can help you assess the claim.
Frequently Asked Questions
Can I connect Public Pool to a Windows Bitcoin node for free?
Yes, you can use the node and pool software without purchasing a software license for this setup. That does not remove hardware or operating costs, and accepted shares in a solo configuration do not create guaranteed income.
Do I need to open port 8332 on my router?
No, not for Public Pool and Bitcoin Core running on the same Windows computer. Keep RPC local and allow only the miner’s required Stratum access on your trusted network.
Is port 3334 the Public Pool dashboard?
It is the API port in the project’s example configuration. The graphical frontend is a separate project, so a working backend does not necessarily produce a dashboard when you open that port in a browser.
Do I need a wallet loaded in Bitcoin Core?
The node’s non-wallet RPC methods provide mining information without requiring your spending wallet to be loaded. The miner still needs a valid receiving address you control for the relevant payout configuration, and you shouldn’t import private keys just to connect the pool.
Why did Public Pool stop authenticating after Core restarted?
Cookie credentials change when Bitcoin Core restarts. If Public Pool still holds the old credentials in memory, restart it after Core finishes starting and verify the RPC connection again.
Does connecting my node improve my solo-mining odds?
It gives you control over the backend supplying your mining work, but it does not add hash rate. Your chance of finding a block still depends on effective mining power and network difficulty, with uptime and valid work submission also affecting participation.
Conclusion: Verify Each Connection Before Leaving It Running
The practical answer to how to connect public pool to windows bitcoin node is to make three things work in sequence: Core must supply block templates, Public Pool must authenticate to Core, and the miner must submit accepted work to Public Pool. Keep RPC local, use the correct LAN address for the miner, and check the active pool rather than relying on a hash-rate display.
Start with one miner and verify every checkpoint before adding another device or an optional dashboard. Once the connection is stable, record your working software versions and settings to make future updates easier to troubleshoot.
