diff --git a/docs-site/docs/intro.md b/docs-site/docs/intro.md index ac2f8584..d61b0b8f 100644 --- a/docs-site/docs/intro.md +++ b/docs-site/docs/intro.md @@ -2,4 +2,26 @@ sidebar_position: 1 --- -# Intentionally Blank \ No newline at end of file +# Getting Started + +## Blobs + +The Blobs project exposes the **data availability** capabilities of [Polkadot](https://polkadot.network) and [Kusama](https://kusama.network) for general use. Use-cases include rollups and inscriptions. + +The Blobs codebase is located at https://github.com/thrumdev/blobs. There is a live parachain on Kusama with Parachain ID 3338 running the Blobs runtime. + +Blobs enables users to submit arbitrary data to the chain and receive guarantees about the availability of that data. Namely: + 1. The data can be fetched from the Polkadot/Kusama validator set for up to 24 hours after submission and cannot be withheld. + 2. A commitment to the data's availability is stored within the blobchain and used as a proof of guarantee (1) to computer programs, such as smart contracts or Zero-Knowledge circuits. + +Data Availability is a key component of Layer-2 scaling approaches, and is already part of Polkadot and Kusama for use in securing Parachains. Blobs will bring this capability out to much broader markets. + +Blobs makes a **relay-chain token utility commitment** now and forever. Submitting blobs will always make use of the DOT token on Polkadot and the KSM token on Kusama, as this is the approach with the least user friction. + +## Integrations + +Blobs supports a variety of rollup SDKs out of the box. + - [x] Rollkit + - [x] Sovereign SDK + - [ ] OP Stack + - [ ] Polygon ZK-EVM \ No newline at end of file diff --git a/docs-site/docs/node-operators/index.md b/docs-site/docs/node-operators/index.md new file mode 100644 index 00000000..8151a9a4 --- /dev/null +++ b/docs-site/docs/node-operators/index.md @@ -0,0 +1,67 @@ +--- +sidebar_position: 2 +title: Node Operators +--- + +## Releases + +At the moment, there are no downloadable binary releases available of the Blobs node. We recommend building a binary from source. + +## Node Architecture + +Blobs is a standard Polkadot-SDK parachain node, which means that it actually runs two nodes: + 1. A node for the Parachain (Blobs) on Polkadot or Kusama + 2. A node for the Relay Chain, Polkadot or Kusama. + +You can pass arguments to each one of these underlying nodes with the following approach: + +```sh +./sugondat-node --arg-for-blobs --arg2-for-blobs -- --arg-for-relay --arg2-for-relay +``` + +## Blobs and Storage Usage + +Blobs can potentially use enormous amounts of disk space under heavy usage. This is because all historical blobs are stored within the blobchain's history. While the Polkadot and Kusama expunge ancient blobs after 24 hours, any full node of the blobchain will have all the blobs going back to the genesis, as well as all of the other block data. + +To avoid this issue, run with `--blocks-pruning `, where `number` is some relatively small value such as `1000` to avoid keeping all historical blobs. + +However, there is still a need for archival nodes. The main reason is that many rollup SDKs do not have any form of p2p and their nodes synchronize by downloading ancient blobs from the data availability layer's p2p network. Without someone keeping all ancient blocks, those SDKs +would unfortunately stop working. + +## Hardware Requirements + +For full nodes, we currently recommend: + - 4 vCPUs + - 8GB RAM + - 512G Free Disk Space (1TB preferred) + - Stable and fast internet connection. For collators, we recommend 500mbps. + +The disk space requirements can be reduced by + 1. Running with `--blocks-pruning` on both + +## Building From Source + +Building from source requires some familiarity with the terminal and your system's package manager. + +First, ensure you have an up-to-date Rust installation. If not, visit https://rustup.rs . + +Building from source requires a few packages to be installed on your system. On Debian or Ubuntu, these are: + +```sh +apt install libssl-dev protobuf-compiler cmake make pkg-config llvm clang +``` + +On other linux distros or Mac, use your package manager's equivalents. + + +Building the node: +```bash +git clone https://github.com/thrumdev/blobs +cd blobs +cargo build --release -p sugondat-node +``` + +Running the node: +```bash +target/release/sugondat-node --chain sugondat-kusama +``` diff --git a/docs-site/docusaurus.config.js b/docs-site/docusaurus.config.js index 0ab69e5e..7934176b 100644 --- a/docs-site/docusaurus.config.js +++ b/docs-site/docusaurus.config.js @@ -83,7 +83,7 @@ const config = { style: 'dark', links: [ { - title: 'Docs', + title: 'Learn', items: [ { label: 'Documentation', diff --git a/docs-site/src/pages/index.js b/docs-site/src/pages/index.js index b71ec3f8..39b9eb06 100644 --- a/docs-site/src/pages/index.js +++ b/docs-site/src/pages/index.js @@ -20,7 +20,7 @@ function HomepageHeader() { - Enter + Get Started