Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node setup multidimensional #216

Merged
merged 52 commits into from
Nov 16, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
14c7c82
Merge pull request #132 from gnosischain/main
alebanzas Sep 15, 2022
7e00cb2
Merge pull request #136 from gnosischain/main
alebanzas Sep 21, 2022
01b3fd7
Merge pull request #141 from gnosischain/main
alebanzas Sep 23, 2022
d1ea3e4
adding quicknode to RPC docs
alebanzas Sep 28, 2022
af2efdc
fix answer
alebanzas Sep 28, 2022
40ef081
Merge pull request #161 from gnosischain/main
giacomolicari Sep 29, 2022
333ddf1
Merge pull request #171 from gnosischain/main
alebanzas Oct 3, 2022
c9f8516
Merge pull request #181 from gnosischain/main
alebanzas Oct 20, 2022
201207f
Merge pull request #183 from gnosischain/main
alebanzas Oct 20, 2022
9d0b89d
Merge pull request #198 from gnosischain/main
plato-gno Nov 2, 2022
cb38d48
Merge pull request #200 from gnosischain/main
plato-gno Nov 3, 2022
87fb03b
removing blank spaces
alebanzas Nov 3, 2022
d85d155
removing old guide
alebanzas Nov 3, 2022
8e9e9ba
remove unused plugin
alebanzas Nov 3, 2022
4b05fed
scaffolding installation guide based on Prysm docs
alebanzas Nov 4, 2022
94932d3
minor
alebanzas Nov 4, 2022
87a59da
fix category
alebanzas Nov 4, 2022
a42b934
views refactor + jwt generator
alebanzas Nov 4, 2022
06c0499
minor
alebanzas Nov 4, 2022
b548b68
scaffold EL client setup
alebanzas Nov 4, 2022
96f05a2
Revert "Omnibridge and xDAI bridges documentation changes"
plato-gno Nov 7, 2022
f13a7b5
Merge pull request #202 from gnosischain/revert-201-main
plato-gno Nov 7, 2022
82524a9
jwt file location
alebanzas Nov 9, 2022
493fdce
minor
alebanzas Nov 9, 2022
2959c80
nethermind windows
alebanzas Nov 9, 2022
3c6e6fa
nethermind linux
alebanzas Nov 9, 2022
4a887cc
Add Discord and Merge Newsletter information.
jbradach Nov 11, 2022
fe299e8
Merge pull request #207 from jbradach/main
alebanzas Nov 11, 2022
a330ee7
ease the process
alebanzas Nov 13, 2022
9df9a8a
open port for CL comms
alebanzas Nov 13, 2022
877806a
ease the process
alebanzas Nov 13, 2022
7260d6d
consensus layer lighthouse
alebanzas Nov 13, 2022
e2d3b0a
checkpoint flag
alebanzas Nov 13, 2022
7d4935d
minor
alebanzas Nov 14, 2022
f93e3cc
simplification
alebanzas Nov 14, 2022
09f72a5
install validator tabs
alebanzas Nov 14, 2022
1dedd8d
avoid confusion
alebanzas Nov 14, 2022
4a66bc2
dividing in steps based on agreed structure
alebanzas Nov 14, 2022
d62b10d
DOM fix
alebanzas Nov 14, 2022
67ecfb9
generate validator keys
alebanzas Nov 14, 2022
90f98ba
Update README.md
devinlamoureux Nov 14, 2022
30c101a
Merge pull request #208 from devinlamoureux/main
alebanzas Nov 14, 2022
081d6ee
Merge pull request #209 from gnosischain/main
alebanzas Nov 14, 2022
1cce5da
Merge pull request #210 from gnosischain/157-quicknode
alebanzas Nov 14, 2022
e43ffa5
Merge branch 'main' into node-setup-tabs
alebanzas Nov 14, 2022
63994c5
Merge branch '127-validators' into node-setup-tabs
alebanzas Nov 14, 2022
bc72a88
Merge branch 'release' into node-setup-tabs
alebanzas Nov 14, 2022
5ba5d53
refactor
alebanzas Nov 15, 2022
aca9e39
agreed folder structure
alebanzas Nov 16, 2022
a41fdb4
checkpoint service up!
alebanzas Nov 16, 2022
2082fe8
generating keys in the correct folder
alebanzas Nov 16, 2022
2fef0c9
lighthouse validator setup
alebanzas Nov 16, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
scaffolding installation guide based on Prysm docs
  • Loading branch information
alebanzas committed Nov 4, 2022
commit 4b05fed8b7c0b8565fb62431df2bc722b3aa47c7
27 changes: 27 additions & 0 deletions docs/_partials/_jwt-generation-partial.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

The HTTP connection between your beacon node and execution node needs to be authenticated using a [JWT token](https://jwt.io/). There are several ways to generate this JWT token:

- Use an online generator like [this](https://seanwasere.com/generate-random-hex/). Copy and paste this value into a `jwt.hex` file.
- Use a utility like OpenSSL to create the token via command: `openssl rand -hex 32 | tr -d "\n" > "jwt.hex"`.
- Use an execution client to generate the `jwt.hex` file.
- Use XXX to generate the `jwt.hex` file:

<Tabs groupId="os" defaultValue="others" values={[
{label: 'Operating system:', value: 'label'},
{label: 'Linux, MacOS, Arm64', value: 'others'},
{label: 'Windows', value: 'win'}
]}>
<TabItem className="unclickable-element" value="label"></TabItem>
<TabItem value="win">
aaa windows
</TabItem>
<TabItem value="others">

```
bbb linux
```

</TabItem>
</Tabs>
70 changes: 70 additions & 0 deletions docs/_partials/_multidimensional-content-controls-partial.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

import {MultiDimensionalContentWidget} from '@site/src/components/MultiDimensionalContentWidget.js';

<MultiDimensionalContentWidget />

<div className="install-tabs">

<Tabs className="tabgroup-with-label os-tabgroup" groupId="os" defaultValue="others" values={[
{label: 'Operating system:', value: 'label'},
{label: 'Linux, MacOS, Arm64', value: 'others'},
{label: 'Windows', value: 'win'}
]}>
<TabItem className="unclickable-element" value="label"></TabItem>
<TabItem value="others"></TabItem>
<TabItem value="win"></TabItem>
</Tabs>

<Tabs className="tabgroup-with-label network-tabgroup" groupId="network" defaultValue="gnosis" values={[
{label: 'Network:', value: 'label'},
{label: 'Gnosis', value: 'gnosis'},
{label: 'Chiado', value: 'chiado'}
]}>
<TabItem className="unclickable-element" value="label"></TabItem>
<TabItem value="gnosis"></TabItem>
<TabItem value="chiado"></TabItem>
</Tabs>

<Tabs className="tabgroup-with-label el-tabgroup" groupId="execution-clients" defaultValue="nethermind" values={[
{label: 'Execution client:', value: 'label'},
{label: 'Nethermind', value: 'nethermind'},
{label: 'Besu', value: 'besu'},
{label: 'Erigon', value: 'erigon'},
{label: 'Geth', value: 'geth'}
]}>
<TabItem className="unclickable-element" value="label"></TabItem>
<TabItem value="nethermind"></TabItem>
<TabItem className="unclickable-element" value="besu"></TabItem>
<TabItem className="unclickable-element" value="erigon"></TabItem>
<TabItem className="unclickable-element" value="geth"></TabItem>
</Tabs>

<Tabs className="tabgroup-with-label cl-tabgroup" groupId="consensus-clients" defaultValue="lighthouse" values={[
{label: 'Consensus client:', value: 'label'},
{label: 'Lighthouse', value: 'lighthouse'},
{label: 'Lodestar', value: 'lodestar'},
{label: 'Nimbus', value: 'nimbus'},
{label: 'Prysm', value: 'prysm'},
{label: 'Teku', value: 'teku'}
]}>
<TabItem className="unclickable-element" value="label"></TabItem>
<TabItem value="lighthouse"></TabItem>
<TabItem value="lodestar"></TabItem>
<TabItem value="nimbus"></TabItem>
<TabItem value="prysm"></TabItem>
<TabItem value="teku"></TabItem>
</Tabs>

<Tabs className="tabgroup-with-label enbn-tabgroup" groupId="protocol" defaultValue="jwt" values={[
{label: 'EN-BN connection:', value: 'label'},
{label: 'HTTP-JWT', value: 'jwt'},
{label: 'IPC', value: 'ipc'}
]}>
<TabItem className="unclickable-element" value="label"></TabItem>
<TabItem value="jwt"></TabItem>
<TabItem value="ipc"></TabItem>
</Tabs>

</div>
Empty file added docs/install/README.md
Empty file.
16 changes: 16 additions & 0 deletions docs/install/_partials/_install-intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

## Select a configuration

import MultidimensionalContentControlsPartial from '@site/docs/_partials/_multidimensional-content-controls-partial.md';

<MultidimensionalContentControlsPartial />

## Introduction

At a high level, we'll walk through the following flow:

1. Configure an **execution node** using an execution-layer client.
2. Configure a **beacon node** using a consensus-layer client.
3. Configure a **validator** and stake GNO (optional).
40 changes: 40 additions & 0 deletions docs/install/_partials/_install-jwt-secret.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Create a folder called `ethereum` on your SSD, and then two subfolders within it: `consensus` and `execution`:

```
📂ethereum
┣ 📂consensus
┣ 📂execution
```

<Tabs groupId="os" defaultValue="others" values={[
{label: 'Windows', value: 'win'},
{label: 'Linux, MacOS, Arm64', value: 'others'}
]}>
<TabItem value="win">
<p>aaa.</p>
</TabItem>
<TabItem value="others">
<p>bbb.</p>
</TabItem>
</Tabs>


<Tabs groupId="protocol" defaultValue="jwt" values={[
{label: 'JWT', value: 'jwt'},
{label: 'IPC', value: 'ipc'}
]}>
<TabItem value="jwt">

<h3>Generate JWT Secret</h3>

import JwtGenerationPartial from '@site/docs/_partials/_jwt-generation-partial.md';

<JwtGenerationPartial />

</TabItem>
</Tabs>


46 changes: 46 additions & 0 deletions docs/install/_partials/_install-prereqs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<table>
<thead>
<tr>
<th style={{minWidth: 180 + 'px'}}>Node type</th>
<th>Benefits</th>
<th>Requirements</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Execution + beacon</strong></td>
<td>
<ul>
<li>Contributes to the security of Gnosis.</li>
<li>Lets you access the Gnosis network directly without having to trust a third party service.</li>
<li>Lets you run a validator post-Merge.</li>
</ul>
</td>
<td>
<ul>
<li><strong>Software</strong>: Execution client, beacon node client (instructions for clients below), <a href='https://curl.se/download.html'>curl</a></li>
<li><strong>OS</strong>: 64-bit Linux, Mac OS X 10.14+, Windows 10+ 64-bit</li>
<li><strong>CPU</strong>: 4+ cores @ 2.8+ GHz</li>
<li><strong>Memory</strong>: 16GB+ RAM</li>
<li><strong>Storage</strong>: SSD with at least 2TB free space</li>
<li><strong>Network</strong>: 8 MBit/sec broadband</li>
</ul>
</td>
</tr>
<tr>
<td><strong>Validator</strong></td>
<td>
Lets you stake GNO, propose + validate blocks, earn staking rewards + transaction fee tips.
</td>
<td>
<ul>
<li>Everything above, plus...</li>
<li><strong>Software:</strong> Validator client, browser-based crypto wallet (instructions below)</li>
<li><strong>Hardware:</strong> (Recommended) A new machine that has never been connected to the internet that you can use to securely generate your mnemonic phrase and keypair</li>
<li><strong>1 GNO</strong> (Gnosis Mainnet)</li>
<li><strong>1 Testnet GNO</strong> (Chiado)</li>
</ul>
</td>
</tr>
</tbody>
</table>
51 changes: 51 additions & 0 deletions docs/install/_partials/_install-validator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs groupId="os" defaultValue="others" values={[
{label: 'Windows', value: 'win'},
{label: 'Linux, MacOS, Arm64', value: 'others'}
]}>
<TabItem value="win">
<p>windows</p>
<Tabs groupId="network" defaultValue="gnosis" values={[
{label: 'Gnosis', value: 'gnosis'},
{label: 'Chiado', value: 'chiado'}
]}>
<TabItem value="gnosis">
<pre><code>gnosis</code></pre>
</TabItem>
<TabItem value="chiado">
<pre><code>chiado</code></pre>
</TabItem>
</Tabs>
<p>aaa</p>
<Tabs groupId="network" defaultValue="gnosis" values={[
{label: 'Gnosis', value: 'gnosis'},
{label: 'Chiado', value: 'chiado'}
]}>
<TabItem value="gnosis">
<pre><code>gnosis</code></pre>
<p>aaa</p>
</TabItem>
<TabItem value="chiado">
<pre><code>chiado</code></pre>
<p>aaa</p>
</TabItem>
</Tabs>
</TabItem>
<TabItem value="others">
<p>linux</p>
<Tabs groupId="network" defaultValue="gnosis" values={[
{label: 'Gnosis', value: 'gnosis'},
{label: 'Chiado', value: 'chiado'}
]}>
<TabItem value="gnosis">
<pre><code>gnosis</code></pre>
</TabItem>
<TabItem value="chiado">
<pre><code>chiado</code></pre>
</TabItem>
</Tabs>
<p>aaa</p>
</TabItem>
</Tabs>
40 changes: 40 additions & 0 deletions docs/install/_partials/_run-consensus-client.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs groupId="execution-clients" defaultValue="lighthouse" values={[
{label: 'Lighthouse', value: 'lighthouse'},
{label: 'Lodestar', value: 'lodestar'},
{label: 'Nimbus', value: 'nimbus'},
{label: 'Prysm', value: 'prysm'},
{label: 'Teku', value: 'teku'}
]}>
<TabItem value="lighthouse">
<p>aaa</p>
<Tabs groupId="network" defaultValue="gnosis" values={[
{label: 'Gnosis', value: 'gnosis'},
{label: 'Chiado', value: 'chiado'}
]}>
<TabItem value="gnosis">
<Tabs groupId="protocol" defaultValue="jwt" values={[
{label: 'JWT', value: 'jwt'},
{label: 'IPC', value: 'ipc'}
]}>
<TabItem value="jwt"><pre><code>aa</code></pre></TabItem>
<TabItem value="ipc"><pre><code>bb</code></pre></TabItem>
</Tabs>
</TabItem>
<TabItem value="chiado">
<Tabs groupId="protocol" defaultValue="jwt" values={[
{label: 'JWT', value: 'jwt'},
{label: 'IPC', value: 'ipc'}
]}>
<TabItem value="jwt"><pre><code>cc</code></pre></TabItem>
<TabItem value="ipc"><pre><code>dd</code></pre></TabItem>
</Tabs>
</TabItem>
</Tabs>
<p>aa.</p>
</TabItem>
</Tabs>

<p>ccc</p>
40 changes: 40 additions & 0 deletions docs/install/_partials/_run-execution-client.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs groupId="execution-clients" defaultValue="geth" values={[
{label: 'Execution client:', value: 'label'},
{label: 'Nethermind', value: 'nethermind'},
{label: 'Besu', value: 'besu'},
{label: 'Erigon', value: 'erigon'},
{label: 'Geth', value: 'geth'}
]}>
<TabItem value="nethermind">
<p>aaa</p>
<Tabs groupId="network" defaultValue="gnosis" values={[
{label: 'Gnosis', value: 'gnosis'},
{label: 'Chiado', value: 'chiado'}
]}>
<TabItem value="gnosis">
<Tabs groupId="protocol" defaultValue="jwt" values={[
{label: 'JWT', value: 'jwt'},
{label: 'IPC', value: 'ipc'}
]}>
<TabItem value="jwt"><pre><code>aa</code></pre></TabItem>
<TabItem value="ipc"><pre><code>bb</code></pre></TabItem>
</Tabs>
</TabItem>
<TabItem value="chiado">
<Tabs groupId="protocol" defaultValue="jwt" values={[
{label: 'JWT', value: 'jwt'},
{label: 'IPC', value: 'ipc'}
]}>
<TabItem value="jwt"><pre><code>cc</code></pre></TabItem>
<TabItem value="ipc"><pre><code>dd</code></pre></TabItem>
</Tabs>
</TabItem>
</Tabs>
<p>aa.</p>
</TabItem>
</Tabs>

<p>ccc</p>
Empty file added docs/install/with-dappnode.md
Empty file.
Empty file added docs/install/with-docker.md
Empty file.
Loading