diff options
| author | bitflash-maintainer <noreply@bitflash.invalid> | 2026-09-05 05:08:30 +0000 |
|---|---|---|
| committer | bitflash-maintainer <noreply@bitflash.invalid> | 2026-09-05 05:08:30 +0000 |
| commit | 66e0b9158d050c46b1ff2509faeee3f4573cac1c (patch) | |
| tree | 7e9132aa871fdc01cb95268d2f5ea3bb11853ddf /README.md | |
| parent | 36201d2795b7b49beb1a837b0252134096beb64d (diff) | |
| parent | 17741d9cf4c762ea03dc83e8aae6a176e5f338b0 (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.md | 50 |
1 files changed, 37 insertions, 13 deletions
| @@ -8,9 +8,11 @@ CPU-only cryptocurrency. A revival of Bitcoin 0.1.0 with RandomX proof of work a | |||
| 8 | 8 | ||
| 9 | -2ea44f?style=for-the-badge) | 9 | -2ea44f?style=for-the-badge) |
| 10 |  | 10 |  |
| 11 |  | ||
| 11 |  | 12 |  |
| 13 | [](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 | ||
| 49 | Download the [latest release](../../releases/latest) and run. No install, no | 51 | Download the [latest release](https://releases.bitflash.network/) and run. No |
| 50 | configuration — it connects automatically and starts syncing. | 52 | install, 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 |
| 55 | If you want managed Tor without a separate Tor install, use the | 57 | bundled and a managed Tor instance starts automatically, so onion transport |
| 56 | `-windows-with-tor.zip` package and start Bitflash with `-managedtor`. | 58 | works with no separate install. Pass `-nomanagedtor` to turn it off. |
| 57 | 59 | ||
| 58 | Every release ships a `SHA256SUMS` covering the assets. Verifying takes a second | 60 | Every release ships a `SHA256SUMS` covering the assets. Verifying takes a second |
| 59 | and is worth doing: | 61 | and is worth doing: |
| @@ -83,7 +85,7 @@ Public mirrors should make the latest checksum files available both under the | |||
| 83 | versioned release directory and at the release root: | 85 | versioned release directory and at the release root: |
| 84 | 86 | ||
| 85 | ```text | 87 | ```text |
| 86 | https://releases.bitflash.network/v1.2.19/SHA256SUMS | 88 | https://releases.bitflash.network/v1.2.20/SHA256SUMS |
| 87 | https://releases.bitflash.network/SHA256SUMS # alias to latest | 89 | https://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 | |||
| 166 | phrase and the file back up different things, and the difference is where people | 168 | phrase and the file back up different things, and the difference is where people |
| 167 | lose money. | 169 | lose money. |
| 168 | 170 | ||
| 171 | Since 1.2.20 the file is a single self-contained `wallet.sqlite` by default. A | ||
| 172 | fresh data directory starts on it; an existing Berkeley DB `wallet.dat` keeps | ||
| 173 | working and the desktop app converts it in one click on first run, never | ||
| 174 | touching the original, which stays as a fallback. Choose a backend explicitly | ||
| 175 | with `-walletbackend=sqlite` or `-walletbackend=bdb`, recorded in a | ||
| 176 | `wallet-backend` marker in the data directory. See | ||
| 177 | [wallet storage](docs/storage.md). | ||
| 178 | |||
| 169 | The derivation is written down in [docs/derivation.md](docs/derivation.md), with | 179 | The derivation is written down in [docs/derivation.md](docs/derivation.md), with |
| 170 | test vectors and a script that reproduces them from scratch. It is there so the | 180 | test vectors and a script that reproduces them from scratch. It is there so the |
| 171 | twelve words keep working even if this software does not: paths, address format | 181 | twelve words keep working even if this software does not: paths, address format |
| @@ -179,8 +189,11 @@ bitflash -newphrase # create it, show it once, exit | |||
| 179 | bitflash -restorephrase="twelve words here" # rebuild a wallet from it | 189 | bitflash -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 |
| 183 | receiving address from it, and prints the words once. It refuses if a phrase | 193 | along `m/44'/4346950'/0'/…` — coin type **4346950** is `0x425446`, the ASCII |
| 194 | bytes `BTF`, registered in [SLIP-0044](https://github.com/satoshilabs/slips/blob/master/slip-0044.md). | ||
| 195 | It builds the key pool and default receiving address from the seed, and prints | ||
| 196 | the words once. It refuses if a phrase | ||
| 184 | already exists: replacing one silently would strand every coin on addresses the | 197 | already exists: replacing one silently would strand every coin on addresses the |
| 185 | written-down words no longer describe. | 198 | written-down words no longer describe. |
| 186 | 199 | ||
| @@ -207,6 +220,10 @@ matter. | |||
| 207 | 220 | ||
| 208 | ### The file | 221 | ### The file |
| 209 | 222 | ||
| 223 | Under 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 | ||
| 225 | sidecar 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 |
| 211 | to the environment in the `database/` subdirectory beside it, so a lone | 228 | to 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 | ||
| 247 | Everything above still runs through Berkeley DB. If the database is the thing | 264 | A legacy `wallet.dat` runs on Berkeley DB. If that database is the thing |
| 248 | that is broken — a build that will not read it, a file truncated by a bad copy, | 265 | that is broken — a build that will not read it, a file truncated by a bad copy, |
| 249 | an environment beyond recovery — the keys are usually still fine, and you can | 266 | an environment beyond recovery — the keys are usually still fine, and you can |
| 250 | take them out as text: | 267 | take 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`. | |||
| 372 | and signed direct `.onion` peer dials through Tor, and keeps external-IP probes | 391 | and signed direct `.onion` peer dials through Tor, and keeps external-IP probes |
| 373 | disabled. Use `-tor=HOST:PORT` when Tor listens somewhere else. | 392 | disabled. Use `-tor=HOST:PORT` when Tor listens somewhere else. |
| 374 | 393 | ||
| 394 | The desktop app starts a managed Tor automatically when no other Tor option is | ||
| 395 | set, so onion transport works out of the box; `-nomanagedtor` turns that off. | ||
| 396 | For 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`, |
| 376 | creates a v3 hidden service for port `8433`, routes outbound discovery through | 399 | creates a v3 hidden service for port `8433`, routes outbound discovery through |
| 377 | that Tor instance, and signs the generated `.onion:8433` endpoint into the | 400 | that 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 | ||
| 501 | The halving interval is the number most people get wrong coming from Bitcoin. | 525 | The halving interval is the number most people get wrong coming from Bitcoin. |
| 502 | Same 210,000 blocks, but at two minutes instead of ten, so it arrives in about | 526 | Same 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 | ||
| 507 | Experimental software. Young network. Don't put in more than you are willing to lose. | 531 | Young network. Keep your node current and don't put in more than you are willing to lose. |
| 508 | 532 | ||
| 509 | MIT. Built on Bitcoin 0.1.0 (Satoshi Nakamoto, 2009). | 533 | MIT. Built on Bitcoin 0.1.0 (Satoshi Nakamoto, 2009). |