SPEARMINT SPMTC

Spearmint/Guides Articles/Run a node

Spearmint Core · Bitcoin Core v29.0 lineage

Run a Spearmint Core node

A node enforces every rule of the network on your own hardware and takes nobody's word for anything — including ours. The more people who run one, the less anyone, this operator included, controls.

Pre-launch · no release yet

01 Why run a node

Spearmint is directed by Instant Access, which writes the software, publishes the parameters, and runs a mining service. It does not operate the network. The network is the set of nodes that independently validate every block and every transaction against the consensus rules, and reject anything that breaks them. If the operator's own node published an invalid block, your node would drop it. That is the property that makes the published parameters worth anything.

  • Verify, don't trust. Your node checks the 210 million cap, the halving schedule, the per-block difficulty adjustment, and the finality rules on every block. The network page is a convenience; your node is the authority.
  • Check the pool. Every coinbase transaction and payout listed by Spearmint Mining can be looked up on your node. If the pool's record and the chain disagree, the chain wins.
  • Mine independently. A node plus solo-mining software is a complete mining setup with no pool in the loop. See section 06.
  • Keep the network decentralised. Nodes run by people who are not the operator are what "operated by whoever runs it" means in practice.

02 Status

No release exists yet. Spearmint Core is a fork of Bitcoin Core v29.0 with changed chain parameters and two consensus additions — per-block difficulty retargeting and depth-tiered finality — and those additions are in an extended testing programme. The build log records the work to date, including what broke.

When a release is cut, it will be published with:

  • Source tarball and binaries for the reference platform, each with a SHA-256 hash.
  • A detached signature from a published maintainer key, with the key fingerprint on this site and in the repository.
  • Reproducible-build instructions, so that you can compile the same source and get byte-identical binaries.
  • A changelog listing every difference from Bitcoin Core v29.0.

Until then, nothing calling itself a Spearmint node download is from us.

03 Requirements

Reference platform — expected at first release
ItemExpectation
Operating systemUbuntu 22.04 LTS is the reference build; anything Bitcoin Core v29 builds on should work
CPUAny 64-bit x86 or ARM processor; initial sync is CPU-bound
Memory4 GB is comfortable; 2 GB works with a reduced dbcache
DiskSmall at launch and growing with the chain. Budget for growth: 30-second blocks produce about 1,051,200 headers a year, roughly twenty times Bitcoin's count, though each is only 80 bytes
NetworkInbound TCP 9333 open if you want to serve peers; outbound only is fine for validation
TimeNTP-synchronised clock. A node whose clock drifts more than a couple of minutes will reject valid blocks

04 Build from source

The build follows Bitcoin Core's. The repository location and release tag will be published with the first release; the steps below are what to expect and are marked accordingly.

# to be confirmed at release — repository URL and tag are placeholders sudo apt-get install build-essential libtool autotools-dev automake pkg-config \ bsdmainutils python3 libevent-dev libboost-dev libsqlite3-dev git clone <repository URL, published at release> spearmint cd spearmint git checkout <release tag> git verify-tag <release tag> # against the published maintainer key ./autogen.sh ./configure --without-gui make -j"$(nproc)" make check # run the unit tests before you trust the binary ./src/spearmintd --version

Compare the resulting binary's SHA-256 hash with the published one. If it differs, either your toolchain differs from the reference (the reproducible-build guide will say how to match it) or something is wrong — stop and ask on the support page.

05 Configuration

A minimal ~/.spearmint/spearmint.conf for a validating node that also serves peers:

# spearmint.conf — validating node, RPC local only server=1 listen=1 port=9333 # RPC: loopback only. Never change these to a public interface. rpcbind=127.0.0.1 rpcallowip=127.0.0.1 rpcuser=<choose> rpcpassword=<choose, long and random> # optional dbcache=1024 maxconnections=40 txindex=1 # lets you look up any txid, including pool coinbases and payouts
Never expose RPC to the internet The RPC interface can spend from any wallet the node has loaded and can be used to feed a miner false templates. Bind it to 127.0.0.1, firewall port 9332 inbound, and reach it over SSH if you need to from elsewhere. Spearmint Mining's own nodes run this way; so should yours. The security document covers the rest of the checklist.

Start with spearmintd -daemon, watch spearmint-cli getblockchaininfo until initialblockdownload is false, and you are validating.

06 Solo mining against your own node

You do not need Spearmint Mining to mine Spearmint. A node exposes getblocktemplate; solo-mining software turns that into Stratum jobs for your ASIC; any block you find pays its entire reward directly to an address in your own wallet, with no pool, no fee, and no third party anywhere in the path. This is how the team mines its pre-launch 8% and it is how the project's own tooling was brought up.

# ckpool in solo mode, pointed at your local node (illustrative) { "btcd": [{ "url": "127.0.0.1:9332", "auth": "<rpcuser>", "pass": "<rpcpassword>" }], "btcaddress": "spmtc1q...your own address...", "serverurl": ["127.0.0.1:3333"], "mindiff": 1, "startdiff": 42, "maxdiff": 0, "logdir": "logs" } # then point your ASIC at stratum+tcp://<your node's LAN address>:3333

The trade-off is variance. With a small fraction of network hashrate, solo blocks arrive rarely and irregularly, and a run of bad luck can last weeks. A pool smooths that into frequent small payouts in exchange for a fee. Both are legitimate; the network is healthier with a mix. If you have the hardware and the patience, solo is the purer option, and nothing on this site will discourage you from it.

07 Network rules you are enforcing

These are the consensus rules your node applies to every block. They are fixed at the genesis block; anything marked proposed becomes final then.

Issuance

210,000,000 SPMTC, all mined

50 SPMTC initial subsidy, halving every six months for five years and annually thereafter. No premine outside the ordinary reward; the team's 8% is mined at the standard subsidy over a published block range. Full table on the economic policy page.

Difficulty · ADR

Retarget every block

The target adjusts after each block toward the 30-second interval rather than every 2,016 blocks. Sudden hashrate meets rising difficulty within blocks, which is what makes short rented attacks unprofitable.

Finality · DBF

Depth-tiered confirmation

Required confirmation depth scales with transaction value, so a reorg deep enough to reverse a large payment has to be sustained rather than momentary. Depth tiers are being set by the current testing programme.

Everything else

Bitcoin Core v29.0

Script, transaction format, SegWit, block size and weight limits, the 100-block coinbase maturity, and the P2P protocol are inherited unchanged. Chain identity: bech32 HRP spmtc, port 9333, magic bytes fabfb0dc.

08 Questions

Does running a node earn anything?
No. A node validates; it does not mine. It earns you certainty about what the chain contains, and it gives the network one more independent enforcer of the rules. Mining is a separate activity that happens to need a node.
Can I use my Bitcoin Core knowledge?
Almost all of it. Configuration options, RPC calls, wallet behaviour, and directory layout are Bitcoin Core v29.0's. The differences are the chain parameters, the retarget and finality code, and the names of the binaries.
Will there be a GUI wallet?
The Qt wallet from Bitcoin Core builds if you configure with the GUI enabled; it will be included in the reference release if it passes the same testing as the daemon. It runs entirely on your machine — nothing about it involves the operator.
Where do I report a consensus bug?
Privately, to security@spearmintcoin.com, before publishing anything. The support page sets out what to include and how disclosure is handled.