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

document additional service #2799

Merged
merged 2 commits into from
Jun 27, 2024
Merged

document additional service #2799

merged 2 commits into from
Jun 27, 2024

Conversation

trajan0x
Copy link
Contributor

@trajan0x trajan0x commented Jun 27, 2024

Description

add scribe docs

Summary by CodeRabbit

  • Documentation
    • Introduced documentation for Scribe, a multi-chain indexing service with features like multi-chain support, flexible indexing, real-time and historical data retrieval, reorg protection, and a GraphQL API for querying data.
    • Updated sidebar link in the documentation to point to the GitHub repository instead of the Docusaurus tutorial.

f7eca63: docs preview link

Copy link
Contributor

coderabbitai bot commented Jun 27, 2024

Walkthrough

The recent updates introduce Scribe.md, detailing Scribe, a multi-chain indexing service for blockchain events with features like multi-chain support, flexible indexing, real-time data, and a GraphQL API. Additionally, the sidebar link in docusaurus.config.ts was updated to direct users to a GitHub repository instead of a tutorial.

Changes

Files Change Summary
docs/bridge/docs/Services/Scribe.md Added documentation for Scribe, a multi-chain indexing service including features, architecture, and instructions.
docs/bridge/docusaurus.config.ts Updated sidebar link configuration to point to a GitHub repository instead of a tutorial.

Poem

In a world of chains, Scribe does dance,
Logs and transactions in a glance.
From multi-chains, the data flows,
Through GraphQL, the query grows.
With Helm to steer and configs clear,
On GitHub now, the code's near.
🌐✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@trajan0x trajan0x marked this pull request as ready for review June 27, 2024 01:33
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

PR Summary

  • Added comprehensive Scribe service documentation
  • Updated GitHub link in navbar to correct repository

2 file(s) reviewed, 1 comment(s)
Edit PR Review Bot Settings

docs/bridge/docs/Services/Scribe.md Show resolved Hide resolved
Copy link

cloudflare-workers-and-pages bot commented Jun 27, 2024

Deploying sanguine-fe with  Cloudflare Pages  Cloudflare Pages

Latest commit: 7105159
Status: ✅  Deploy successful!
Preview URL: https://d5601802.sanguine-fe.pages.dev
Branch Preview URL: https://fix-doc-improvement.sanguine-fe.pages.dev

View logs

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 3804042 and b48867f.

Files selected for processing (2)
  • docs/bridge/docs/Services/Scribe.md (1 hunks)
  • docs/bridge/docusaurus.config.ts (1 hunks)
Files skipped from review due to trivial changes (1)
  • docs/bridge/docusaurus.config.ts
Additional context used
LanguageTool
docs/bridge/docs/Services/Scribe.md

[misspelling] ~8-~8: This word is normally spelled as one.
Context: ...abel: Scribe --- # Scribe Scribe is a multi-chain indexing service designed to store logs...

(EN_COMPOUNDS_MULTI_CHAIN)


[style] ~23-~23: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ching and storing blockchain data. 2. Scribe Server: Provides a GraphQL API for qu...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~92-~92: Loose punctuation mark.
Context: ...uration parameters include: - rpc_url: The omnirpc url to use for querying cha...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~93-~93: Loose punctuation mark.
Context: ...here. - chains: List of chains to index, including chai...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~95-~95: Loose punctuation mark.
Context: ...he ID of the chain. - get_logs_range: The number of blocks to request in a si...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~96-~96: Loose punctuation mark.
Context: ...gsrequest. -get_logs_batch_amount: The number of getLogs` requests to inc...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~97-~97: Loose punctuation mark.
Context: ...a batch request. - store_concurrency: The number of goroutines to use when st...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~98-~98: Loose punctuation mark.
Context: ...toring data. - concurrency_threshold: The maximum number of blocks from the h...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~99-~99: Loose punctuation mark.
Context: ...s) are allowed. - livefill_threshold: Number of blocks away from the head to ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~100-~100: Loose punctuation mark.
Context: ... start livefilling. - livefill_range: Range in which the getLogs request fo...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~101-~101: Loose punctuation mark.
Context: ...equesting. - livefill_flush_interval: The interval in which the unconfirmed l...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~102-~102: Loose punctuation mark.
Context: ...ble will be flushed. - confirmations: The number of blocks from the head that...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~103-~103: Loose punctuation mark.
Context: ...ill indexer will begin). - contracts: List of contracts to index per chain, i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~105-~105: Loose punctuation mark.
Context: ...ess of the contract. - start_block: Block to start indexing the contract fr...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint
docs/bridge/docs/Services/Scribe.md

41-41: Expected: 1; Actual: 2
Multiple consecutive blank lines

(MD012, no-multiple-blanks)


71-71: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

Additional comments not posted (4)
docs/bridge/docs/Services/Scribe.md (4)

1-8: Header and Introduction: Well-defined and clear.

The sidebar configuration and introductory description are appropriately set up, providing clear entry points and context for the Scribe service.

Tools
LanguageTool

[misspelling] ~8-~8: This word is normally spelled as one.
Context: ...abel: Scribe --- # Scribe Scribe is a multi-chain indexing service designed to store logs...

(EN_COMPOUNDS_MULTI_CHAIN)


10-16: Key Features Section: Comprehensive and well-presented.

The features of the Scribe service are well-detailed, enhancing understanding of its capabilities.


107-116: API Section: Concise and informative.

The API section provides clear examples and descriptions, facilitating easy integration and usage of the Scribe service.


118-120: Observability Section: Brief but informative.

The observability features are succinctly described, providing essential information on tracing and metrics.

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

PR Summary

(updates since last review)

  • Added comprehensive documentation for Scribe service
  • Detailed features and architecture of Scribe
  • Included usage instructions and configuration details
  • Provided API usage information
  • Updated sidebar link in documentation to GitHub repository

1 file(s) reviewed, no comment(s)
Edit PR Review Bot Settings

@trajan0x trajan0x merged commit 317202e into master Jun 27, 2024
28 of 29 checks passed
@trajan0x trajan0x deleted the fix/doc-improvement branch June 27, 2024 01:48
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between b48867f and 7105159.

Files selected for processing (1)
  • docs/bridge/docs/Services/Scribe.md (1 hunks)
Additional context used
LanguageTool
docs/bridge/docs/Services/Scribe.md

[misspelling] ~8-~8: This word is normally spelled as one.
Context: ...abel: Scribe --- # Scribe Scribe is a multi-chain indexing service designed to store logs...

(EN_COMPOUNDS_MULTI_CHAIN)


[style] ~23-~23: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ching and storing blockchain data. 2. Scribe Server: Provides a GraphQL API for qu...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~46-~46: Possible missing comma found.
Context: ...scribe. ### Running the Components To start the Scribe indexer: ```bash ./scribe -...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~92-~92: Loose punctuation mark.
Context: ...uration parameters include: - rpc_url: The omnirpc url to use for querying cha...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~93-~93: Loose punctuation mark.
Context: ...here. - chains: List of chains to index, including chai...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~95-~95: Loose punctuation mark.
Context: ...he ID of the chain. - get_logs_range: The number of blocks to request in a si...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~96-~96: Loose punctuation mark.
Context: ...gsrequest. -get_logs_batch_amount: The number of getLogs` requests to inc...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~97-~97: Loose punctuation mark.
Context: ...a batch request. - store_concurrency: The number of goroutines to use when st...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~98-~98: Loose punctuation mark.
Context: ...toring data. - concurrency_threshold: The maximum number of blocks from the h...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~99-~99: Loose punctuation mark.
Context: ...s) are allowed. - livefill_threshold: Number of blocks away from the head to ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~100-~100: Loose punctuation mark.
Context: ... start livefilling. - livefill_range: Range in which the getLogs request fo...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~101-~101: Loose punctuation mark.
Context: ...equesting. - livefill_flush_interval: The interval in which the unconfirmed l...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~102-~102: Loose punctuation mark.
Context: ...ble will be flushed. - confirmations: The number of blocks from the head that...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~103-~103: Loose punctuation mark.
Context: ...ill indexer will begin). - contracts: List of contracts to index per chain, i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~105-~105: Loose punctuation mark.
Context: ...ess of the contract. - start_block: Block to start indexing the contract fr...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint
docs/bridge/docs/Services/Scribe.md

41-41: Expected: 1; Actual: 2
Multiple consecutive blank lines

(MD012, no-multiple-blanks)


71-71: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

Additional comments not posted (3)
docs/bridge/docs/Services/Scribe.md (3)

10-16: Well-detailed features section.

This section clearly outlines the key features of the Scribe service, enhancing user understanding of its capabilities.


107-116: Comprehensive API documentation.

This section effectively communicates how to utilize the GraphQL API, providing clear examples of queries.


118-120: Clear and concise observability information.

This section succinctly informs about the observability features of Scribe, directing users to further resources.

Comment on lines +62 to +106
### Configuration

Most deployments of scribe will run two components, the indexer and the server. The indexer is responsible for fetching and storing blockchain data, while the server provides a GraphQL API for querying indexed data. The configuration file for Scribe is a YAML file with the following structure:

indexer.yaml:
<details>
<summary> example config</summary>
```yaml

```
</details>

```yaml
chains:
- chain_id: 1
get_logs_range: 500
get_block_batch_amount: 1
store_concurrency: 100
concurrency_threshold: 50000
livefill_threshold: 300
livefill_range: 200
livefill_flush_interval: 10000
confirmations: 200
contracts:
- address: 0xAf41a65F786339e7911F4acDAD6BD49426F2Dc6b
start_block: 18646320
```

Key configuration parameters include:

- `rpc_url`: The omnirpc url to use for querying chain data (no trailing slash). For more information on omnirpc, see [here](Services//Omnirpc.md).
- `chains`: List of chains to index, including chain-specific parameters:
- `chain_id`: The ID of the chain.
- `get_logs_range`: The number of blocks to request in a single `getLogs` request.
- `get_logs_batch_amount`: The number of `getLogs` requests to include in a batch request.
- `store_concurrency`: The number of goroutines to use when storing data.
- `concurrency_threshold`: The maximum number of blocks from the head in which concurrent operations (store, getLogs) are allowed.
- `livefill_threshold`: Number of blocks away from the head to start livefilling.
- `livefill_range`: Range in which the `getLogs` request for the livefill contracts will be requesting.
- `livefill_flush_interval`: The interval in which the unconfirmed livefill table will be flushed.
- `confirmations`: The number of blocks from the head that the livefiller will livefill up to (and where the unconfirmed livefill indexer will begin).
- `contracts`: List of contracts to index per chain, including:
- `address`: Address of the contract.
- `start_block`: Block to start indexing the contract from (block with the first transaction).

Copy link
Contributor

Choose a reason for hiding this comment

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

Configuration Section: Well-structured but requires punctuation fixes.

The configuration details are comprehensive, but the list formatting could be improved by adjusting punctuation.

- - `rpc_url`: The omnirpc url to use for querying chain data (no trailing slash).
+ - `rpc_url`: The omnirpc URL to use for querying chain data (no trailing slash).
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Configuration
Most deployments of scribe will run two components, the indexer and the server. The indexer is responsible for fetching and storing blockchain data, while the server provides a GraphQL API for querying indexed data. The configuration file for Scribe is a YAML file with the following structure:
indexer.yaml:
<details>
<summary> example config</summary>
```yaml
```
</details>
```yaml
chains:
- chain_id: 1
get_logs_range: 500
get_block_batch_amount: 1
store_concurrency: 100
concurrency_threshold: 50000
livefill_threshold: 300
livefill_range: 200
livefill_flush_interval: 10000
confirmations: 200
contracts:
- address: 0xAf41a65F786339e7911F4acDAD6BD49426F2Dc6b
start_block: 18646320
```
Key configuration parameters include:
- `rpc_url`: The omnirpc url to use for querying chain data (no trailing slash). For more information on omnirpc, see [here](Services//Omnirpc.md).
- `chains`: List of chains to index, including chain-specific parameters:
- `chain_id`: The ID of the chain.
- `get_logs_range`: The number of blocks to request in a single `getLogs` request.
- `get_logs_batch_amount`: The number of `getLogs` requests to include in a batch request.
- `store_concurrency`: The number of goroutines to use when storing data.
- `concurrency_threshold`: The maximum number of blocks from the head in which concurrent operations (store, getLogs) are allowed.
- `livefill_threshold`: Number of blocks away from the head to start livefilling.
- `livefill_range`: Range in which the `getLogs` request for the livefill contracts will be requesting.
- `livefill_flush_interval`: The interval in which the unconfirmed livefill table will be flushed.
- `confirmations`: The number of blocks from the head that the livefiller will livefill up to (and where the unconfirmed livefill indexer will begin).
- `contracts`: List of contracts to index per chain, including:
- `address`: Address of the contract.
- `start_block`: Block to start indexing the contract from (block with the first transaction).
- `rpc_url`: The omnirpc URL to use for querying chain data (no trailing slash). For more information on omnirpc, see [here](Services//Omnirpc.md).
Tools
LanguageTool

[uncategorized] ~92-~92: Loose punctuation mark.
Context: ...uration parameters include: - rpc_url: The omnirpc url to use for querying cha...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~93-~93: Loose punctuation mark.
Context: ...here. - chains: List of chains to index, including chai...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~95-~95: Loose punctuation mark.
Context: ...he ID of the chain. - get_logs_range: The number of blocks to request in a si...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~96-~96: Loose punctuation mark.
Context: ...gsrequest. -get_logs_batch_amount: The number of getLogs` requests to inc...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~97-~97: Loose punctuation mark.
Context: ...a batch request. - store_concurrency: The number of goroutines to use when st...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~98-~98: Loose punctuation mark.
Context: ...toring data. - concurrency_threshold: The maximum number of blocks from the h...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~99-~99: Loose punctuation mark.
Context: ...s) are allowed. - livefill_threshold: Number of blocks away from the head to ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~100-~100: Loose punctuation mark.
Context: ... start livefilling. - livefill_range: Range in which the getLogs request fo...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~101-~101: Loose punctuation mark.
Context: ...equesting. - livefill_flush_interval: The interval in which the unconfirmed l...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~102-~102: Loose punctuation mark.
Context: ...ble will be flushed. - confirmations: The number of blocks from the head that...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~103-~103: Loose punctuation mark.
Context: ...ill indexer will begin). - contracts: List of contracts to index per chain, i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~105-~105: Loose punctuation mark.
Context: ...ess of the contract. - start_block: Block to start indexing the contract fr...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

71-71: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

Comment on lines +31 to +60
## Running Scribe

### Building From Source

To build Scribe from source, you will need to have Go installed. You can install Go by following the instructions [here](https://golang.org/doc/install). Once you have Go installed, you can build Scribe by running the following commands:

1. `git clone https://github.com/synapsecns/sanguine --recursive`
2. `cd sanguine/services/scribe`
3. `go build`


There is also a [docker image](https://github.com/synapsecns/sanguine/pkgs/container/sanguine%2Fscribe) available for scribe.

### Running the Components

To start the Scribe indexer:

```bash
./scribe --config </Full/Path/To/Config.yaml> --db <sqlite or mysql> --path <path/to/database or database url>
```

To start the Scribe server:

```bash
./server --port <port> --db <sqlite or mysql> --path <path/to/database or database url>
```

### Deployment

Scribe can be deployed using Helm charts. You can see the scribe chart on [artifacthub](https://artifacthub.io/packages/helm/synapse/scribe)
Copy link
Contributor

Choose a reason for hiding this comment

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

Clear instructions but consider cleaning up formatting.

Instructions are well-detailed, but there are unnecessary blank lines that could be removed for better readability.

- 41~
-
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Running Scribe
### Building From Source
To build Scribe from source, you will need to have Go installed. You can install Go by following the instructions [here](https://golang.org/doc/install). Once you have Go installed, you can build Scribe by running the following commands:
1. `git clone https://github.com/synapsecns/sanguine --recursive`
2. `cd sanguine/services/scribe`
3. `go build`
There is also a [docker image](https://github.com/synapsecns/sanguine/pkgs/container/sanguine%2Fscribe) available for scribe.
### Running the Components
To start the Scribe indexer:
```bash
./scribe --config </Full/Path/To/Config.yaml> --db <sqlite or mysql> --path <path/to/database or database url>
```
To start the Scribe server:
```bash
./server --port <port> --db <sqlite or mysql> --path <path/to/database or database url>
```
### Deployment
Scribe can be deployed using Helm charts. You can see the scribe chart on [artifacthub](https://artifacthub.io/packages/helm/synapse/scribe)
## Running Scribe
### Building From Source
To build Scribe from source, you will need to have Go installed. You can install Go by following the instructions [here](https://golang.org/doc/install). Once you have Go installed, you can build Scribe by running the following commands:
1. `git clone https://github.com/synapsecns/sanguine --recursive`
2. `cd sanguine/services/scribe`
3. `go build`
There is also a [docker image](https://github.com/synapsecns/sanguine/pkgs/container/sanguine%2Fscribe) available for scribe.
### Running the Components
To start the Scribe indexer:
```bash
./scribe --config </Full/Path/To/Config.yaml> --db <sqlite or mysql> --path <path/to/database or database url>
```
To start the Scribe server:
```bash
./server --port <port> --db <sqlite or mysql> --path <path/to/database or database url>
```
### Deployment
Scribe can be deployed using Helm charts. You can see the scribe chart on [artifacthub](https://artifacthub.io/packages/helm/synapse/scribe)
Tools
LanguageTool

[uncategorized] ~46-~46: Possible missing comma found.
Context: ...scribe. ### Running the Components To start the Scribe indexer: ```bash ./scribe -...

(AI_HYDRA_LEO_MISSING_COMMA)

Markdownlint

41-41: Expected: 1; Actual: 2
Multiple consecutive blank lines

(MD012, no-multiple-blanks)

Comment on lines +18 to +29
## Architecture

Scribe consists of two main components:

1. **Scribe Indexer**: Responsible for fetching and storing blockchain data.
2. **Scribe Server**: Provides a GraphQL API for querying indexed data.

The indexer architecture consists of three main components:

1. **Fetcher**: Retrieves logs for specified contracts and block ranges.
2. **Indexer**: Stores logs, receipts, and transactions for events for a given contract.
3. **ChainIndexer**: Manages multiple indexers per chain for different indexing stages (backfill, livefill, unconfirmed livefill).
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider rephrasing for better readability.

The architecture section is informative, but the repetitive sentence structure could be improved.

- 1. **Scribe Indexer**: Responsible for fetching and storing blockchain data.
- 2. **Scribe Server**: Provides a GraphQL API for querying indexed data.
+ 1. **Scribe Indexer**: Fetches and stores blockchain data.
+ 2. **Scribe Server**: Offers a GraphQL API for data querying.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Architecture
Scribe consists of two main components:
1. **Scribe Indexer**: Responsible for fetching and storing blockchain data.
2. **Scribe Server**: Provides a GraphQL API for querying indexed data.
The indexer architecture consists of three main components:
1. **Fetcher**: Retrieves logs for specified contracts and block ranges.
2. **Indexer**: Stores logs, receipts, and transactions for events for a given contract.
3. **ChainIndexer**: Manages multiple indexers per chain for different indexing stages (backfill, livefill, unconfirmed livefill).
## Architecture
Scribe consists of two main components:
1. **Scribe Indexer**: Fetches and stores blockchain data.
2. **Scribe Server**: Offers a GraphQL API for data querying.
The indexer architecture consists of three main components:
1. **Fetcher**: Retrieves logs for specified contracts and block ranges.
2. **Indexer**: Stores logs, receipts, and transactions for events for a given contract.
3. **ChainIndexer**: Manages multiple indexers per chain for different indexing stages (backfill, livefill, unconfirmed livefill).
Tools
LanguageTool

[style] ~23-~23: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ching and storing blockchain data. 2. Scribe Server: Provides a GraphQL API for qu...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant