Rainforest – A Hashrate Store

About the Project

Rainforest is a self-hosted, Amazon-style storefront where customers "buy" products not with money — but with hashrate.

Instead of checking out with credit cards or Bitcoin, users are issued a Stratum endpoint and a unique worker name at purchase time. Their mining rigs then connect to the store’s proxy and start contributing hashpower toward the item they want. Once enough hashrate is submitted, the order is fulfilled. The seller controls the datum pool, so it’s up to them to decide if they would prefer to solo mine, or forward to a pool for more consistent payouts.

This model turns physical or digital goods into proof-of-work bounties — a new way to sell stickers, merch, digital art, or even NFTs using computational effort as the medium of exchange.

Inspiration

This project was inspired by E-Cash and the conversation about hashrate proxies, where you can have a business that purchases hashrate and that business can send that hashrate to a pool or solo mine if needed.

  • Feels native to Bitcoin mining
  • Could be used at IRL events like hackathons or conferences
  • Makes hashrate the currency itself — not just a block reward enabler

How We Built It

The project includes a full multi-container Docker stack:

  • Frontend: An Angular-based store UI that generates worker names and gives users a checkout experience based on mining
  • API Backend: Tracks mining progress and shows order fulfillment status
  • Datum Gateway: A C++ Stratum proxy and solo mining coordinator connected to our own regtest node
  • Bitcoin Core (regtest): Fully isolated node with wallet and block generation
  • CPU Miner: Used for demo mining against the store

Everything runs locally via Docker Compose for fast iteration and testing. We used getnewaddress to dynamically generate payout addresses, patched them into the config on container startup, and used jq to bridge shell scripts with config injection.

What We Learned

  • How to build and patch the Datum Gateway from source (CMake/C++)
  • How to connect custom miners to a solo-mining regtest node using Stratum V1
  • Real-time metrics scraping using DATUM’s /api/clients JSON endpoint
  • Learned about issues with testing Datum with CPU miners. Not very easy.
  • Learned about the share system and how pools distribute work

Challenges We Faced

  • DATUM difficulty cannot easily go low enough to allow CPU Miner to achieve shares.
  • Building clean, isolated infra under a hackathon time crunch

Summary

Rainforest is a new take on Bitcoin-native commerce where hashpower replaces payment. It shows what's possible when you combine:

  • The Stratum protocol
  • Bitcoin's mining incentive model
  • A little open source glue

Project

Project is fully live at https://abrahan-chavez.github.io/rainforest/. Pool should be available to accept hash rate. Access to the "Admin Portal" is open, any username + password combination will allow you to enter.

Built With

Share this project:

Updates