From 9afb1e2d039308ee7318fcb4feebf4ab0a8044af Mon Sep 17 00:00:00 2001 From: Adamu Jethro <45628811+JayWebtech@users.noreply.github.com> Date: Mon, 6 Oct 2025 06:35:09 -0700 Subject: [PATCH] Revert "feat : docs" --- docs/.gitignore | 36 - docs/DOCS_GUIDE.md | 291 ----- docs/README.md | 2 +- docs/next.config.ts | 7 - docs/package-lock.json | 1667 ------------------------- docs/package.json | 2 +- docs/postcss.config.mjs | 5 - docs/public/file.svg | 1 - docs/public/globe.svg | 1 - docs/public/next.svg | 1 - docs/public/vercel.svg | 1 - docs/public/window.svg | 1 - docs/src/app/clients/page.tsx | 254 ---- docs/src/app/commands/page.tsx | 157 --- docs/src/app/configuration/page.tsx | 331 ----- docs/src/app/contributing/page.tsx | 265 ---- docs/src/app/favicon.ico | Bin 25931 -> 0 bytes docs/src/app/getting-started/page.tsx | 228 ---- docs/src/app/globals.css | 93 -- docs/src/app/installation/page.tsx | 179 --- docs/src/app/layout.tsx | 40 - docs/src/app/page.tsx | 144 --- docs/src/app/requirements/page.tsx | 319 ----- docs/src/app/validator/page.tsx | 239 ---- docs/src/components/CodeBlock.tsx | 35 - docs/src/components/Header.tsx | 41 - docs/src/components/Sidebar.tsx | 60 - docs/tailwind.config.ts | 16 - docs/tsconfig.json | 27 - 29 files changed, 2 insertions(+), 4441 deletions(-) delete mode 100644 docs/.gitignore delete mode 100644 docs/DOCS_GUIDE.md delete mode 100644 docs/next.config.ts delete mode 100644 docs/package-lock.json delete mode 100644 docs/postcss.config.mjs delete mode 100644 docs/public/file.svg delete mode 100644 docs/public/globe.svg delete mode 100644 docs/public/next.svg delete mode 100644 docs/public/vercel.svg delete mode 100644 docs/public/window.svg delete mode 100644 docs/src/app/clients/page.tsx delete mode 100644 docs/src/app/commands/page.tsx delete mode 100644 docs/src/app/configuration/page.tsx delete mode 100644 docs/src/app/contributing/page.tsx delete mode 100644 docs/src/app/favicon.ico delete mode 100644 docs/src/app/getting-started/page.tsx delete mode 100644 docs/src/app/globals.css delete mode 100644 docs/src/app/installation/page.tsx delete mode 100644 docs/src/app/layout.tsx delete mode 100644 docs/src/app/page.tsx delete mode 100644 docs/src/app/requirements/page.tsx delete mode 100644 docs/src/app/validator/page.tsx delete mode 100644 docs/src/components/CodeBlock.tsx delete mode 100644 docs/src/components/Header.tsx delete mode 100644 docs/src/components/Sidebar.tsx delete mode 100644 docs/tailwind.config.ts delete mode 100644 docs/tsconfig.json diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index fd3dbb5..0000000 --- a/docs/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/docs/DOCS_GUIDE.md b/docs/DOCS_GUIDE.md deleted file mode 100644 index 160be49..0000000 --- a/docs/DOCS_GUIDE.md +++ /dev/null @@ -1,291 +0,0 @@ -# Starknode-kit Documentation Guide - -This guide explains how to run and develop the starknode-kit documentation site. - -## Quick Start - -### Installation - -```bash -cd docs -npm install -``` - -### Development Server - -Run the development server: - -```bash -npm run dev -``` - -Open [http://localhost:3000](http://localhost:3000) in your browser to see the documentation. - -The page auto-updates as you edit files. - -### Production Build - -Build for production: - -```bash -npm run build -npm start -``` - -## Documentation Structure - -``` -docs/ -├── src/ -│ ├── app/ # Next.js pages (App Router) -│ │ ├── page.tsx # Homepage -│ │ ├── layout.tsx # Root layout with sidebar/header -│ │ ├── globals.css # Global styles -│ │ ├── getting-started/ # Getting started guide -│ │ ├── installation/ # Installation guide -│ │ ├── configuration/ # Configuration docs -│ │ ├── commands/ # Command reference -│ │ ├── clients/ # Client documentation -│ │ ├── validator/ # Validator setup guide -│ │ ├── requirements/ # Requirements page -│ │ └── contributing/ # Contributing guide -│ └── components/ # Reusable components -│ ├── Sidebar.tsx # Navigation sidebar -│ ├── Header.tsx # Top header with search -│ └── CodeBlock.tsx # Code block component -├── public/ # Static assets -├── package.json # Dependencies -└── README.md # Documentation README - -``` - -## Features - -### GitBook-Style Layout - -- **Fixed Sidebar** - Navigation always visible on the left -- **Header** - Search and links at the top -- **Content Area** - Main documentation content -- **Responsive** - Works on mobile and desktop - -### Components - -#### Sidebar (`components/Sidebar.tsx`) - -- Hierarchical navigation -- Active page highlighting -- Collapsible sections -- Links to all documentation pages - -#### Header (`components/Header.tsx`) - -- Search bar (placeholder, can be enhanced) -- GitHub link -- Telegram link -- Dark mode support - -#### CodeBlock (`components/CodeBlock.tsx`) - -- Syntax-highlighted code blocks -- Copy-to-clipboard button -- Language support -- Dark theme optimized - -### Styling - -- **Tailwind CSS** - Utility-first CSS framework -- **Dark Mode** - Automatic based on system preference -- **Custom Scrollbars** - Styled for better UX -- **Prose** - Typography optimized for documentation - -## Adding New Pages - -### 1. Create Page File - -Create a new `page.tsx` in the appropriate directory: - -```bash -mkdir -p src/app/your-page -``` - -```tsx -// src/app/your-page/page.tsx -import CodeBlock from '@/components/CodeBlock'; - -export default function YourPage() { - return ( -
Your content here...
- -💡 Tip
-Your tip here
-- starknode-kit supports multiple client implementations for both Ethereum - and Starknet networks. -
- -- Running diverse client implementations is crucial for network health and - resilience. Client diversity prevents single points of failure and - reduces the impact of bugs in any one implementation. -
- -- To run an Ethereum node, you need both an{" "} - execution client and a consensus client - . They work together to validate and process Ethereum blocks post-merge. -
- -Handle transaction execution and state management
-Handle proof-of-stake consensus mechanism
-- Starknet clients allow you to run a Starknet full node, enabling interaction with the Starknet Layer 2 network. -
- -Full node implementations for Starknet
-Popular client combinations for Ethereum nodes:
- -| Execution | -Consensus | -Characteristics | -
|---|---|---|
| Geth | -Lighthouse | -Most popular, well-tested | -
| Reth | -Lighthouse | -High performance, modern | -
| Geth | -Prysm | -Stable, feature-rich | -
| Reth | -Prysm | -Performance-focused | -
| Client | -RAM | -Disk | -CPU | -
|---|---|---|---|
| Geth | -16+ GB | -~1.2 TB | -4+ cores | -
| Reth | -16+ GB | -~900 GB | -4+ cores | -
| Lighthouse | -8+ GB | -~200 GB | -2+ cores | -
| Prysm | -8+ GB | -~250 GB | -2+ cores | -
| Juno | -8+ GB | -~300 GB | -2+ cores | -
💡 Recommendation
-- For most users, we recommend Reth + Lighthouse for Ethereum (best performance) - and Juno for Starknet. -
-- Client diversity is critical for network health. If a single client has a bug and it's used by the majority of nodes, - it could cause network issues or even finality problems. -
- -Current client distribution matters! Consider using minority clients to help decentralize the network.
- -You can switch clients at any time:
- -starknode-kit stopstarknode-kit remove --execution_client gethstarknode-kit add --execution_client rethstarknode-kit start⚠️ Note
-- Switching clients may require re-syncing from scratch, which can take several days. - Plan accordingly and ensure you have sufficient disk space. -
-- Ready to dive deeper? Check out our validator guide: -
-- Complete reference for all starknode-kit commands. Each command helps - you manage different aspects of your Ethereum and Starknet nodes. -
- -| Command | -Description | -
|---|---|
| add | -Add an Ethereum or Starknet client to the config | -
| completion | -Generate the autocompletion script for the specified shell | -
| config | -Create, show, and update your Starknet node configuration | -
| monitor | -Launch real-time monitoring dashboard | -
| remove | -Remove a specified resource | -
| run | -Run a specific local infrastructure service | -
| start | -Run the configured Ethereum clients | -
| status | -Display status of running clients | -
| stop | -Stop the configured Ethereum clients | -
| update | -Check for and install client updates | -
| validator | -Manage the Starknet validator client | -
| version | -Show version of starknode-kit or a specific client | -
- For any command, you can use the --help flag to get
- detailed usage information:
-
- Generate autocompletion scripts for your shell: -
- -- Ready to dive deeper? Check out our comprehensive guides: -
-- Learn how to configure starknode-kit for your Ethereum and Starknet - nodes. -
- -- starknode-kit stores its configuration in a YAML file located at: -
- -- Generate a new configuration file with default settings: -
- -View your entire configuration:
- -View specific sections:
- -- The configuration file has the following structure: -
- -- Switch between mainnet, sepolia, or custom networks: -
- -Set execution client and ports:
- -Set consensus client and checkpoint:
- -Configure your Juno Starknet client:
- -starknode-kit supports multiple networks:
- -⚠️ Important
-- Changing the network will affect all clients. Make sure to stop your - nodes before changing networks. -
-Default ports for each client:
- -| Client | -Ports | -Purpose | -
|---|---|---|
| Geth | -8545, 8546, 30303 | -HTTP RPC, WS RPC, P2P | -
| Reth | -8545, 8546, 30303 | -HTTP RPC, WS RPC, P2P | -
| Lighthouse | -5052, 9000 | -HTTP API, P2P | -
| Prysm | -4000, 13000 | -HTTP API, P2P | -
| Juno | -6060 | -RPC | -
- For validator nodes, additional configuration is required. See the - Validator Setup page for details. -
- -- Some sensitive data can be stored as environment variables: -
- -STARKNET_WALLET - Wallet address
- STARKNET_PRIVATE_KEY - Private key
- STARKNET_PUBLIC_KEY - Public key
- STARKNET_CLASS_HASH - Class hash
- STARKNET_SALT - Salt value
- - If your configuration isn't loading, check: -
- -~/.starknode-kit/starknode.yml
- If you get port conflicts:
- -lsof -i :[port]
- - Ready to dive deeper? Check out our comprehensive guides: -
-- We welcome contributions to starknode-kit! This guide will help you get - started with contributing to the project. -
- -There are many ways to contribute to starknode-kit:
- -Start by forking the repository on GitHub:
- -Make sure you have the required tools:
- -Create a branch for your changes:
- -gofmt and follow Go best practicesRun tests before submitting:
- -Format your code with gofmt:
Write clear, descriptive commit messages:
- -To increase the chances of your PR being accepted:
- -When reporting bugs, include:
- -When suggesting features, include:
- -We are committed to providing a welcoming and inclusive environment. Please:
- -If you need help with contributing:
- -🎉 Thank You!
-- Thank you for considering contributing to starknode-kit! Your contributions help make this tool better for everyone. -
-dAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJw b z_^v8bbg` SAn{I*4bH$u(RZ6*x UhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=p C^ S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk( $?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU ^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvh CL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c 70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397* _cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111a H}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*I cmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU &68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-= A= yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v #ix45EVrcEhr>!NMhprl $InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~ &^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7< 4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}sc Zlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+ 9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2 `1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M =hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S( O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m diff --git a/docs/src/app/getting-started/page.tsx b/docs/src/app/getting-started/page.tsx deleted file mode 100644 index f7e0251..0000000 --- a/docs/src/app/getting-started/page.tsx +++ /dev/null @@ -1,228 +0,0 @@ -import Link from "next/link"; -import CodeBlock from "@/components/CodeBlock"; - -export default function GettingStarted() { - return ( - -- ); -} - diff --git a/docs/src/app/globals.css b/docs/src/app/globals.css deleted file mode 100644 index b60e14f..0000000 --- a/docs/src/app/globals.css +++ /dev/null @@ -1,93 +0,0 @@ -@import "tailwindcss"; - -body { - font-family: var(--font-inter), system-ui, -apple-system, sans-serif; - line-height: 1.7; -} - -/* Scrollbar styling */ -::-webkit-scrollbar { - width: 8px; - height: 8px; -} - -::-webkit-scrollbar-track { - background: transparent; -} - -::-webkit-scrollbar-thumb { - background: #cbd5e0; - border-radius: 4px; -} - -::-webkit-scrollbar-thumb:hover { - background: #a0aec0; -} - -/* Prose styling for documentation */ -.prose { - max-width: none; - line-height: 1.8; -} - -.prose p { - margin-bottom: 1.5rem; -} - -.prose h2 { - margin-top: 3rem; - margin-bottom: 1.5rem; -} - -.prose h3 { - margin-bottom: 1.25rem; -} - -.prose a { - color: #2563eb; - text-decoration: none; - transition: color 0.2s; -} - -.prose a:hover { - color: #1d4ed8; - text-decoration: none; -} - -.prose code { - background: #f3f4f6; - padding: 0.2em 0.4em; - border-radius: 0.25rem; - font-size: 0.875em; - font-family: 'Courier New', monospace; -} - -.prose pre { - background: #1a202c !important; - padding: 1rem; - border-radius: 0.5rem; - overflow-x: auto; -} - -.prose pre code { - background: transparent; - padding: 0; - color: #e2e8f0; -} - -.prose table { - width: 100%; - border-collapse: collapse; -} - -.prose th { - text-align: left; - font-weight: 600; -} - -.prose blockquote { - border-left: 4px solid #e5e7eb; - padding-left: 1rem; - font-style: italic; - color: #6b7280; -} diff --git a/docs/src/app/installation/page.tsx b/docs/src/app/installation/page.tsx deleted file mode 100644 index 9dcd313..0000000 --- a/docs/src/app/installation/page.tsx +++ /dev/null @@ -1,179 +0,0 @@ -import Link from 'next/link'; -import CodeBlock from '@/components/CodeBlock'; - -export default function Installation() { - return ( -Getting Started
- -- Welcome to starknode-kit! This guide will help you get up and running - with your Ethereum and Starknet nodes in just a few minutes. -
- -Prerequisites
- -Before you begin, make sure you have:
- --
- -- - Operating System: Linux or macOS (Windows via WSL) -
-- - Go: Version 1.24 or later (if building from source) -
-- - Storage: At least 2TB of free SSD space -
-- - RAM: Minimum 32GB recommended -
-- - Network: Stable internet connection -
--- -📝 Note
-- For detailed hardware requirements, check out our{" "} - - Requirements page - - . -
-Installation
- -- The quickest way to install starknode-kit is using the installation - script: -
- -- - This script will:
--
- -- - Download the latest version of starknode-kit -
-- - Install it to
-/usr/local/bin/-- - Create necessary configuration directories -
-- Initial Configuration -
- -- After installation, generate your initial configuration file: -
- -- - - This creates a configuration file at{" "} -
- -~/.starknode-kit/starknode.ymlwith default settings. -- Add Your First Clients -
- -- Ethereum Clients (Execution + Consensus) -
- -- To run an Ethereum node, you need both an execution client and a - consensus client: -
- -- - Or with Reth and Prysm:
- -- - Starknet Client
- -To add a Starknet client (Juno):
- -- - Configure Network
- -- By default, starknode-kit is configured for mainnet. To change to a - test network: -
- -- - Start Your Nodes
- -- Start Ethereum Clients -
- -- To start your configured Ethereum execution and consensus clients: -
- -- - -- -⚠️ Important
-- The
-startcommand only launches Ethereum clients - (execution + consensus). It does not start Starknet clients. -- Run Individual Clients -
- -To run a specific client:
- -- - Monitor Your Nodes
- -- Launch the real-time monitoring dashboard to see the status of your - nodes: -
- -- - The monitoring dashboard provides real-time insights:
- --- --- -- 🔄 ----Node Sync Status
-Real-time synchronization progress and health
--- -- 📊 ----Current Block Height
-Latest block number and sync progress
--- -- 🌐 ----Network Statistics
-Peer connections and network performance
---- 💻 ----System Resources
-CPU, RAM, and disk usage metrics
-Check Status
- -- For a quick status check of all running clients: -
- -- - --📖 Next Steps
-- Ready to dive deeper? Check out our installation guide: -
-- Installation Guide ---- ); -} - diff --git a/docs/src/app/layout.tsx b/docs/src/app/layout.tsx deleted file mode 100644 index 66099db..0000000 --- a/docs/src/app/layout.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import type { Metadata } from "next"; -import { Inter, Source_Code_Pro } from "next/font/google"; -import "./globals.css"; -import Sidebar from "@/components/Sidebar"; -import Header from "@/components/Header"; - -const inter = Inter({ - subsets: ["latin"], - variable: "--font-inter", -}); - -const source_code_pro = Source_Code_Pro({ - subsets: ["latin"], - variable: "--font-source-code" -}) - -export const metadata: Metadata = { - title: "starknode-kit Documentation", - description: "Complete documentation for starknode-kit - A CLI tool for setting up and managing Ethereum and Starknet nodes", -}; - -export default function RootLayout({ - children, -}: Readonly<{ - children: React.ReactNode; -}>) { - return ( - - -Installation
- -- There are multiple ways to install starknode-kit. Choose the method that - best suits your needs. -
- -- Option 1: Install Script (Recommended) -
- -- The easiest and recommended way to install starknode-kit: -
- -- - - Or download the script first and then run it: -
- -- - - Option 2: Install using Go -
- -- If you have Go installed (version 1.24 or later), you can install - starknode-kit directly: -
- -- - - This installs the latest version from the
- -mainbranch. -- Option 3: Manual Installation from Source -
- -- 1. Clone the Repository -
- -- - 2. Build and Install
- -- - Verify Installation
- -- After installation, verify that starknode-kit is working correctly: -
- -- - You should see output similar to:
- -- - Initial Setup
- -- After successful installation, generate your configuration file: -
- -- - - This creates a configuration file at{" "} -
- -~/.starknode-kit/starknode.yml. -Uninstallation
- -- To uninstall starknode-kit, remove the binary and configuration - directory: -
- -- - -- -⚠️ Note
-- This will not remove any client data (e.g., blockchain data). The data - is stored in the locations specified in your{" "} -
-~/.starknode-kit/starknode.ymlfile. -Troubleshooting
- -Command not found
- -- If you get a "command not found" error, make sure{" "} -
- -/usr/local/binis in your PATH: -- - - Add this to your
- -~/.bashrcor~/.zshrcto make - it permanent. -Permission denied
- -- If you encounter permission issues during installation, make sure you - have sudo access or contact your system administrator. -
- ---📖 Next Steps
-- Ready to dive deeper? Check out our configuration guide: -
-- Configuration Guide --- - - - - - ); -} diff --git a/docs/src/app/page.tsx b/docs/src/app/page.tsx deleted file mode 100644 index ea7a66d..0000000 --- a/docs/src/app/page.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import Link from "next/link"; -import CodeBlock from "@/components/CodeBlock"; - -export default function Home() { - return ( -- {children} ---- ); -} diff --git a/docs/src/app/requirements/page.tsx b/docs/src/app/requirements/page.tsx deleted file mode 100644 index 8ef1256..0000000 --- a/docs/src/app/requirements/page.tsx +++ /dev/null @@ -1,319 +0,0 @@ -import Link from 'next/link'; -import CodeBlock from '@/components/CodeBlock'; - -export default function Requirements() { - return ( -Welcome to starknode-kit
- -- A powerful command-line tool to help developers and node operators - easily set up, manage, and maintain Ethereum and Starknet nodes. -
- -- -- -- 🚀 Getting Started -
-- Learn how to install and configure starknode-kit for your node - setup. -
- - - -- 📘 Commands -
-- Explore all available commands and their usage. -
- - - -- ⚙️ Configuration -
-- Configure your Ethereum and Starknet clients. -
- - - -- 🔐 Validator Setup -
-- Set up and manage your Starknet validator node. -
- -Quick Start
- -Install starknode-kit with a single command:
- -- - Generate your configuration file:
- -- - Add your first client pair:
- -- - Key Features
- --
- -- - ✅ Easy Setup - Get your node running in minutes -
-- - ✅ Multi-Client Support - Works with Geth, Reth, - Lighthouse, Prysm, and Juno -
-- - ✅ Real-time Monitoring - Built-in dashboard to - monitor your nodes -
-- - ✅ Auto Updates - Keep your clients up to date - automatically -
-- - ✅ Validator Management - Simplified Starknet - validator operations -
-- - ✅ Network Flexibility - Support for mainnet, - sepolia, and custom networks -
-Supported Clients
- --- ---Execution Layer
--
-- • Geth
-- • Reth
---Consensus Layer
--
-- • Lighthouse
-- • Prysm
---Starknet
--
-- • Juno
-- • Starknet Validator
---📖 Next Steps
-- Ready to dive deeper? Check out our comprehensive guides: -
-- Installation Guide ---- ); -} - diff --git a/docs/src/app/validator/page.tsx b/docs/src/app/validator/page.tsx deleted file mode 100644 index 156aa27..0000000 --- a/docs/src/app/validator/page.tsx +++ /dev/null @@ -1,239 +0,0 @@ -import CodeBlock from '@/components/CodeBlock'; -import Link from 'next/link'; -export default function Validator() { - return ( -Requirements
- -- Hardware and software requirements for running Ethereum and Starknet - nodes with starknode-kit. -
- -Hardware Requirements
- --- -📚 Reference
-- For a detailed breakdown of node hardware requirements, see the Rocket Pool Hardware Guide. -
-Minimum Requirements
- --- -- -
-- - - -Component -Requirement -Notes -- -CPU -4+ cores -Intel i3/i5 or AMD equivalent. Avoid Celeron. -- -RAM -32 GB -Minimum 16GB, 32GB recommended for comfort -- -Storage -2+ TB NVMe SSD -Must have DRAM cache, no QLC NAND -- -Network -100+ Mbps -Stable connection, unlimited data preferred -- - -Power -24/7 uptime -UPS recommended for validators -Recommended Specifications
- --
- -- CPU: Intel i5/i7 or AMD Ryzen 5/7 (6+ cores)
-- RAM: 64 GB DDR4
-- Storage: 4 TB NVMe SSD with DRAM cache
-- Network: 1 Gbps fiber connection
-- Backup Power: UPS with 30+ minutes runtime
-Storage Requirements
- -Storage is the most critical component for node operation.
- -Storage Size
- --- -- -
-- - - -Client -Current Size -Growth Rate -- -Ethereum (Geth) -~1.2 TB -~150 GB/year -- -Ethereum (Reth) -~900 GB -~120 GB/year -- -Lighthouse -~200 GB -~50 GB/year -- -Prysm -~250 GB -~60 GB/year -- - -Juno (Starknet) -~300 GB -~100 GB/year -SSD Requirements
- -Your SSD must have:
- --
- -- ✅ DRAM cache - Essential for performance
-- ✅ TLC or better NAND - No QLC (Quad-Level Cell)
-- ✅ High endurance rating - 600+ TBW recommended
-- ✅ NVMe interface - SATA SSDs are too slow
--- -⚠️ Warning
-- Using a QLC SSD or SSD without DRAM cache will result in poor performance and potential node failures. - See the tested SSD list for recommendations. -
-Software Requirements
- -Operating System
- -Supported operating systems:
- --
- -- Linux: Ubuntu 20.04+, Debian 11+, or other modern distributions
-- macOS: macOS 12 (Monterey) or later
-- Windows: Windows 10/11 with WSL2 (Ubuntu)
-Linux is highly recommended for production use.
- -Required Software
- -Go (for building from source)
- -Version 1.24 or later required:
- -- - Install from: https://go.dev/dl/
- -Rust (for Starknet clients)
- -Recommended for building Juno and other Starknet clients:
- -- - Make
- -Required for building certain clients:
- -- - Network Requirements
- -Bandwidth
- --
- -- Download: 100+ Mbps
-- Upload: 25+ Mbps
-- Data Cap: Unlimited (or 2+ TB/month)
-Ports
- -Ensure these ports are accessible:
- --- -- -
-- - - -Port -Protocol -Purpose -- -30303 -TCP/UDP -Ethereum execution P2P -- -9000 -TCP/UDP -Lighthouse consensus P2P -- -13000 -TCP -Prysm consensus P2P -- - -6060 -TCP -Juno RPC (localhost only) -For Validator Nodes
- -Additional requirements for running a validator:
- --
- -- Uptime: 99.9%+ availability required
-- Backup Power: UPS mandatory
-- Monitoring: 24/7 monitoring and alerting
-- Backup Internet: Secondary connection recommended
-- Dedicated Hardware: No shared resources
-Tested Hardware Configurations
- -Budget Build (~$800)
- --
- -- Intel NUC 13 PRO (i5)
-- 32 GB DDR4 RAM
-- 2 TB NVMe SSD (Samsung 980 PRO)
-- Ubuntu 22.04 LTS
-Recommended Build (~$1500)
- --
- -- Custom build: AMD Ryzen 7 or Intel i7
-- 64 GB DDR4 RAM
-- 4 TB NVMe SSD (Samsung 990 PRO)
-- 1 Gbps fiber connection
-- UPS with 30min+ runtime
-- Ubuntu 22.04 LTS
-Pro Build (~$3000+)
- --
- -- High-end workstation or server
-- 128 GB ECC RAM
-- 8 TB NVMe SSD (enterprise grade)
-- Redundant power supplies
-- Redundant network connections
-- Professional monitoring and alerting
-Cloud Providers
- -If running in the cloud, recommended specifications:
- --- -- -
-- - - -Provider -Instance Type -Est. Cost/Month -- -AWS -m5.2xlarge + 4TB gp3 -~$500-700 -- -Google Cloud -n2-standard-8 + 4TB SSD -~$600-800 -- - -Azure -Standard_D8s_v3 + 4TB Premium SSD -~$550-750 ---💡 Cost Consideration
-- Running on dedicated hardware is often more cost-effective long-term than cloud hosting, especially for validators. -
--- ); -} - diff --git a/docs/src/components/CodeBlock.tsx b/docs/src/components/CodeBlock.tsx deleted file mode 100644 index 8f6f33e..0000000 --- a/docs/src/components/CodeBlock.tsx +++ /dev/null @@ -1,35 +0,0 @@ -'use client'; - -import { useState } from 'react'; - -interface CodeBlockProps { - code: string; - language?: string; -} - -export default function CodeBlock({ code, language = 'bash' }: CodeBlockProps) { - const [copied, setCopied] = useState(false); - - const copyToClipboard = async () => { - await navigator.clipboard.writeText(code); - setCopied(true); - setTimeout(() => setCopied(false), 2000); - }; - - return ( -Validator Setup
- -- Set up and manage your Starknet validator node using starknode-kit. -
- --- -⚠️ Important
-- Running a validator requires significant responsibility. Make sure you - understand the requirements and risks before proceeding. -
-Prerequisites
- -Before setting up a validator, ensure you have:
- --
- -- ✅ A fully synced Juno (Starknet) node
-- ✅ A Starknet wallet with sufficient funds for staking
-- ✅ Stable internet connection with 99.9%+ uptime
-- ✅ Understanding of validator responsibilities
-Installation
- -The validator client is managed through starknode-kit. First, ensure you have starknode-kit installed and configured.
- -Validator Commands
- -Check Validator Status
- -Check the status of your validator:
- -- - Get Validator Version
- -Check the installed version of the validator client:
- -- - Set Juno RPC Endpoint
- -Configure the Juno RPC endpoint for your validator:
- -- - Or use a remote Juno node:
- -- - Configuration
- -Validator configuration is stored in your starknode-kit config file. Key settings include:
- -- - Setting Up Environment Variables
- -Store sensitive validator data in environment variables:
- -- - Add these to your
- -~/.bashrcor~/.zshrcto make them persistent.Starting Your Validator
- -Step 1: Ensure Juno is Running
- -Your Juno node must be fully synced and running:
- -- - Step 2: Verify Configuration
- -Check your validator configuration:
- -- - Step 3: Start the Validator
- -Start your validator client:
- -- - Monitoring Your Validator
- -Monitor your validator status:
- -- - Validator Responsibilities
- --
- -- Uptime - Maintain high availability (99.9%+)
-- Security - Keep your keys secure and never share them
-- Updates - Keep your validator software up to date
-- Monitoring - Actively monitor your validator performance
-- Backup - Maintain secure backups of your keys
-Security Best Practices
- --
- -- ✅ Use hardware wallets when possible
-- ✅ Store keys in environment variables, not in config files
-- ✅ Use firewall to restrict access to validator ports
-- ✅ Enable SSH key-based authentication
-- ✅ Keep your server updated with security patches
-- ✅ Monitor for unusual activity
-- ✅ Have a disaster recovery plan
-- ❌ Never share your private keys
-- ❌ Don't run validators on shared hosting
-- ❌ Avoid storing keys in version control
-Staking and Commission
- -Configure your validator's commission rate:
- -- - This sets a 10% commission on staking rewards. Validators typically charge 5-15% commission.
- -Troubleshooting
- -Validator Not Connecting to Juno
- -Check that:
--
- -- Juno is running:
-starknode-kit status- RPC endpoint is correct in config
-- Firewall allows connections to Juno port
-Keys Not Loading
- -Verify environment variables are set:
- -- - If empty, add to your shell profile and reload.
- -Validator Offline
- -If your validator goes offline:
--
- -- ✅ Check system resources
-- ✅ Check network connectivity
-- ✅ Review validator logs
-- ✅ Restart validator if needed
-Performance Metrics
- -Monitor these key metrics:
- --
- -- Attestation rate - Percentage of successful attestations
-- Block proposals - Number of blocks proposed
-- Uptime - Validator availability percentage
-- Rewards - Staking rewards earned
-Validator Economics
- -Understand the economics:
- --
- -- Minimum Stake - Required amount to become a validator
-- Rewards - Earned from successful validation
-- Commission - Your fee for running the validator
-- Penalties - For downtime or malicious behavior
--- -💡 Tip
-- Start on the testnet (Sepolia) to familiarize yourself with validator operations before running on mainnet. -
-Resources
- - - ---📖 Next Steps
-- Ready to dive deeper? Check out our comprehensive guides: -
-- System Requirements ---- ); -} - diff --git a/docs/src/components/Header.tsx b/docs/src/components/Header.tsx deleted file mode 100644 index 7be998d..0000000 --- a/docs/src/components/Header.tsx +++ /dev/null @@ -1,41 +0,0 @@ -'use client'; - -import Link from 'next/link'; - -export default function Header() { - return ( -- ----{code}
-- - ); -} - diff --git a/docs/src/components/Sidebar.tsx b/docs/src/components/Sidebar.tsx deleted file mode 100644 index 0c7c350..0000000 --- a/docs/src/components/Sidebar.tsx +++ /dev/null @@ -1,60 +0,0 @@ -'use client'; - -import Link from 'next/link'; -import { usePathname } from 'next/navigation'; - -interface NavItem { - title: string; - href: string; -} - -const navigation: NavItem[] = [ - { title: 'Introduction', href: '/' }, - { title: 'Getting Started', href: '/getting-started' }, - { title: 'Installation', href: '/installation' }, - { title: 'Configuration', href: '/configuration' }, - { title: 'Commands', href: '/commands' }, - { title: 'Clients', href: '/clients' }, - { title: 'Validator Setup', href: '/validator' }, - { title: 'Requirements', href: '/requirements' }, - { title: 'Contributing', href: '/contributing' }, -]; - -export default function Sidebar() { - const pathname = usePathname(); - - const isActive = (href: string) => { - if (href === '/') return pathname === href; - return pathname.startsWith(href); - }; - - return ( - - ); -} - diff --git a/docs/tailwind.config.ts b/docs/tailwind.config.ts deleted file mode 100644 index f67c807..0000000 --- a/docs/tailwind.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { Config } from "tailwindcss"; - -const config: Config = { - content: [ - "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", - "./src/components/**/*.{js,ts,jsx,tsx,mdx}", - "./src/app/**/*.{js,ts,jsx,tsx,mdx}", - ], - theme: { - extend: {}, - }, - plugins: [], -}; - -export default config; - diff --git a/docs/tsconfig.json b/docs/tsconfig.json deleted file mode 100644 index c133409..0000000 --- a/docs/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2017", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./src/*"] - } - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -}--- - - - - - --