Skip to content

Luke/private blockspace - #2312

Merged
lukecd merged 14 commits into
docs-glow-upfrom
luke/private-blockspace
Nov 19, 2025
Merged

Luke/private blockspace#2312
lukecd merged 14 commits into
docs-glow-upfrom
luke/private-blockspace

Conversation

@lukecd

@lukecd lukecd commented Nov 19, 2025

Copy link
Copy Markdown
Contributor

this pr adds an overview and quickstart for private blockspace along with re-organizing the menus some

@lukecd
lukecd requested a review from jcstein November 19, 2025 14:12
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @lukecd, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces documentation for private blockspace, reorganizes the documentation menus, and performs general maintenance such as dependency cleanup and adding a pre-push git hook. The primary goal is to provide users with information on private blockspace and improve the overall structure and quality of the documentation.

Highlights

  • Private Blockspace Documentation: Adds an overview and quickstart guide for private blockspace, providing users with information on this new feature.
  • Menu Reorganization: Reorganizes the menus to improve navigation and discoverability of content.
  • Dependencies Cleanup: Removes unused dependencies and updates existing ones, contributing to a cleaner and more efficient codebase.
  • Git Hook Addition: Adds a pre-push git hook to run linting, ensuring code quality before pushing changes.
Ignored Files
  • Ignored by pattern: .github/workflows/** (8)
    • .github/workflows/build.yml
    • .github/workflows/deploy.yml
    • .github/workflows/latest_tags.yml
    • .github/workflows/link-check.yml
    • .github/workflows/lint.yaml
    • .github/workflows/preview.yaml
    • .github/workflows/preview.yml
    • .github/workflows/spellcheck.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a major migration from VitePress to Next.js and Nextra, and introduces new documentation for private blockspace. The changes are extensive and represent a significant improvement in the documentation infrastructure. My review focuses on the new content and configuration. I've identified a few issues, including some broken links, incorrect configuration values, and placeholder content that needs to be addressed. Specifically, the docsRepositoryBase in app/layout.tsx needs to be corrected for edit links to function, and the old README.md content should be preserved. Additionally, many new pages contain placeholder 'Lorem ipsum' text and should be populated with actual content before merging.

Comment thread README.md Outdated
Comment on lines -1 to -131
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).

# Celestia Documentation Site
## Getting Started

Welcome to the official documentation repository for [Celestia](https://celestia.org/).

Here you'll find comprehensive guides, tutorials, and reference materials
to help you make the most out of Celestia.

## Building the site

To get started, clone the repository and run the following:
First, run the development server:

```bash
yarn && yarn dev
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

This documentation site is built with [VitePress](https://vitepress.dev)

## Link checking

To check for broken links in the documentation, run:

```bash
yarn link-check
```

This uses [lychee](https://github.com/lycheeverse/lychee) to validate all internal and
external links.
The link checker is also run automatically in CI on every push and pull request.

## Contribution guidelines

We love contributions from the community! Whether you're fixing typos,
improving content clarity, or adding new topics, every contribution helps.

- Fork & clone: Fork this repository and clone it to your local machine.
- Branch: Always create a new branch for your changes. Naming it relevantly.
- Commit Changes: Make your changes and commit them with a clear and concise
commit message.
- Push & Create PR: Push your changes to your fork and create a pull request
to the main branch of this repository.

Please ensure to review the **[full Contribution Guidelines](https://github.com/celestiaorg/.github/blob/main/CONTRIBUTING.md#external-contributions)** before
making a pull request.

## Documentation standards

This section outlines the standards and guidelines for maintaining
consistent, high-quality documentation across the Celestia project.

### Styling rules

- **Sentence case**: Use sentence case for headings and titles
(reference: [issue #161](https://github.com/celestiaorg/docs/issues/161))
- **No "click here"**: Avoid using "click here" for link text
(reference: [issue #1073](https://github.com/celestiaorg/docs/issues/1073))
- **International English**: Use international (common) English spelling
and terminology
- **Network names**: Use "Arabica devnet", not "Arabica Devnet"
- **Node types**: Use lowercase for node types (_e.g._, "bridge node",
not "Bridge Node")
- **Politeness**: Avoid using "please" in instructional content
- **Unique headings**: Ensure no duplicate headings within a document
- **Network references**: Use "Coffee Beta" network (note the specific
capitalization)
- **Latin abbreviations**: Use italicized _i.e._ or _e.g._ instead of
plain i.e. or e.g.
- **Code references**: Use `celestia-app` in regular text, not as inline
code when referring to the application name
- **Tab ordering**: When using tabs, order them as: Coffee Beta, Mocha,
Arabica
- **Placeholders**: Use angle brackets with underscores for placeholders:
`<flag_name>` not `<flag-name>` or `<flag name>`

### Documentation update procedures

When updating documentation:

1. **Run automation**: Execute any available automation tools before
manual updates
2. **Chain ID updates**: If there are chain-id breaking changes:
- Update all chain-id references throughout the documentation
- Search comprehensively to ensure no references are missed
- Reference example: [chain-id update PR](https://github.com/celestiaorg/docs/pull/857/files#diff-7c3322aa40bebbde7be394c354f900d6b5606eabbd03ac0d661f7565fcadcb70)
3. **Release notes review**: Read through release notes to identify and
implement any breaking changes that affect documentation
4. **Process reference**: See [documentation update process video](https://www.loom.com/share/0d6897939b654b60b766887b37f86790)

### Documentation requirements for software
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

All software documentation must include:
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

- **Proof of functionality**: Demonstrate that the software works through:
- Passing CI checks
- Manual testing evidence
- Links to block explorer (where applicable)
- Clear, step-by-step instructions for running the software
- **Comprehensive setup**: Provide complete setup and usage instructions
- **Troubleshooting**: Include common issues and their solutions
- **Version compatibility**: Clearly state which versions are supported
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

### Link format guidelines
## Learn More

When adding internal links to documentation, please use the following format:
`[link text](/base-working-dir/subdir/page.md#section-id)`, i.e. `[link text](/how-to-guides/quick-start.md#get-your-auth-token)`
To learn more about Next.js, take a look at the following resources:

This format ensures long-term compatibility and consistent behavior across
different platforms and documentation builds.
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

## Directory structure
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

- /learn: A category for learning about Celestia.
- /how-to guides: A category with guides for running a node, deploying
rollups, and building on Celestia.
- /tutorials: A category with tutorials on interacting with celestia-node.
<!-- * /guides [WIP]: In-depth articles that cover specific topics in detail. -->
- /community: A category for the Celestia community.
- /public: Images, diagrams, and other media files used in the documentation.
## Deploy on Vercel

## Feedback & suggestions
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

We value feedback from the community. If you have suggestions for improvements
or find any discrepancies in the documentation, please raise an issue in this
repository.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The updated README.md is a generic Next.js template and is missing the valuable project-specific information from the old README, such as contribution guidelines, documentation standards, and local development instructions for VitePress (which could be adapted for Nextra). It's important to retain this information to guide contributors and maintain documentation quality. Please consider moving the relevant sections from the old README to a CONTRIBUTING.md file or updating this README with the project-specific context.


- **Submit blobs**: Store data on Celestia's data availability layer
- **Retrieve blobs**: Get data back from the network
- **Check balance**: See your account's token balance

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This link to the 'Go Node RPC Client' points to ./not-found, which is a broken link. Please update it to point to the correct location.

Comment thread app/layout.tsx
banner={banner}
navbar={navbar}
pageMap={await getPageMap()}
docsRepositoryBase="https://github.com/shuding/nextra/tree/main/docs"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The docsRepositoryBase prop is hardcoded to https://github.com/shuding/nextra/tree/main/docs. This should be updated to point to this project's repository (https://github.com/celestiaorg/docs/edit/main/) so that the 'Edit this page' links work correctly.

Suggested change
docsRepositoryBase="https://github.com/shuding/nextra/tree/main/docs"
docsRepositoryBase="https://github.com/celestiaorg/docs/edit/main"

Comment on lines +48 to +54
## Parallel tx submission

1. parallel transaction submission: https://github.com/celestiaorg/docs/issues/2273 - different accounts. must track height, namespace, commitment

## Queued tx submission

1. queued transaction submission https://github.com/celestiaorg/celestia-app/blob/98bb2ab0de430f59e2c2664524cacb3f71974562/specs/src/tx_client.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This section appears to contain placeholder notes and links to GitHub issues rather than complete documentation. Please replace these notes with the intended content for parallel and queued transaction submission.


## Pruning windows

if you want data older than the pruning window, you can use the SyncFromHash = "" and SyncFromHeight = "" in config.toml

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The instruction if you want data older than the pruning window, you can use the SyncFromHash = "" and SyncFromHeight = "" in config.toml is unclear. It's not obvious if this means setting these values to empty strings disables a feature or if it's an example of what not to do. Please clarify the intended action for users who want to access data older than the pruning window.

Comment on lines +93 to +94
When posting a blob, you send both the namespace and the blob data in hexadecimal format. When retrieving, you switch to base64. This is because Twinkle converts and stores blob data in base64 internally once it's published to Celestia. Using base64 on retrieval ensures you're querying the same encoding the chain uses for commitments and proofs. In short: write in hex, read in base64.
</Callout>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The explanation for why different encodings are used for posting and retrieving data is a bit confusing. Stating that Twinkle converts data to base64 internally is an implementation detail that might not be necessary for the user. It could be simplified by just stating what encoding the API expects for each endpoint. For example: 'The POST /v0/blob endpoint expects the namespace and data fields to be hex-encoded. In contrast, the GET /v0/blob endpoint requires the namespace and blobCommitment as base64-encoded query parameters.'

| `TLS_CERTS_PATH required` | Missing or commented-out cert vars | Generate certs (see above). |
| `account not found` | Unfunded signer | Use [Mocha faucet](https://faucet.celestia-mocha.com). |
| `blob: not found` | Wrong commitment | Run `blob.GetAll` to find the real one. |
| `grpc-status header missing` | Invalid gRPC URL | Must be `https://<host>:9090`, no token. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The troubleshooting guide for grpc-status header missing suggests the URL format https://<host>:9090. This seems to contradict the setup instructions on line 44, which imply a format of <host>:9090 (without the https:// scheme). gRPC endpoints typically do not use the https:// prefix. To avoid confusion, please ensure the troubleshooting advice aligns with the correct format.


const versions = [
'v0.11.0-rc8',
'rc8-0cf4a49',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The version rc8-0cf4a49 in the versions array appears to be a commit hash rather than a semantic version tag. This is inconsistent with the other version names in the list. For clarity and consistency, consider using version tags for all entries.


![IBC technical diagram](/img/ibc-diagram.png)

**TEMPOARY DIAGRAM, WELL HAVE YONI REDO IN CELESTIA STYLE IN THE FUTURE**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This appears to be a placeholder note for the diagram. Please replace it with the final diagram or remove the note if the current diagram is final.

@lukecd
lukecd changed the base branch from main to docs-glow-up November 19, 2025 14:35
Comment thread app/build/private-blockspace/about/page.mdx Outdated
Comment thread app/build/private-blockspace/about/page.mdx Outdated
Comment thread app/build/private-blockspace/about/page.mdx Outdated
Comment thread app/build/private-blockspace/quickstart/page.mdx Outdated
Comment thread app/build/private-blockspace/quickstart/page.mdx
Comment thread app/build/private-blockspace/quickstart/page.mdx
Comment thread app/build/private-blockspace/quickstart/page.mdx Outdated
Comment thread app/build/private-blockspace/quickstart/page.mdx Outdated
Comment thread app/build/private-blockspace/quickstart/page.mdx Outdated
Comment thread app/build/private-blockspace/quickstart/page.mdx
Comment thread app/build/private-blockspace/quickstart/page.mdx Outdated
Comment thread app/build/private-blockspace/quickstart/page.mdx Outdated
Comment thread app/build/private-blockspace/quickstart/page.mdx Outdated
Proxy->>JSON RPC Client: *Failure* -> <Passthrough>
```

When retrieving a blob, the Proxy acts as a transparent relay between the client and the Celestia network. The proxy forwards the `blob.Get` request to the Celestia network, receives the raw blob data, and then attempts to deserialize and decrypt it using the configured encryption key. If the blob was encrypted through the proxy, decryption succeeds and the proxy returns the original plaintext data. If it was not, the proxy simply passes the response through unchanged. This design ensures compatibility with both encrypted and unencrypted blobs, so existing clients can retrieve data without modification.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When retrieving a blob, the Proxy acts as a transparent relay between the client and the Celestia network. The proxy forwards the `blob.Get` request to the Celestia network, receives the raw blob data, and then attempts to deserialize and decrypt it using the configured encryption key. If the blob was encrypted through the proxy, decryption succeeds and the proxy returns the original plaintext data. If it was not, the proxy simply passes the response through unchanged. This design ensures compatibility with both encrypted and unencrypted blobs, so existing clients can retrieve data without modification.
When retrieving a blob, the proxy acts as a transparent relay between the client and the Celestia network. The proxy forwards the `blob.Get` request to the Celestia network, receives the raw blob data, and then attempts to deserialize and decrypt it using the configured encryption key. If the blob was encrypted through the proxy, decryption succeeds and the proxy returns the original plaintext data. If it was not, the proxy simply passes the response through unchanged. This design ensures compatibility with both encrypted and unencrypted blobs, so existing clients can retrieve data without modification.

Comment thread app/build/private-blockspace/quickstart/page.mdx Outdated
```
https://celestia-mocha.quiknode.pro/<your-token>/
```
4. Copy the token from your endpoint URL (this is your **write token**).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and read?

```
4. Copy the token from your endpoint URL (this is your **write token**).
5. Save both the **URL** and **token** — you’ll add them to your `.env` file next.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to resolve extra spaces, breaks build

@jcstein jcstein left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nits on app/build/private-blockspace/quickstart/page.mdx

@lukecd
lukecd merged commit 1f55daa into docs-glow-up Nov 19, 2025
3 checks passed
@lukecd
lukecd deleted the luke/private-blockspace branch November 19, 2025 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants