-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
694 lines (668 loc) · 32.9 KB
/
Copy pathindex.html
File metadata and controls
694 lines (668 loc) · 32.9 KB
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>GridPool | Decentralized reward sharing for sovereign Bitcoin miners</title>
<meta
name="description"
content="GridPool is a decentralized reward-sharing protocol for sovereign Bitcoin miners. Keep your own block templates, share high-difficulty proofs, and reduce solo-mining variance without a custodial pool wallet."
/>
<meta name="theme-color" content="#080a0d" />
<meta property="og:title" content="GridPool" />
<meta
property="og:description"
content="The pool for cypherpunks."
/>
<meta property="og:type" content="website" />
<link rel="icon" href="assets/img/gridpool_favicon.png" type="image/png" />
<link rel="apple-touch-icon" href="assets/img/gridpool_favicon.png" />
<link rel="stylesheet" href="assets/css/gridpool.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<header class="site-header">
<a class="brand" href="#top" aria-label="GridPool home">
<img src="assets/img/gridpool_logo.png" alt="" />
<span>GridPool</span>
</a>
<nav class="site-nav" aria-label="Primary navigation">
<a href="#how">How it works</a>
<a href="#resilience">Threat model</a>
<a href="#faq">FAQ</a>
<a href="#connect">Connect</a>
<a href="#resources">Resources</a>
<a href="https://github.com/gridlabs-science/boot-protocol" rel="noreferrer">Source</a>
</nav>
</header>
<main id="main">
<section class="hero" id="top" aria-labelledby="hero-title">
<div class="hero-backdrop" aria-hidden="true"></div>
<div class="hero-content">
<p class="eyebrow">Open-source Bitcoin mining infrastructure</p>
<h1 id="hero-title">The pool for cypherpunks.</h1>
<p class="hero-copy">
GridPool lets sovereign miners share payout variance while each miner
keeps building their own Bitcoin block templates. It is not a
custodial pool wallet, not a sharechain, and not a Stratum V1 pool
endpoint.
</p>
<div class="hero-actions" aria-label="Primary actions">
<a class="button button-primary" href="#connect">Connect your DATUM</a>
<a class="button" href="#watch">Watch the explainer</a>
<a class="button" href="https://github.com/gridlabs-science/boot-protocol" rel="noreferrer">View source</a>
</div>
</div>
<div class="hero-side">
<aside class="hero-panel" aria-label="Public beta status">
<strong>Public beta</strong>
<span>Mainnet soft launch and Testnet4 validation networks are separated.</span>
<a href="https://main.gridpool.net" rel="noreferrer">Mainnet node UI</a>
<a href="https://test.gridpool.net" rel="noreferrer">Testnet4 node UI</a>
</aside>
</div>
</section>
<section class="signal-strip" aria-label="GridPool core properties">
<div>
<strong>No custodial wallet</strong>
<span>Rewards are paid directly from coinbase outputs.</span>
</div>
<div>
<strong>Sovereign templates</strong>
<span>Miners keep transaction selection local and private.</span>
</div>
<div>
<strong>Verified proof-of-work</strong>
<span>Shares are ranked by difficulty, not by identity.</span>
</div>
<div>
<strong>DATUM today</strong>
<span>Hydrapool and direct HTTP integrations are next.</span>
</div>
</section>
<section class="section resilience-section" id="resilience" aria-labelledby="resilience-title">
<div class="resilience-shell">
<div class="resilience-heading">
<p class="eyebrow">Threat model</p>
<h2 id="resilience-title">
<span class="threat-kicker">Engineered to withstand</span>
<span class="threat-rotator" data-threat-rotator aria-live="polite">block withholding attacks.</span>
</h2>
<p>
GridPool's defense is simple: remove the things attackers usually
grab. No pool wallet to seize. No central template authority to
pressure. No sharechain ledger to rewrite. No user identity votes
to Sybil.
</p>
</div>
<div class="resilience-visual" aria-hidden="true">
<div class="mesh-node mesh-node-a"></div>
<div class="mesh-node mesh-node-b"></div>
<div class="mesh-node mesh-node-c"></div>
<div class="mesh-node mesh-node-d"></div>
<div class="mesh-node mesh-node-e"></div>
<div class="mesh-line mesh-line-1"></div>
<div class="mesh-line mesh-line-2"></div>
<div class="mesh-line mesh-line-3"></div>
<div class="mesh-line mesh-line-4"></div>
<div class="mesh-core">GP</div>
</div>
</div>
<div class="resilience-grid">
<article class="resilience-card">
<span>01</span>
<h3>Custody attacks</h3>
<p>
There is no pool hot wallet and no withdrawal queue. Valid blocks
pay miners directly from the coinbase transaction.
</p>
</article>
<article class="resilience-card">
<span>02</span>
<h3>Censorship pressure</h3>
<p>
Internode share messages prove work and payout commitment without
revealing the miner's full transaction set.
</p>
</article>
<article class="resilience-card">
<span>03</span>
<h3>Sharechain attacks</h3>
<p>
GridPool has no secondary blockchain to reorg, privately mine, or
51 percent attack as a separate consensus object.
</p>
</article>
<article class="resilience-card">
<span>04</span>
<h3>Sybil accounting</h3>
<p>
Payout slots are earned by verified proof-of-work difficulty, not
accounts, IP addresses, or node identities.
</p>
</article>
<article class="resilience-card">
<span>05</span>
<h3>Payout hijacking</h3>
<p>
Share attribution comes from the slot-0 coinbase payout address
committed into the Merkle root and block header.
</p>
</article>
<article class="resilience-card">
<span>06</span>
<h3>Opaque operators</h3>
<p>
The reference node exposes the payout lists and peer state so miners
can verify what team they are actually mining with.
</p>
</article>
</div>
<aside class="resilience-caveat">
<strong>Not magic, still Bitcoin.</strong>
<p>
GridPool does not eliminate Bitcoin-level 51 percent attacks, network
eclipse attacks, DDoS, bad firmware, or miners who choose censored
templates locally. It reduces the pool-layer choke points that make
those failures easier to coordinate.
</p>
</aside>
</section>
<section class="section section-split" id="watch" aria-labelledby="watch-title">
<div class="section-heading">
<p class="eyebrow">Start here</p>
<h2 id="watch-title">Seven minutes to the core idea.</h2>
<p>
GridPool takes the variance-reduction goal of a mining pool and
removes the central payout wallet and share accounting. Miners coordinate on payout lists
using Bitcoin-style proof-of-work shares, without using a separate sharechain.
</p>
<div class="section-actions">
<a class="button" href="GridPool_for_Cypherpunks.mp4">Download video</a>
<a class="button" href="GridPool_Architecture.pdf">Read the (AI slop) slide deck</a>
</div>
</div>
<div class="video-card">
<video controls preload="metadata" playsinline>
<source src="GridPool_for_Cypherpunks.mp4" type="video/mp4" />
Your browser does not support embedded video.
</video>
</div>
</section>
<section class="section" id="how" aria-labelledby="how-title">
<div class="section-heading">
<p class="eyebrow">Shared lottery mining</p>
<h2 id="how-title">How GridPool works</h2>
<p>
GridPool does not try to reproduce traditional pool accounting.
Instead, it lets miners submit high-difficulty proofs into a bounded unpaid Work Set.
Every Bitcoin block turns the current top unpaid proofs into the active coinbase payout
snapshot, and any peer can verify the proofs.
</p>
</div>
<div class="steps-grid">
<article class="step-card">
<span>01</span>
<h3>Build your own block</h3>
<p>
Your mining stack constructs a Bitcoin block template locally, ideally using your own trustless copy of the pool's current payout list,
and inserts your own payout address in slot 0. The
block pays slot 0 to the block finder and shares the rest across the
active GridPool payout snapshot.
</p>
</article>
<article class="step-card">
<span>02</span>
<h3>Submit high-difficulty proofs</h3>
<p>
When your miner finds a share strong enough to compete for the
unpaid Work Set, your node relays the header, coinbase, and minimal Merkle
proof needed for trustless verification. Your full transaction set is kept private.
</p>
</article>
<article class="step-card">
<span>03</span>
<h3>Rank by verified work</h3>
<p>
Peers verify the proof-of-work and attribute the share to the payout address in
slot-0 of the coinbase output. Identities do not vote, so Sybil accounts do
not create extra payout weight.
</p>
</article>
<article class="step-card">
<span>04</span>
<h3>Snapshots and payouts</h3>
<p>
Ordinary Bitcoin blocks create fresh payout snapshots without clearing unpaid work.
When a GridPool miner finds a real block, that block pays the active snapshot directly,
and only the paid proof IDs are removed from the reserve.
</p>
</article>
</div>
</section>
<section class="section compare-section" aria-labelledby="compare-title">
<div class="section-heading">
<p class="eyebrow">Different tradeoffs</p>
<h2 id="compare-title">Not a normal pool. Not pure solo.</h2>
</div>
<div class="comparison-grid">
<article>
<h3>Compared with classic pools</h3>
<p>
GridPool does not collect block rewards into a pool wallet, does not
decide your transaction template, and does not pay from a centralized
ledger. The tradeoff is higher variance than FPPS or PPLNS.
</p>
</article>
<article>
<h3>Compared with sharechains</h3>
<p>
GridPool avoids maintaining a second blockchain. There is no
sharechain history to reorg, privately mine, or 51 percent attack as
a separate consensus object.
</p>
</article>
<article>
<h3>Compared with solo mining</h3>
<p>
GridPool keeps the local-control feel of solo mining but shares the
block subsidy across recent high-difficulty contributors, reducing
payout variance by up to roughly 300x.
</p>
</article>
</div>
</section>
<section class="section faq-section" id="faq" aria-labelledby="faq-title">
<div class="section-heading">
<p class="eyebrow">Common critiques</p>
<h2 id="faq-title">Fair questions deserve precise answers.</h2>
<p>
GridPool is a beta protocol, not a finished theorem. These are the
short answers to the objections miners keep raising, with the full
modeling roadmap linked below.
</p>
</div>
<div class="faq-grid">
<details class="faq-item" open>
<summary>Is GridPool vulnerable to pool hopping?</summary>
<p>
Not in the classic sense. A high-difficulty proof is work already
performed, and old proofs are displaced as new unpaid work arrives.
Leaving after a lucky proof gives up future proof opportunities and
slot-0 block-finder upside. Current simulations treat this as an
economic tradeoff, not a magic exploit.
</p>
</details>
<details class="faq-item">
<summary>What if a large miner earns slots and leaves?</summary>
<p>
They may still be paid for valid work they already contributed,
but their proofs decay out of the bounded reserve as stronger work
arrives. If their old work survives until a GridPool block, they
can be paid for it; if stronger work arrives first, those proofs
fall out of the live payout snapshot.
</p>
</details>
<details class="faq-item">
<summary>Is this just loose consensus?</summary>
<p>
GridPool avoids a sharechain, but it still has consensus rules.
Nodes verify proof-of-work, Merkle roots, coinbase outputs, slot-0
attribution, parent context, payout snapshot context, and duplicate
status. V2.1 treats Bitcoin-block snapshot boundaries as local
finality points and merges valid current-parent work forward
instead of blindly rewriting old snapshots.
</p>
</details>
<details class="faq-item">
<summary>Can Sybil nodes gain payout weight?</summary>
<p>
Not directly. Payout slots are earned by verified proof difficulty,
not identities, accounts, IP addresses, or server count. Sybils can
still attack networking, so peer selection and anti-DoS work still
matters.
</p>
</details>
<details class="faq-item">
<summary>Can peers censor transactions from share data?</summary>
<p>
GridPool share messages reveal the coinbase and its Merkle path,
not the full transaction set. Peers can verify payout commitments
without seeing arbitrary included transactions until a real block
is found.
</p>
</details>
<details class="faq-item">
<summary>Can a majority miner fork the team?</summary>
<p>
A majority miner can try to mine a private or censoring payout
state, but it cannot forge other miners' proofs or rewrite a
sharechain because there is no sharechain. This becomes a
team-split and censorship-cartel problem, and it is a high-priority
adversarial simulation target.
</p>
</details>
<details class="faq-item">
<summary>Can a home node participate without a public IP address?</summary>
<p>
Yes, but with a current beta limitation. Outbound-only nodes can
connect to public seeds and submit work, and the reference node
shows them as live sessions instead of fake public endpoints.
Broader hidden-peer relay and NAT traversal are still being
hardened, so public nodes are still important for network
resilience during beta.
</p>
</details>
<details class="faq-item">
<summary>Does every Bitcoin block pay a GridPool round?</summary>
<p>
No. Ordinary Bitcoin blocks create fresh payout snapshots from
unpaid work. They update the template miners should build on, but
they do not pay anyone. A payout happens only when a GridPool miner
finds a real Bitcoin block that pays the active snapshot.
</p>
</details>
</div>
<div class="section-actions faq-actions">
<a class="button" href="https://github.com/gridlabs-science/boot-protocol/blob/main/docs/critic-faq.md" rel="noreferrer">Read full FAQ</a>
<a class="button" href="https://github.com/gridlabs-science/boot-protocol/blob/main/docs/modeling-and-simulation-roadmap.md" rel="noreferrer">View modeling roadmap</a>
</div>
</section>
<section class="section connect-section" id="connect" aria-labelledby="connect-title">
<div class="section-heading">
<p class="eyebrow">Public beta connection guide</p>
<h2 id="connect-title">Connect sovereign, or test the next bridges.</h2>
<p>
GridPool is built for sovereign miners who construct their own
block templates. The preferred path is still DATUM or another
template-building server connected to your own GridPool node. For
miners who only have standard Stratum V1 today, a Hydrapool-hosted
bridge is the easier beta on-ramp. Native Stratum V2 is now
available for early testing as the header-only path for firmware
that cannot parse large GridPool coinbases.
</p>
</div>
<aside class="notice-box firmware-warning" aria-label="Miner firmware compatibility warning">
<strong>Firmware compatibility warning for the 300-slot beta</strong>
<p>
GridPool consensus requires miners to hash the full active payout
template. Older stock Bitmain firmware and NiceHash-style clients may
be fingerprinted by DATUM into small coinbase variants that omit
required GridPool payout outputs. Those shares are rejected as
invalid.
</p>
<p>
For now, use DATUM with firmware known to support larger coinbase
templates, such as ePIC / PowerPlay-BM, VNish / xminer-class
firmware, Whatsminer-class firmware, Bitaxe, or other firmware DATUM
fingerprints into larger coinbase classes. Smaller compatibility
teams may be added later.
</p>
</aside>
<div class="connect-layout">
<article class="connect-card connect-card-primary">
<div class="card-topline">
<span class="status status-live">Mainnet beta</span>
<span>Main chain</span>
</div>
<h3>Quick start: mine real Bitcoin</h3>
<p>
Use this when you understand the beta status and want to point a
DATUM gateway at the public mainnet GridPool node.
</p>
<div class="endpoint-list" aria-label="Mainnet DATUM endpoint">
<div class="copy-row">
<span>Pool Host</span>
<code>datum.main.gridpool.net</code>
<button type="button" class="copy-button" data-copy="datum.main.gridpool.net">Copy</button>
</div>
<div class="copy-row">
<span>Pool Port</span>
<code>3008</code>
<button type="button" class="copy-button" data-copy="3008">Copy</button>
</div>
<div class="copy-row copy-row-key">
<span>Pool pubkey</span>
<code>46d0fa9529eff366471d232e3997341ad91185ec225302296967440cb96c2b1942e513d5dcfcdce90d89b8376159d5c19fcad913e4028a051b8a4d776c152d0c</code>
<button type="button" class="copy-button" data-copy="46d0fa9529eff366471d232e3997341ad91185ec225302296967440cb96c2b1942e513d5dcfcdce90d89b8376159d5c19fcad913e4028a051b8a4d776c152d0c">Copy</button>
</div>
</div>
<a class="button button-primary" href="https://main.gridpool.net" rel="noreferrer">Open mainnet node UI</a>
</article>
<article class="connect-card">
<div class="card-topline">
<span class="status">Testnet4</span>
<span>Protocol testing</span>
</div>
<h3>Quick start: testnet snapshots</h3>
<p>
Use this for experiments, integrations, and real-trigger behavior
without risking mainnet funds.
</p>
<div class="endpoint-list" aria-label="Testnet4 DATUM endpoint">
<div class="copy-row">
<span>Pool Host</span>
<code>datum.test.gridpool.net</code>
<button type="button" class="copy-button" data-copy="datum.test.gridpool.net">Copy</button>
</div>
<div class="copy-row">
<span>Pool Port</span>
<code>3009</code>
<button type="button" class="copy-button" data-copy="3009">Copy</button>
</div>
<div class="copy-row copy-row-key">
<span>Pool pubkey</span>
<code>005b8dde7340e0c9a429cb5aded936eccf23a832ec2805e16fd4e53f6617617e98d735f7f8ebf28f7ef3227bd437d1e85822881ee6ba492bc3dcd6689c79b13c</code>
<button type="button" class="copy-button" data-copy="005b8dde7340e0c9a429cb5aded936eccf23a832ec2805e16fd4e53f6617617e98d735f7f8ebf28f7ef3227bd437d1e85822881ee6ba492bc3dcd6689c79b13c">Copy</button>
</div>
</div>
<a class="button" href="https://test.gridpool.net" rel="noreferrer">Open testnet node UI</a>
</article>
<article class="connect-card">
<div class="card-topline">
<span class="status status-experimental">SV2 beta</span>
<span>Header-only mining</span>
</div>
<h3>Native Stratum V2 beta</h3>
<p>
Use this with native Stratum V2 clients. The public beta runs the
GridPool fork of SRI Pool directly, avoiding Job Declaration
overhead and Stratum V1 coinbase-size limits. Set your mainnet
payout address as the channel identity for direct slot-0 credit.
The hosted endpoint charges a 2% operator fee through staggered
work slices; sovereign self-hosted deployments can disable it.
</p>
<div class="endpoint-list" aria-label="Mainnet Stratum V2 endpoint">
<div class="copy-row">
<span>SV2 Host</span>
<code>sv2.main.gridpool.net</code>
<button type="button" class="copy-button" data-copy="sv2.main.gridpool.net">Copy</button>
</div>
<div class="copy-row">
<span>SV2 Port</span>
<code>34265</code>
<button type="button" class="copy-button" data-copy="34265">Copy</button>
</div>
<div class="copy-row copy-row-key">
<span>SV2 pubkey</span>
<code>9auqWEzQDVyd2oe1JVGFLMLHZtCo2FFqZwtKA5gd9xbuEu7PH72</code>
<button type="button" class="copy-button" data-copy="9auqWEzQDVyd2oe1JVGFLMLHZtCo2FFqZwtKA5gd9xbuEu7PH72">Copy</button>
</div>
</div>
<a class="button" href="https://github.com/gridlabs-science/gridpool-sv2-pool" rel="noreferrer">View the SV2 pool fork</a>
</article>
</div>
<div class="trust-path-grid">
<article class="notice-box notice-box-strong">
<strong>Live quick start: use DATUM with the public beta node</strong>
<p>
This is the easiest way to try GridPool today: configure DATUM with
one of the endpoints above, then point your ASICs at DATUM. Your
miner still builds sovereign block templates through DATUM.
</p>
</article>
<article class="notice-box notice-box-strong">
<strong>Hosted bridge: Stratum V1 through Hydrapool</strong>
<p>
For miners who do not run DATUM yet, the beta bridge is a
standard Stratum V1 endpoint backed by Hydrapool. This path is
less sovereign because the bridge constructs work for you, and it
follows the same beta support model: a canonical optional Grid Labs
support slot worth 1/300th of the block subsidy when enabled.
</p>
<div class="copy-row install-command">
<span>Target endpoint</span>
<code>stratum+tcp://stratum.main.gridpool.net:3333</code>
<button type="button" class="copy-button" data-copy="stratum+tcp://stratum.main.gridpool.net:3333">Copy</button>
</div>
</article>
<article class="notice-box notice-box-strong">
<strong>Native path: GridPool SV2 Pool</strong>
<p>
The live public beta uses a focused fork of SRI Pool. It speaks
native SV2 to compatible clients, assigns slot 0 per channel, and
sends accepted-share telemetry and qualifying proofs to GridPool.
It retains SRI's direct Bitcoin Core block-submission path.
</p>
<div class="copy-row install-command">
<span>Endpoint</span>
<code>sv2.main.gridpool.net:34265</code>
<button type="button" class="copy-button" data-copy="sv2.main.gridpool.net:34265">Copy</button>
</div>
</article>
<article class="notice-box notice-box-strong">
<strong>Preferred path: run your own GridPool node</strong>
<p>
The trustless model is to run your own GridPool node, then connect
your DATUM gateway to it. If you already have Bitcoin and DATUM
running, install only the GridPool node. Use the full-stack path for
fresh Raspberry Pi or Ubuntu installs.
</p>
<div class="copy-row install-command">
<span>Node only</span>
<code>curl -fsSL https://raw.githubusercontent.com/gridlabs-science/boot-protocol/main/scripts/install-gridpool-node.sh | sudo bash -s -- --payout-address YOUR_BTC_ADDRESS</code>
<button type="button" class="copy-button" data-copy="curl -fsSL https://raw.githubusercontent.com/gridlabs-science/boot-protocol/main/scripts/install-gridpool-node.sh | sudo bash -s -- --payout-address YOUR_BTC_ADDRESS">Copy</button>
</div>
<div class="copy-row install-command">
<span>Full stack</span>
<code>curl -fsSL https://raw.githubusercontent.com/gridlabs-science/boot-protocol/main/scripts/install-sovereign-stack.sh | sudo bash -s -- --payout-address YOUR_BTC_ADDRESS</code>
<button type="button" class="copy-button" data-copy="curl -fsSL https://raw.githubusercontent.com/gridlabs-science/boot-protocol/main/scripts/install-sovereign-stack.sh | sudo bash -s -- --payout-address YOUR_BTC_ADDRESS">Copy</button>
</div>
</article>
</div>
<div class="instruction-grid" aria-label="Connection instructions">
<div>
<strong>1. Run GridPool</strong>
<p>
Quick start with a public node, or run your own GridPool node and
open its local WebUI.
</p>
</div>
<div>
<strong>2. Copy node details</strong>
<p>
From the local WebUI, copy Pool Host, Pool Port, and Pool Pubkey.
Public beta details are listed above for convenience.
</p>
</div>
<div>
<strong>3. Point ASICs at DATUM</strong>
<p>
Your miner talks Stratum to DATUM. If you are using the hosted
Hydrapool bridge, point the ASIC directly at the hosted Stratum
endpoint instead. Native SV2 clients can use the beta SV2 endpoint
above.
</p>
</div>
<div>
<strong>4. Verify your address</strong>
<p>
Once shares arrive, the node UI should show your local hashrate and
whether your address is currently on the payout lists.
</p>
</div>
</div>
<aside class="notice-box">
<strong>Integrator note</strong>
<p>
Hydrapool and direct HTTP share submission are the current bridge
targets. Other sovereign Stratum servers such as CK Pool, Public
Pool, Stratum V2 implementations, and FutureBit-style stacks can
integrate through the HTTP share-submission API. SV2 implementers
can use the live beta endpoint or start from
<code>/api/mining/sv2-work-selection</code>.
</p>
</aside>
</section>
<section class="section" id="resources" aria-labelledby="resources-title">
<div class="section-heading">
<p class="eyebrow">Learn more</p>
<h2 id="resources-title">Resources for miners and implementers</h2>
</div>
<div class="resource-grid">
<a class="resource-card" href="docs/gridpool-internode-protocol-draft.md">
<span>Draft spec</span>
<strong>GridPool internode protocol</strong>
<small>Consensus rules, share proofs, state sync, and peer relay for compatible implementations.</small>
</a>
<a class="resource-card" href="https://github.com/gridlabs-science/boot-protocol/blob/main/docs/critic-faq.md" rel="noreferrer">
<span>FAQ</span>
<strong>Answers for technical critics</strong>
<small>Pool hopping, loose consensus, Sybil accounting, censorship, and sharechain comparisons.</small>
</a>
<a class="resource-card" href="https://github.com/gridlabs-science/boot-protocol/blob/main/docs/modeling-and-simulation-roadmap.md" rel="noreferrer">
<span>Research plan</span>
<strong>Modeling and simulation roadmap</strong>
<small>Open simulations for fairness, majority miners, block withholding, latency, and bandwidth.</small>
</a>
<a class="resource-card" href="GridPool 201_ Advanced Architectural Deep Dive.md">
<span>Markdown</span>
<strong>GridPool 201 advanced deep dive</strong>
<small>Architecture, game theory, networking, and tradeoffs.</small>
</a>
<a class="resource-card" href="GridPool_Architecture.pdf">
<span>PDF</span>
<strong>Architecture slide deck</strong>
<small>Shareable deck for reviewing the protocol structure.</small>
</a>
<a class="resource-card" href="https://github.com/gridlabs-science/boot-protocol" rel="noreferrer">
<span>GitHub</span>
<strong>GridPool reference implementation source</strong>
<small>Node implementation, DATUM integration, WebUI, and docs.</small>
</a>
<a class="resource-card" href="https://github.com/gridlabs-science/gridpool-sv2-pool" rel="noreferrer">
<span>GitHub</span>
<strong>GridPool Stratum V2 pool</strong>
<small>SRI Pool fork providing native SV2 channels, per-miner slot-0 attribution, and GridPool proof submission.</small>
</a>
</div>
</section>
<section class="section deep-dive-section" aria-labelledby="deep-dive-title">
<div class="section-heading">
<p class="eyebrow">Advanced concepts</p>
<h2 id="deep-dive-title">GridPool 201</h2>
<p>
A few of the more advanced concepts in GridPool, including the design philosophy and engineering tradeoffs behind it. .
</p>
</div>
<article class="markdown-panel" id="advanced-markdown">
<p>Loading advanced notes...</p>
</article>
</section>
</main>
<footer class="site-footer">
<a class="footer-brand" href="https://gridlabs.science" rel="noreferrer">
<img src="assets/img/gridlabs-black-bg.svg" alt="" />
<span>Grid Labs</span>
</a>
<div class="footer-links">
<a href="https://gridlabs.science" rel="noreferrer">Grid Labs</a>
<a href="https://github.com/gridlabs-science" rel="noreferrer">GitHub</a>
<a href="https://main.gridpool.net" rel="noreferrer">Mainnet UI</a>
<a href="https://test.gridpool.net" rel="noreferrer">Testnet UI</a>
</div>
</footer>
<script src="assets/js/site.js" defer></script>
<script src="assets/js/markdown.js" defer></script>
</body>
</html>