upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorbitflash-maintainer <noreply@bitflash.invalid>2026-09-05 05:08:30 +0000
committerbitflash-maintainer <noreply@bitflash.invalid>2026-09-05 05:08:30 +0000
commit66e0b9158d050c46b1ff2509faeee3f4573cac1c (patch)
tree7e9132aa871fdc01cb95268d2f5ea3bb11853ddf /README.md
parent36201d2795b7b49beb1a837b0252134096beb64d (diff)
parent17741d9cf4c762ea03dc83e8aae6a176e5f338b0 (diff)
Merge upstream/main into the fork
Brings the nine commits that are actually the latest on our lineage: isolated testnet parameters and genesis, optional 2 MB large pages for RandomX, and five README changes. This is what "up to date" means here -- not the 1.2.2x tags, which carry higher version numbers but were cut 2026-07-30, three weeks before the line we ship, and which upstream/main does not contain. Three conflicts, all resolved toward upstream's structure while keeping what this fork knows: main.cpp -- upstream moved genesis construction into BuildGenesisBlock() so mainnet and the new testnet can share it. Verified byte-for-byte before taking it: MAINNET_GENESIS_TIMESTAMP, _TIME (1753315200), _NONCE (3141), _HASH, _MERKLE, the scriptPubKey, nBits and nVersion all equal what this tree built inline. The mainnet genesis hash is unchanged and the asserts still guard it. Kept our warning about never editing those inputs, and kept our note that 1753315200 is 2025-07-24, not 2026 -- upstream's comment on that constant states the wrong year. net.h -- DEFAULT_PORT = htons(8433) becomes MAINNET_PORT/TESTNET_PORT in host order. Nothing is lost: net.cpp's GetDefaultPort() applies htons() itself and is what every caller uses, so the value reaching a sockaddr is unchanged and mainnet stays on 8433. selftest.cpp -- the known-tests string had diverged in both directions. Took the union: upstream's network-params alongside our payout-ledger, rather than dropping either. Gates: 15/15 selftests (our 14 plus upstream's network-params), consensus constants unchanged against e4f898c except the pre-existing MAX_BLOCK_SIZE_GEN, mainnet genesis intact, compactblock's 17 checks still pass, money-log check ok, GNU_STACK RW.
Diffstat (limited to 'README.md')
-rw-r--r--README.md50
1 files changed, 37 insertions, 13 deletions
diff --git a/README.md b/README.md
index 77a0ad8..4453529 100644
--- a/README.md
+++ b/README.md
@@ -8,9 +8,11 @@ CPU-only cryptocurrency. A revival of Bitcoin 0.1.0 with RandomX proof of work a
8 8
9![PoW](https://img.shields.io/badge/PoW-RandomX%20(CPU)-2ea44f?style=for-the-badge) 9![PoW](https://img.shields.io/badge/PoW-RandomX%20(CPU)-2ea44f?style=for-the-badge)
10![Privacy](https://img.shields.io/badge/addresses-.btf%20anonymous-2ea44f?style=for-the-badge) 10![Privacy](https://img.shields.io/badge/addresses-.btf%20anonymous-2ea44f?style=for-the-badge)
11![Tor](https://img.shields.io/badge/tor-onion%20service-7d4698?style=for-the-badge)
11![Fair Launch](https://img.shields.io/badge/premine-none-2ea44f?style=for-the-badge) 12![Fair Launch](https://img.shields.io/badge/premine-none-2ea44f?style=for-the-badge)
13[![Discord](https://img.shields.io/badge/discord-join-5865F2?style=for-the-badge)](https://discord.gg/n7B2Eamn3)
12 14
13**[Download](../../releases/latest)** 15**[Download](https://releases.bitflash.network/)** · **[Discord](https://discord.gg/n7B2Eamn3)**
14 16
15</div> 17</div>
16 18
@@ -46,14 +48,14 @@ For a plain SOCKS5 proxy without Tor-specific defaults, use
46 48
47## Quick start 49## Quick start
48 50
49Download the [latest release](../../releases/latest) and run. No install, no 51Download the [latest release](https://releases.bitflash.network/) and run. No
50configuration — it connects automatically and starts syncing. 52install, no configuration — it connects automatically and starts syncing.
51 53
52**Linux:** make the `.AppImage` executable and run it. 54**Linux:** make the `.AppImage` executable and run it.
53 55
54**Windows:** extract the `-windows.zip` and run `Bitflash.exe`. 56**Windows:** extract the `-windows-with-tor.zip` and run `Bitflash.exe`. Tor is
55If you want managed Tor without a separate Tor install, use the 57bundled and a managed Tor instance starts automatically, so onion transport
56`-windows-with-tor.zip` package and start Bitflash with `-managedtor`. 58works with no separate install. Pass `-nomanagedtor` to turn it off.
57 59
58Every release ships a `SHA256SUMS` covering the assets. Verifying takes a second 60Every release ships a `SHA256SUMS` covering the assets. Verifying takes a second
59and is worth doing: 61and is worth doing:
@@ -83,7 +85,7 @@ Public mirrors should make the latest checksum files available both under the
83versioned release directory and at the release root: 85versioned release directory and at the release root:
84 86
85```text 87```text
86https://releases.bitflash.network/v1.2.19/SHA256SUMS 88https://releases.bitflash.network/v1.2.20/SHA256SUMS
87https://releases.bitflash.network/SHA256SUMS # alias to latest 89https://releases.bitflash.network/SHA256SUMS # alias to latest
88``` 90```
89 91
@@ -166,6 +168,14 @@ words also cover the address the window shows you. **Both still matter** — the
166phrase and the file back up different things, and the difference is where people 168phrase and the file back up different things, and the difference is where people
167lose money. 169lose money.
168 170
171Since 1.2.20 the file is a single self-contained `wallet.sqlite` by default. A
172fresh data directory starts on it; an existing Berkeley DB `wallet.dat` keeps
173working and the desktop app converts it in one click on first run, never
174touching the original, which stays as a fallback. Choose a backend explicitly
175with `-walletbackend=sqlite` or `-walletbackend=bdb`, recorded in a
176`wallet-backend` marker in the data directory. See
177[wallet storage](docs/storage.md).
178
169The derivation is written down in [docs/derivation.md](docs/derivation.md), with 179The derivation is written down in [docs/derivation.md](docs/derivation.md), with
170test vectors and a script that reproduces them from scratch. It is there so the 180test vectors and a script that reproduces them from scratch. It is there so the
171twelve words keep working even if this software does not: paths, address format 181twelve words keep working even if this software does not: paths, address format
@@ -179,8 +189,11 @@ bitflash -newphrase # create it, show it once, exit
179bitflash -restorephrase="twelve words here" # rebuild a wallet from it 189bitflash -restorephrase="twelve words here" # rebuild a wallet from it
180``` 190```
181 191
182`-newphrase` installs a BIP32 seed, derives the wallet's key pool and default 192`-newphrase` installs a BIP39/BIP32 seed and derives the wallet as a BIP44 tree
183receiving address from it, and prints the words once. It refuses if a phrase 193along `m/44'/4346950'/0'/…` — coin type **4346950** is `0x425446`, the ASCII
194bytes `BTF`, registered in [SLIP-0044](https://github.com/satoshilabs/slips/blob/master/slip-0044.md).
195It builds the key pool and default receiving address from the seed, and prints
196the words once. It refuses if a phrase
184already exists: replacing one silently would strand every coin on addresses the 197already exists: replacing one silently would strand every coin on addresses the
185written-down words no longer describe. 198written-down words no longer describe.
186 199
@@ -207,6 +220,10 @@ matter.
207 220
208### The file 221### The file
209 222
223Under the SQLite default the wallet is one self-contained `wallet.sqlite`, and
224`-backupwallet` writes a matching `.sqlite` copy that opens on its own — no
225sidecar directory. The Berkeley DB notes below apply to a legacy `wallet.dat`.
226
210**Copying `wallet.dat` on its own is not a backup.** Berkeley DB ties the file 227**Copying `wallet.dat` on its own is not a backup.** Berkeley DB ties the file
211to the environment in the `database/` subdirectory beside it, so a lone 228to the environment in the `database/` subdirectory beside it, so a lone
212`wallet.dat` will not open elsewhere — the keys are all still in there, and the 229`wallet.dat` will not open elsewhere — the keys are all still in there, and the
@@ -244,7 +261,7 @@ as a verdict to somebody who has just lost a wallet.
244 261
245### When wallet.dat itself will not open 262### When wallet.dat itself will not open
246 263
247Everything above still runs through Berkeley DB. If the database is the thing 264A legacy `wallet.dat` runs on Berkeley DB. If that database is the thing
248that is broken — a build that will not read it, a file truncated by a bad copy, 265that is broken — a build that will not read it, a file truncated by a bad copy,
249an environment beyond recovery — the keys are usually still fine, and you can 266an environment beyond recovery — the keys are usually still fine, and you can
250take them out as text: 267take them out as text:
@@ -348,10 +365,12 @@ Other options worth knowing:
348 365
349```bash 366```bash
350-datadir=PATH # wallet and chain data elsewhere 367-datadir=PATH # wallet and chain data elsewhere
351-port=N # P2P listen port, default 8433 368-testnet # isolated test network genesis, datadir, port 18433, and magic
369-port=N # P2P listen port, default 8433; testnet default 18433
352-socks=HOST:PORT # SOCKS5 for outbound Nostr, .btf relay, and onion peer dials 370-socks=HOST:PORT # SOCKS5 for outbound Nostr, .btf relay, and onion peer dials
353-tor[=HOST:PORT] # Tor mode; default local Tor SOCKS5 proxy is 127.0.0.1:9050 371-tor[=HOST:PORT] # Tor mode; default local Tor SOCKS5 proxy is 127.0.0.1:9050
354-managedtor[=PATH] # start Tor, create a hidden service, advertise its onion 372-managedtor[=PATH] # start Tor, create a hidden service, advertise its onion
373-nomanagedtor # disable the automatic bundled-Tor startup
355-onionservice=HOST.onion:PORT # advertise this node's Tor hidden service 374-onionservice=HOST.onion:PORT # advertise this node's Tor hidden service
356-debug # verbose log; without it debug.log is nearly silent 375-debug # verbose log; without it debug.log is nearly silent
357-help # full list 376-help # full list
@@ -372,6 +391,10 @@ proxy. IPv6 proxy endpoints use brackets, for example `-socks=[::1]:9050`.
372and signed direct `.onion` peer dials through Tor, and keeps external-IP probes 391and signed direct `.onion` peer dials through Tor, and keeps external-IP probes
373disabled. Use `-tor=HOST:PORT` when Tor listens somewhere else. 392disabled. Use `-tor=HOST:PORT` when Tor listens somewhere else.
374 393
394The desktop app starts a managed Tor automatically when no other Tor option is
395set, so onion transport works out of the box; `-nomanagedtor` turns that off.
396For a headless node, ask for it explicitly:
397
375`-managedtor[=PATH]` starts a Tor process for this node, writes a local `torrc`, 398`-managedtor[=PATH]` starts a Tor process for this node, writes a local `torrc`,
376creates a v3 hidden service for port `8433`, routes outbound discovery through 399creates a v3 hidden service for port `8433`, routes outbound discovery through
377that Tor instance, and signs the generated `.onion:8433` endpoint into the 400that Tor instance, and signs the generated `.onion:8433` endpoint into the
@@ -496,7 +519,8 @@ windows-tor` to require the extra signature check.
496| Addressing | `.btf` rendezvous — see the caveats above | 519| Addressing | `.btf` rendezvous — see the caveats above |
497| Premine | None | 520| Premine | None |
498| Pool server | Built-in — `.btf` rendezvous only | 521| Pool server | Built-in — `.btf` rendezvous only |
499| Wallet recovery | Twelve-word phrase (BIP39 + BIP32), plus file backup | 522| Wallet recovery | Twelve-word phrase (BIP39 + BIP32 + BIP44, coin type 4346950), plus file backup |
523| Wallet storage | SQLite `wallet.sqlite` by default, or Berkeley DB `wallet.dat` |
500 524
501The halving interval is the number most people get wrong coming from Bitcoin. 525The halving interval is the number most people get wrong coming from Bitcoin.
502Same 210,000 blocks, but at two minutes instead of ten, so it arrives in about 526Same 210,000 blocks, but at two minutes instead of ten, so it arrives in about
@@ -504,6 +528,6 @@ ten months rather than four years.
504 528
505--- 529---
506 530
507Experimental software. Young network. Don't put in more than you are willing to lose. 531Young network. Keep your node current and don't put in more than you are willing to lose.
508 532
509MIT. Built on Bitcoin 0.1.0 (Satoshi Nakamoto, 2009). 533MIT. Built on Bitcoin 0.1.0 (Satoshi Nakamoto, 2009).