upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/readme.txt
blob: 752be661274d7b646ef2e377dbdcfde9219d1dfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Bitflash (BTF) v0.1 ALPHA
=========================

A revival of Satoshi Nakamoto's original Bitcoin v0.1 client (2009), ported to
a modern toolchain and turned into its own Layer 1 network.

Philosophy: fair launch, no pre-mine, no ICO. One CPU, one vote.

Based on code Copyright (c) 2009 Satoshi Nakamoto.
Copyright (c) 2026 The Bitflash developers.
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project.


Differences from the original Bitcoin
-------------------------------------
- Own genesis block (22/Jul/2026 headline, independent chain)
- Own magic bytes (0xbf 0x1a 0x5c 0xfd) and P2P port 8433
- Addresses start with "B" (ADDRESSVERSION = 25)
- Consensus fixes applied: value overflow (CVE-2010-5139), duplicate inputs,
  money range checks (MoneyRange)
- IRC peer discovery replaced by Nostr relay discovery
- Memory-hard Proof of Work (RandomX, CPU + RAM) instead of SHA-256d
- Economics identical to Bitcoin: 50 BTF/block, halving every 210,000 blocks,
  21 million total


Build (Windows, MSYS2 UCRT64)
-----------------------------
Modern toolchain:
  g++ 16 (MinGW-w64 UCRT), wxWidgets 3.2, OpenSSL 3, Berkeley DB 6, Boost,
  libsecp256k1 (Schnorr), nlohmann/json, RandomX

Bundled dependencies are built from source into ../deps and ../RandomX.
In the MSYS2 UCRT64 shell:
  bash build.sh          (uses src/makefile.mingw)

The resulting executable is src/bitflash.exe.


Command-line options (in addition to the original ones)
-------------------------------------------------------
  /port=N        listen on P2P port N (default 8433)
  /socks=HOST:PORT
                 route outbound Nostr, .btf rendezvous, and direct onion peer
                 dials through a SOCKS5 proxy, e.g. /socks=127.0.0.1:9050 for local Tor
                 or /socks=[::1]:9050 for an IPv6 loopback proxy
  /tor[=HOST:PORT]
                 Tor mode for outbound Nostr, .btf rendezvous, and direct onion peer dials;
                 defaults to the local Tor SOCKS5 proxy at 127.0.0.1:9050
  /managedtor[=PATH]
                 start Tor, create a v3 hidden service for this node, route outbound
                 discovery through it, and advertise the generated onion endpoint
                 Windows release packages that include tor/tor.exe start this mode
                 automatically; use /nomanagedtor to force the legacy relay path
  /solomine      mine without requiring a connected peer (local testing)
  /operator      operator mode (run pool server)
  /participant=ADDR
                 participant mode; mine to pool .btf address ADDR
  /stratumbridge=ADDR
                 listen on 127.0.0.1:3333 and bridge external Stratum miners
                 to pool .btf address ADDR
  /stratumbridgeport=N
                 local Stratum bridge port (default 3333)
  /poolname=NAME operator announcement pool name
  /poolfee=PCT   operator announcement fee percent (example: 0.75)
  /pooldashboard=URL
                 operator announcement dashboard URL
  /poolstatusfile=PATH
                 write pool status JSON for dashboards
  /poolroundsfile=PATH
                 write public pool round proofs JSON
  /connectbtf=ADDR
                 keep an outbound .btf connection to ADDR
  /rvrelay=HOST:PORT
                 override meeting relay list with one relay
  /announcerelay=HOST:PORT
                 announce this relay on Nostr for discovery
  /onionservice=HOST.onion:PORT
                 advertise this node's Tor hidden service in its signed .btf descriptor


Roadmap
-------
Milestone 0  Compile the original client on a modern toolchain   [done]
Milestone 1  Bitflash identity + genesis + consensus fixes       [done]
Milestone 2  Peer discovery over Nostr relays                    [done]
Milestone 3  Memory-hard PoW (RandomX) instead of SHA-256d       [done]
Milestone 4  Public testnet