blockyard 0.0.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +251 -1
  2. package/README.md +42 -23
  3. package/bin/blockyard.js +2 -1
  4. package/docs/API.md +16 -14
  5. package/docs/ARCHITECTURE.md +92 -5
  6. package/docs/CONFIGURATION.md +33 -26
  7. package/docs/GETTING-STARTED.md +5 -2
  8. package/docs/INSTALL.md +90 -33
  9. package/docs/MEASUREMENTS.md +147 -0
  10. package/docs/SECURITY.md +32 -15
  11. package/docs/TROUBLESHOOTING.md +35 -1
  12. package/docs/USER-GUIDE.md +266 -26
  13. package/package.json +1 -1
  14. package/public/404.html +1 -1
  15. package/public/css/app.css +306 -82
  16. package/public/donate-qr.png +0 -0
  17. package/public/index.html +295 -103
  18. package/public/js/agents.js +228 -51
  19. package/public/js/app.js +82 -8
  20. package/public/js/blockscene3d.js +179 -27
  21. package/public/js/charts.js +21 -21
  22. package/public/js/depthchart.js +31 -27
  23. package/public/js/details3d.js +1456 -71
  24. package/public/js/doom.js +31 -0
  25. package/public/js/dosaudio.js +48 -0
  26. package/public/js/dosgame.js +389 -0
  27. package/public/js/dosio.js +186 -0
  28. package/public/js/dospc.js +1353 -0
  29. package/public/js/dosworker.js +196 -0
  30. package/public/js/login.js +5 -0
  31. package/public/js/markets.js +46 -8
  32. package/public/js/mining.js +310 -32
  33. package/public/js/panels.js +14 -10
  34. package/public/js/pricechart.js +14 -13
  35. package/public/js/quake.js +20 -0
  36. package/public/js/settings.js +103 -21
  37. package/public/js/soundcard.js +459 -0
  38. package/public/js/theme.js +235 -0
  39. package/public/js/wolf3d.js +22 -0
  40. package/public/js/x86.js +1978 -0
  41. package/scripts/donate-qr.py +12 -9
  42. package/scripts/dos-bench.js +56 -0
  43. package/scripts/setup.js +34 -12
  44. package/scripts/shots.mjs +6 -0
  45. package/scripts/smoke.sh +1 -1
  46. package/scripts/tls.js +31 -0
  47. package/server/chain/index/build.js +21 -4
  48. package/server/collect/monitor.js +30 -1
  49. package/server/collect/network.js +295 -0
  50. package/server/config.js +46 -22
  51. package/server/http/api.js +49 -5
  52. package/server/http/games.js +77 -0
  53. package/server/http/server.js +8 -0
  54. package/server/main.js +53 -8
  55. package/server/tls/selfsigned.js +160 -0
  56. package/systemd/blockyard.service +7 -5
  57. package/docs/PRIVATE-LEADERBOARD.md +0 -230
  58. package/docs/STATE-2026-09-09.md +0 -200
@@ -20,6 +20,9 @@ are node actions, which are off unless an operator explicitly enables them (see
20
20
  - [Tetrust](#tetrust)
21
21
  - [Blockout](#blockout)
22
22
  - [Blockanoid](#blockanoid)
23
+ - [Wolfenstein 3D](#wolfenstein-3d)
24
+ - [DOOM](#doom)
25
+ - [Quake](#quake)
23
26
  - [Peers](#peers)
24
27
  - [Network](#network)
25
28
  - [Mining](#mining)
@@ -218,35 +221,40 @@ both modes move to their new places rather than disappearing and reappearing.
218
221
 
219
222
  While the board is at rest, one effect plays every seven to thirteen seconds — the first
220
223
  about a second after the board lands — and never one that has played within the last twelve
221
- (**No repeats within**, 0 up to the length of that board's list). There are **30**, and each has its own switch. **Each board
224
+ (**No repeats within**, 0 up to the length of that board's list). There are **34**, and each has its own switch. **Each board
222
225
  has its own list**: the Block space board's switches are the **Space effects** tab, the
223
226
  Markets board's are the **Market effects** tab, and each tab has its own no-repeat window, so
224
227
  trimming one board's effects leaves the other's alone.
225
228
 
226
229
  | | |
227
230
  |---|---|
228
- | **Ripple**, **Outline sweep**, **Scan line**, **Tide** | fronts crossing the board: a spreading ring, traced edges, a tight line, a swell that lifts the cubes it passes under |
231
+ | **Ripple**, **Outline sweep**, **Scan line**, **Tide** | fronts crossing the board: a spreading ring, traced edges, a curtain of light standing floor to top — a white core with soft cyan faces, raster rippling down it, a bar it hangs from, a glowing foot with a phosphor tail, motes in the beam — and a swell that lifts the cubes it passes under |
232
+ | **X-ray** | a front sweeps the board and everything behind it goes x-ray — bodies to glass, edges and a raster lit — then develops back to solid |
229
233
  | **Cascade**, **Twinkle**, **Sparkle** | the blocks light in fee-rate order; scattered flashes; a constellation, each block its own colour |
230
234
  | **Light cycles** | a TRON-style race in blue and orange from opposite edges, leaving light walls, until one crashes and de-rezzes |
231
235
  | **Lightning ball** | a pale plasma ball entering from off-screen, tracing the grid, throwing bolts and trailing electrical dust |
232
- | **Shockwave**, **Nova**, **Fireworks**, **Solar flare** | a hard ring that throws blocks into the air; an implosion then a brighter blast; three bursts; one block going supernova |
236
+ | **Shockwave**, **Nova**, **Fireworks**, **Supernova** | a hard ring that throws blocks into the air; an implosion then a brighter blast; a fireworks display; a supernova a star swells white-hot and crackles, blows out in a flash and a lens flare, a shockwave rings out, plasma is flung on every side, and a ring nebula expands and cools gold → red → violet round a white dwarf, lighting everything near it as it goes |
233
237
  | **Wave**, **Quake**, **Checkerboard**, **Combo chain** | crests rolling across; the board shaking itself out; squares flipping against each other; a chain reaction down the diagonal |
234
238
  | **Code rain**, **Radar**, **Vortex** | a drop falling down every column; a sweep hand with a phosphor tail; spiral arms draining inward |
235
239
  | **Power-up**, **Aurora**, **Plasma** | the board charging from the floor up in gold; drifting curtains of colour; the demoscene plasma |
236
240
  | **Centipede**, **Interception**, **Collapse** | a body that weaves down the board and splits in two; arcs raining down against interceptors rising to meet them; the board giving way from a point, cubes collapsing outward |
237
241
  | **Tractor beam** | a UFO that draws the tallest transaction up into its beam, flies off with it and drops it back under gravity |
238
- | **Ball lightning** | a plasma sphere in a nebula drifting across the whole view from off-screen to off-screen, its arcs electrifying the blocks they strike — and half the arcs chain on from the struck block to another as a green discharge, half of those on to a third; on Markets it flies through the chart, striking candles and charging the price line where it passes |
239
- | **Energy pulse** | the surge that runs the neon price line on Markets, electric blue behind its head |
242
+ | **Ball lightning** | a plasma sphere in a nebula drifting across the whole view from off-screen to off-screen, a hazy white light on everything it passes, its arcs electrifying the blocks they strike and lighting where they land — and half the arcs chain on from the struck block to another as a green discharge, half of those on to a third; on Markets it flies through the chart, striking candles and charging the price line where it passes |
243
+ | **Energy pulse** | the surge that runs the neon price line on Markets: the pipe swells round its head and goes white-hot behind it, cooling back to the wire through hot gold, with a warm cloud, crackle and motes — nothing blue |
244
+ | **Breathe** | on Markets: the price line breathes, three slow swells from the plain wire to the pulse's white heat and back |
245
+ | **Light saber** | on Markets: the price line ignites from its left end as a light saber — blue, green, red or purple by the run — hums, spits sparks, and retracts |
246
+ | **Black hole** | on Markets: a point of darkness opens on the price line and grows; the line bends round it as through a lens, the candles nearest are swallowed, and an accretion disk in the chart's own colours spirals in round the shadow — brighter on the side coming toward you, its far side arched over the top and under the bottom, a photon ring hugging the horizon, starlight bent into arcs — until it shrinks away and lets everything go |
240
247
  | **Pipe bulge** | on Markets: a ball forced through the price line, the tube swelling around it with a stretched skin; it enters at the line's start at the tube's own size, leaves at its end, and runs quicker downhill than up |
241
248
 
242
249
  They are decoration only: they carry no data, they never play during a refresh, and they
243
250
  are switched off entirely under `prefers-reduced-motion`. The Block space list is every effect
244
251
  but the two drawn on a price line (**Energy pulse**, **Pipe bulge**). The Markets board is eight
245
252
  units deep and as wide as the hours, so everything there moves **along the hours, left or right,
246
- never toward you**, and lights the candles or the line. Its list is the **twelve** that
253
+ never toward you**, and lights the candles or the line. Its list is the **sixteen** that
247
254
  translate to a chart: **Ripple**, **Outline sweep**, **Tide**, **Cascade**, **Twinkle**, **Scan
248
- line**, **Fireworks**, **Solar flare**, **Wave**, and the price line's own **Energy pulse**,
249
- **Pipe bulge** and **Ball lightning** (half its Block space size there). Fronts run along the
255
+ line**, **X-ray**, **Fireworks**, **Supernova**, **Wave**, and the price line's own **Energy pulse**,
256
+ **Pipe bulge**, **Breathe**, **Light saber**, **Black hole** and **Ball lightning** (a quarter of its
257
+ Block space size there). Fronts run along the
250
258
  chart, rings start on the candle row, the candles light where they stand. Nothing on it waits
251
259
  its turn: the pulse, the bulge and ball lightning are picks like any other, and how often you
252
260
  see one is the length of the list you leave switched on.
@@ -422,11 +430,14 @@ Core supports.
422
430
 
423
431
  ## Markets
424
432
 
425
- The BTC/USD price from five exchanges' public APIs. The server fetches market data
426
- **only while someone is reading it** the Markets or Kiosk tab, or Overview, whose price
427
- line (**Display settings → Markets & Price → Price line on Overview**, on by default) reads
428
- the same feed and stops about ten minutes after the last request. Switch that line off
429
- and, with no one on Markets or Kiosk, the monitor makes no exchange requests at all.
433
+ The BTC/USD price from five exchanges' public APIs. **Polling is off by default**: out of
434
+ the box the monitor makes no outbound connection but to your node, and Markets and Kiosk say
435
+ so. Tick **Display settings → Markets & Price → Enable market polling** one switch for
436
+ every screen of this monitor, no restart needed. With it on, the server fetches market data
437
+ **only while someone is reading it** — the Markets or Kiosk tab, or Overview, whose price line
438
+ (**Display settings → Markets & Price → Price line on Overview**) reads the same feed — and
439
+ stops about ten minutes after the last request. Switch that line off and, with no one on
440
+ Markets or Kiosk, the monitor makes no exchange requests at all.
430
441
 
431
442
  ![Markets](images/markets.jpg)
432
443
 
@@ -706,6 +717,196 @@ rather than the look, flipping them reaches the game you are playing, not just t
706
717
 
707
718
  ---
708
719
 
720
+ ## Wolfenstein 3D
721
+
722
+ The shareware episode of Wolfenstein 3D, **Escape from Wolfenstein**, under **Diversions**, first of
723
+ the three DOS games. It is id Software's own `WOLF3D.EXE` v1.4 and its `.WL1` data files, unmodified,
724
+ on the same PC BlockYard emulates for DOOM and Quake. Where those two were 32-bit programs, Wolfenstein
725
+ 3D is a 16-bit **real-mode** DOS program from 1992, so here the emulated processor runs the way a PC
726
+ started up: segments and offsets, DOS's own memory, the interrupt table at the bottom of memory. AdLib
727
+ music plays on the sound card's OPL and the digitised effects ("Achtung!") on its DSP. It draws at 70
728
+ frames a second, the VGA's refresh rate, with plenty of machine to spare.
729
+
730
+ Press **play**. The sign-on screen shows what the game found (memory, mouse, Sound Blaster); press a
731
+ key, the title and the demos follow, and **Enter** or **Esc** brings up the menu: **New Game**, pick
732
+ the episode and how tough you are.
733
+
734
+ ### The files
735
+
736
+ The game's files live on the server in `games/wolf3d_dos/`: `WOLF3D.EXE`, and the eight `.WL1` files
737
+ it cannot start without (`AUDIOHED`, `AUDIOT`, `GAMEMAPS`, `MAPHEAD`, `VGADICT`, `VGAGRAPH`,
738
+ `VGAHEAD`, `VSWAP`). `CONFIG.WL1`, its settings and high scores, is optional. The page names a missing
739
+ file instead of starting.
740
+
741
+ ### Playing
742
+
743
+ **Click the screen to capture the mouse**: moving it forward and back walks, left and right turns,
744
+ the left button fires. **Esc** gives the mouse back. The keys are the game's own:
745
+
746
+ | Keys | |
747
+ |---|---|
748
+ | **↑** **↓** | walk |
749
+ | **←** **→** | turn |
750
+ | **Alt** + **←** **→** | strafe |
751
+ | **Ctrl** or left click | fire |
752
+ | **Space** | open doors, push walls |
753
+ | **Shift** (held) | run |
754
+ | **1**–**4** | knife, pistol, machine gun, chain gun |
755
+ | **Esc** | the menu |
756
+ | **F8** / **F9** | quick save / quick load |
757
+
758
+ Rebind them under **Change View** and **Control** in the game's own menu; it keeps what you choose.
759
+
760
+ ### Pausing, saving, quitting
761
+
762
+ Exactly as DOOM: it **pauses when you look away** with the machine stopped dead, **savegames, the
763
+ settings and the high scores stay in this browser**, and **Quit** ends the program the way it ended
764
+ in DOS, with a **play again** button.
765
+
766
+ ### The switches on the panel
767
+
768
+ **♫ sound**, **◌ smooth** and **⛶ full screen**, as in DOOM. In full screen a tap of **Esc** is the
769
+ game's menu, not the browser's exit; leave with the **exit full screen** button in the top corner,
770
+ or hold **Esc** for a second.
771
+
772
+ ---
773
+
774
+ ## DOOM
775
+
776
+ If anyone asks *"well, can it run DOOM?"*, the answer is an emphatic **"Naturally. What sort of AI
777
+ slop generator do you take me for?"**
778
+
779
+ The shareware episode of DOOM, **Knee-Deep in the Dead**, under **Diversions**. Not a remake: it is
780
+ id Software's own `DOOM.EXE` v1.9 and `DOOM1.WAD`, unmodified, running on a 486 PC that BlockYard
781
+ emulates in your browser — the processor, DOS and its memory extender, the VGA card and a Sound
782
+ Blaster, all written in JavaScript. It plays exactly as it did in 1993, demos, sound effects, OPL
783
+ music and all.
784
+
785
+ Press **play**. The machine boots (you will see DOOM's own start-up screen for a moment), the
786
+ demos start, and **Esc** opens DOOM's menu: **New Game** from there.
787
+
788
+ ### The files
789
+
790
+ The game's files live on the server, in `games/doom_dos/` beside the application — the shareware
791
+ package the operator put there. Without `DOOM.EXE` and `DOOM1.WAD` in that directory the page
792
+ says which file is missing instead of starting. Nothing is downloaded from anywhere else.
793
+
794
+ ### Playing
795
+
796
+ **Click the screen to capture the mouse**: moving it turns, the left button fires, the right
797
+ strafes, the middle walks forward. **Esc** gives the mouse back (and opens DOOM's menu). The keys
798
+ are **WASD** by default:
799
+
800
+ | Keys | |
801
+ |---|---|
802
+ | **W** **S** | walk |
803
+ | **A** **D** | strafe |
804
+ | **←** **→** | turn |
805
+ | **E** | open doors, press switches |
806
+ | **Ctrl** or left click | fire |
807
+ | **Shift** (held) | run |
808
+ | **1**–**7** | choose a weapon |
809
+ | **Tab** | the map |
810
+ | **Esc** | DOOM's menu |
811
+ | **F2** / **F3** | save / load |
812
+ | **F5** | detail · **F11** gamma |
813
+
814
+ Turn the **⌨ WASD** switch off for DOOM's own 1993 keys: **↑** **↓** walk, **Alt** + **←** **→**
815
+ strafe (or **,** and **.**), **Space** opens. The switch applies **at once**, in the middle of a
816
+ game — the page rewrites the running game's key settings — and DOOM saves whichever you chose
817
+ when you quit.
818
+
819
+ ### Pausing, saving, quitting
820
+
821
+ **It pauses when you look away** — another browser tab, or another page of the monitor — and the
822
+ emulated machine stops dead: its clock stops with it, so nothing moves while you are gone. Press
823
+ **resume** to carry on.
824
+
825
+ **Savegames and settings stay in this browser.** DOOM's six save slots, and the configuration it
826
+ writes when you quit (volumes, screen size, detail), are kept in the browser's storage and come
827
+ back the next time you play — on this browser only; they are never sent to the server.
828
+
829
+ **Quitting** from DOOM's menu ends the program the way it ended in DOS: the text-mode ENDOOM screen,
830
+ and a **play again** button.
831
+
832
+ ### The switches on the panel
833
+
834
+ | Switch | |
835
+ |---|---|
836
+ | **♫ sound** | The Sound Blaster, on or muted. |
837
+ | **⌨ WASD** | W A S D and E (the default), or DOOM's own keys; applies immediately. |
838
+ | **◌ smooth** | Smooths the 320×200 picture instead of showing its square pixels. |
839
+ | **⛶ full screen** | The screen alone. In Chrome it also keeps **Esc** for DOOM's menu, so leave with the **exit full screen** button in the top corner, or hold **Esc** for a second. |
840
+
841
+ The **Machine** panel says what the PC is doing: running or paused, how fast the emulated
842
+ processor is going (in millions of instructions a second), how many frames reach the screen, and
843
+ the sound card's rate. DOOM draws at most 35 frames a second, as it always did.
844
+
845
+ If the sound will not start, the page may be served over plain HTTP from a LAN address: the browser
846
+ refuses its low-latency audio there, and DOOM falls back to a simpler path that works everywhere
847
+ but can crackle when the machine is busy.
848
+
849
+ ---
850
+
851
+ ## Quake
852
+
853
+ The shareware episode of Quake, **Dimension of the Doomed**, under **Diversions**, after DOOM and on
854
+ the same emulated PC. Again the real thing: id Software's `QUAKE.EXE` v1.06 and `PAK0.PAK`,
855
+ unmodified. Quake asked a lot more of a PC than DOOM did — a Pentium and a maths coprocessor — so it
856
+ is the harder test of the machine. It plays at **forty to fifty frames a second** — better than the
857
+ Pentium it was written for managed in 1996.
858
+
859
+ Press **play**. The first start downloads the 18 MB PAK file from the server (after that the
860
+ browser revalidates it rather than fetching it again), the console scrolls past, the demos start,
861
+ and **Esc** opens Quake's menu: **Single Player → New Game**.
862
+
863
+ ### The files
864
+
865
+ The game's files live on the server in `games/quake_dos/`: `QUAKE.EXE` and `ID1/PAK0.PAK` are the
866
+ two it cannot start without. The page names a missing one instead of starting. Quake's CD music was
867
+ never part of the shareware download, so there is none; the sound effects play through the Sound
868
+ Blaster.
869
+
870
+ ### Playing
871
+
872
+ **Click the screen to capture the mouse.** Quake starts with **mouse look** on and the keys a later
873
+ game taught everyone:
874
+
875
+ | Keys | |
876
+ |---|---|
877
+ | **W** **S** | walk |
878
+ | **A** **D** | strafe |
879
+ | mouse | look and turn |
880
+ | left click or **Ctrl** | fire |
881
+ | **Space** or right click | jump |
882
+ | **Shift** (held) | run |
883
+ | **1**–**8** | choose a weapon |
884
+ | **Esc** | Quake's menu |
885
+ | **−** / **=** | a smaller or bigger view |
886
+ | **~** | the console |
887
+ | **F6** / **F9** | quicksave / quickload |
888
+
889
+ Those are set the first time only. Change anything in Quake's own **Options → Customize controls**,
890
+ and Quake saves your bindings when you quit; the page never overwrites them again.
891
+
892
+ **A smaller view runs faster.** Quake starts with its view a little inside the screen, a border
893
+ round it. Quake only draws the 3D world inside that view, so **−** makes it smaller and faster and
894
+ **=** makes it bigger, up to the whole width; Quake keeps your choice. Measured on this machine's
895
+ emulator, a smaller view is worth about a tenth more speed at the starting size, and a quarter or
896
+ more below that.
897
+
898
+ ### Pausing, saving, quitting
899
+
900
+ Exactly as DOOM: it **pauses when you look away** with the machine stopped dead, **savegames and
901
+ Quake's config stay in this browser**, and **Quit** ends the program the way it ended in DOS, with
902
+ id's order screen and a **play again** button.
903
+
904
+ ### The switches on the panel
905
+
906
+ **♫ sound**, **◌ smooth** and **⛶ full screen**, as in DOOM (and the same two ways out of full screen).
907
+
908
+ ---
909
+
709
910
  ## Peers
710
911
 
711
912
  | Panel | What it shows |
@@ -732,15 +933,22 @@ Peer identity is not guessed from another source.
732
933
 
733
934
  ## Mining
734
935
 
735
- The block under construction and who has been mining.
936
+ The block under construction and who has been mining. The layout follows mempool.space's mining dashboard: Block flow across the top, then two columns — reward stats and the difficulty adjustment, the pools and the hashrate, recent blocks and the adjustments — and our own panels beneath. **View more »** on the pools, hashrate, recent blocks and adjustments cards opens that card full screen (Esc, the close button or a click outside shuts it).
937
+
938
+ ![Mining](images/mining.jpg)
736
939
 
737
940
  | Panel | What it shows |
738
941
  |---|---|
942
+ | **Reward stats** | The last 144 blocks: the miners' reward (subsidy plus fees), the average fees per block and the average fee per transaction, from `getblockstats`, rolled forward a block at a time. Each carries its dollar figure while market polling is on (the cached spot price, never a new poll); off, a note says so. |
943
+ | **Difficulty adjustment** | Blocks remaining in the current period and when it ends at the pace so far, the estimated change (the pace projected over the period against the ten-minute target, within the protocol's factor-of-four bounds), the previous change, and the next halving's height and date. |
944
+ | **Pools** | The last week's blocks by pool, as a donut with its legend: luck (blocks found against the 1,008 the target spacing would give), the block count and how many pools. Every coinbase of the week is read from the node, eight every few seconds behind the live polls, and the note says how far that has got. |
945
+ | **Hashrate & difficulty** | The week's hashrate from `getnetworkhashps` and the current difficulty, and a year's chart: one block header a day gives that day's mean interval, and difficulty × 2³² over it is the day's hashrate estimate (the thin line), with a seven-day mean over it and the difficulty's steps on the right axis. |
946
+ | **Recent blocks** | The attributed window newest first: height (a link to the explorer), pool, when it was mined, the reward (the height's subsidy plus its fees) and the fees. Eight on the card, the whole window under View more. |
947
+ | **Adjustments** | The last periods: the first block's height, when, the difficulty and its change from the period before. Six on the card, a year under View more. |
739
948
  | **Block flow** | The same Block flow as on Overview. |
740
949
  | **Packages in the block being built** | The ancestor graph from `getrawmempool … depends`: a histogram of package sizes, then a table of the top packages with fees, weight, package fee rate, child and parent fee rates, and a small picture of the package's shape. Rows with a child paying at least twice its parent's rate are highlighted as child-pays-for-parent. If every transaction stands alone, the panel says so. That is a real reading, not a missing chart. |
741
950
  | **Feerate landscape** | The template's transactions bucketed by sat/vB, with green buckets well above the block's median and red ones below it. |
742
951
  | **Pools in this window** | Blocks per pool, share, median fee rate, average weight, and the coinbase tags seen. A pool the curated label map does not recognise is marked `unlabelled` and shown by its raw tag. |
743
- | **Mempool space** | The Block space viewer, with a note giving how many transactions are drawn and how long ago the pool was read. |
744
952
  | **Attribution** | How many blocks have been attributed, the height window, how many labels matched, where the label map came from, and the cost of the block template. |
745
953
  | **Detailed** (click to expand) | What this node can and cannot answer about mining, and why. |
746
954
 
@@ -782,8 +990,7 @@ How the monitor treats your node, and where every number comes from.
782
990
 
783
991
  ## Admin
784
992
 
785
- Visible only when accounts are enabled (`BLOCKYARD_AUTH=1`) and you are signed in as an
786
- admin.
993
+ Visible only when accounts are enabled (the default) and you are signed in as an admin.
787
994
 
788
995
  - **Users**: every account with its role, creation date and last login, with buttons
789
996
  to change the role or disable the account. **generate password** creates a user
@@ -857,6 +1064,8 @@ can bookmark it or send it to someone who can reach the same monitor:
857
1064
  | Tetrust | `#tetrust` |
858
1065
  | Blockout | `#blockout` |
859
1066
  | Blockanoid | `#blockanoid` |
1067
+ | DOOM | `#doom` |
1068
+ | Quake | `#quake` |
860
1069
  | Peers | `#peers` |
861
1070
  | Network | `#network` |
862
1071
  | Mining | `#mining` |
@@ -896,9 +1105,37 @@ same whatever you choose here.
896
1105
 
897
1106
  ![Display settings](images/settings.jpg)
898
1107
 
899
- The panel is **tabbed** Block space, Sky, Markets & Price, Blockout, Blockanoid, Space
900
- effects, Market effects and Tetrust. The two **effects** tabs are lists of switches, so they
901
- also get **all on** and **all off**; twenty-eight of them is a lot of clicking otherwise.
1108
+ The panel is **tabbed**, in three labelled rows: **Boards** (Appearance, Block space, Sky,
1109
+ Markets & Price), **Effects** (Space effects, Market effects) and **Diversions** (Tetrust,
1110
+ Blockout, Blockanoid). The two **effects** tabs are lists of switches, so they also get **all
1111
+ on** and **all off**; twenty-nine of them is a lot of clicking otherwise.
1112
+
1113
+ ### Appearance
1114
+
1115
+ The colours of the layout: the page, its cards, text, lines, the accent, and the axis text, grid
1116
+ lines and tooltips of every chart. The 3D boards are space whatever you choose, and the
1117
+ Explorer's block and transaction pages keep their own dark cards.
1118
+
1119
+ - **Theme mode** — Light, Dark or System. Every theme has a light face and a dark face; the mode
1120
+ picks which. System follows the operating system's setting and changes with it.
1121
+ - **Theme** — a card per theme, each with a strip of its swatches in the face the mode picks:
1122
+ - **BlockYard** — the shipped look, charcoal and bitcoin orange. The default; its dark face is
1123
+ exactly what the monitor drew before this tab existed.
1124
+ - **Mono** — clean grayscale, minimal and focused. The good, warning and bad colours stay, muted.
1125
+ - **Nous** — GitHub's chrome with a Nous blue accent.
1126
+ - **GitHub** — GitHub Light Default and Dark Default.
1127
+ - **Catppuccin** — the soothing pastels, Latte (light) and Mocha (dark).
1128
+ - **Custom** — your own nine colours, from the pickers below the cards.
1129
+ - **customise …** — the button beside the cards copies the theme on screen into the nine pickers
1130
+ and selects Custom, so you start from a look rather than from scratch.
1131
+ - **The nine pickers** — Page, Panels, Text, Muted text, Accent, Lines, Good, Warning and Bad.
1132
+ Everything else (a raised panel, the softer rules, the fainter text, the darker accent of a
1133
+ pressed button) is derived from them, so a custom theme hangs together whatever you pick.
1134
+ Whether Custom counts as light or dark follows from the Page colour, so a pale page gets dark
1135
+ derived shades and vice versa. The pickers are dimmed until Custom is the theme.
1136
+
1137
+ Like every other setting these are saved on the server, so the theme is the same on every screen
1138
+ of this monitor; the sign-in page draws in the theme this browser last saw.
902
1139
 
903
1140
  ### Block space
904
1141
 
@@ -942,9 +1179,9 @@ space, Markets and Tetrust alike. Whether a given board shows it stays that boar
942
1179
 
943
1180
  ### Space effects and Market effects
944
1181
 
945
- One tab per board. **Space effects** is a switch for each of the **28** idle effects the Block
1182
+ One tab per board. **Space effects** is a switch for each of the **29** idle effects the Block
946
1183
  space board can play, listed under [Idle effects](#idle-effects) above; **Market effects** is a
947
- switch for each of the **12** the Markets board can play (named under Idle effects). Each tab has **all on** and **all off**, and its own
1184
+ switch for each of the **16** the Markets board can play (named under Idle effects). Each tab has **all on** and **all off**, and its own
948
1185
  **No repeats within**: how many other effects must play before one can play again (12 by
949
1186
  default; 0 allows a repeat straight away).
950
1187
 
@@ -962,9 +1199,11 @@ Markets & Price.
962
1199
 
963
1200
  ### Markets & Price
964
1201
 
965
- The candle board on Markets and Kiosk: the **star field** on or off, and **board effects** one
966
- switch for everything that moves on this board, both the idle effects and the flight when the
967
- candles refresh. Which idle effects may play is the **Market effects** tab.
1202
+ First the feed itself: **Enable market polling**, off out of the box, is the one switch that
1203
+ lets this monitor talk to anyone but your node (see [Markets](#markets)). Then the candle board
1204
+ on Markets and Kiosk: the **star field** on or off, and **board effects** — one switch for
1205
+ everything that moves on this board, both the idle effects and the flight when the candles
1206
+ refresh. Which idle effects may play is the **Market effects** tab.
968
1207
 
969
1208
  Your toolbar choices are remembered too: the **exchange** whose candles are drawn and the
970
1209
  **range** (24 hours, 48 hours or 7 days). Click them on the Markets page or set them here; either
@@ -972,7 +1211,8 @@ way the page opens where you left it.
972
1211
 
973
1212
  | setting | what it does |
974
1213
  |---|---|
975
- | **Price line on Overview** | The USD median, spread, 24 h volume and how many books reported, at the top of Overview. **On by default** and because it needs the exchange feed, this monitor then contacts five exchanges whenever Overview is open, not only on Markets and Kiosk. Switch it off and the landing page talks to nothing but your node. |
1214
+ | **Enable market polling** | **Off by default.** Lets the server ask five exchanges for prices, candles and order books the only thing the monitor ever says to anyone but your node. Until it is on, Markets and Kiosk say so and the explorer shows no dollar figures. Shared by every screen; takes effect at once, and unticking parks the feed at once. (`BLOCKYARD_MARKETS=0` on the server removes the feed so that this box cannot turn it on.) |
1215
+ | **Price line on Overview** | The USD median, spread, 24 h volume and how many books reported, at the top of Overview. It needs market polling (above); with that on, this monitor then contacts five exchanges whenever Overview is open, not only on Markets and Kiosk. Switch it off and the landing page talks to nothing but your node. |
976
1216
  | **Price view** | Which price panel Markets draws: the *flat chart* (default) or the *3D candle board*. One at a time; the 2D / 3D buttons on the page set the same thing. |
977
1217
 
978
1218
  ### Blockout
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blockyard",
3
- "version": "0.0.9",
3
+ "version": "0.1.0",
4
4
  "description": "Live web monitor, 3D block-space viewer, block explorer and markets view for a Bitcoin Core node",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
package/public/404.html CHANGED
@@ -5,5 +5,5 @@
5
5
  <h1>404</h1>
6
6
  <p class="sub">No such page on this monitor.</p>
7
7
  <p class="note tiny">API endpoints live under <span class="mono">/api/</span>; the dashboard is at <a href="/">/</a>.</p>
8
- <p class="mt-14"><a href="/">back to the dashboard</a></p>
8
+ <p class="mt-6"><a href="/">back to the dashboard</a></p>
9
9
  </div></body></html>