-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Improve README.md structure (#323)
Signed-off-by: georgi-l95 <[email protected]> Signed-off-by: Atanas Atanasov <[email protected]> Co-authored-by: Atanas Atanasov <[email protected]>
- Loading branch information
1 parent
63a5994
commit 76811f0
Showing
16 changed files
with
509 additions
and
198 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,48 @@ | ||
# hedera-block-node | ||
The block node is a new and unique node designed to consume the blocks streams, maintain state and expose additional targeted value adding APIs to the Hedera community. | ||
More details to come as this is work in progress | ||
# Hedera Block Node | ||
|
||
Implementation of the Hedera Block Node, which is responsible for consuming the block streams, maintaining state and exposing additional targeted value adding APIs to the Hedera community. | ||
|
||
## Table of Contents | ||
|
||
1. [Project Links](#project-links) | ||
1. [Prerequisites](#prerequisites) | ||
1. [Overview of child modules](#overview-of-child-modules) | ||
1. [Getting Started](#getting-started) | ||
1. [Support](#support) | ||
1. [Contributing](#contributing) | ||
1. [Code of Conduct](#code-of-conduct) | ||
1. [Security](#-security) | ||
1. [License](#license) | ||
|
||
## Project Links | ||
|
||
[![Build Application](https://github.com/hashgraph/hedera-block-node/actions/workflows/build-application.yaml/badge.svg?branch=main)](https://github.com/hashgraph/hedera-block-node/actions/workflows/build-application.yaml) | ||
[![E2E Test Suites](https://github.com/hashgraph/hedera-block-node/actions/workflows/e2e-tests.yaml/badge.svg?branch=main)](https://github.com/hashgraph/hedera-block-node/actions/workflows/e2e-tests.yaml) | ||
[![codecov](https://codecov.io/github/hashgraph/hedera-block-node/graph/badge.svg?token=OF6T6E8V7U)](https://codecov.io/github/hashgraph/hedera-block-node) | ||
|
||
[![Latest Version](https://img.shields.io/github/v/tag/hashgraph/hedera-block-node?sort=semver&label=version)](README.md) | ||
[![Made With](https://img.shields.io/badge/made_with-java-blue)](https://github.com/hashgraph/hedera-block-node/) | ||
[![Development Branch](https://img.shields.io/badge/docs-quickstart-green.svg)](docs/overview.md) | ||
[![License](https://img.shields.io/badge/license-apache2-blue.svg)](LICENSE) | ||
|
||
## Prerequisites | ||
|
||
- Java 21 (temurin recommended) | ||
- Gradle (using the wrapper `./gradlew` is highly recommended) | ||
- Docker (recommended for running the projects) | ||
- IntelliJ IDEA (recommended for development) | ||
|
||
## Overview of child modules | ||
|
||
- `server`: implementation of the block node, which contains the main application and all the necessary code to run the block node. | ||
- `simulator`: A simulator for the block node, which can be used to test the block node in a local environment. | ||
- `common`: Module responsible for holding common literals, utilities and types used by the other modules. | ||
- `suites`: A set of e2e tests that can be used to verify the correctness of the block node. | ||
- `tools`: A set of command line tools for working with block stream files. | ||
|
||
## Getting Started | ||
|
||
Refer to the [Hedera Block Node Documentation Overview](docs/overview.md) for more information about the project, design and guides. | ||
|
||
## Support | ||
|
||
|
@@ -20,46 +62,10 @@ This project is governed by the | |
participating, you are expected to uphold this code of conduct. Please report unacceptable behavior | ||
to [[email protected]](mailto:[email protected]). | ||
|
||
## License | ||
|
||
[Apache License 2.0](LICENSE) | ||
|
||
# 🔐 Security | ||
|
||
Please do not file a public ticket mentioning the vulnerability. Refer to the security policy defined in the [SECURITY.md](https://github.com/hashgraph/hedera-sourcify/blob/main/SECURITY.md). | ||
|
||
--- | ||
|
||
# Usage | ||
|
||
## Configuration | ||
## 🔐 Security | ||
|
||
| Environment Variable | Description | Default Value | | ||
|-----------------------------------|---------------------------------------------------------------------------------------------------------------|---------------| | ||
| PERSISTENCE_STORAGE_ROOT_PATH | The root path for the storage, if not provided will attempt to create a `data` on the working dir of the app. | | | ||
| CONSUMER_TIMEOUT_THRESHOLD_MILLIS | Time to wait for subscribers before disconnecting in milliseconds | 1500 | | ||
| SERVICE_DELAY_MILLIS | Service shutdown delay in milliseconds | 500 | | ||
| MEDIATOR_RING_BUFFER_SIZE | Size of the ring buffer used by the mediator (must be a power of 2) | 67108864 | | ||
| NOTIFIER_RING_BUFFER_SIZE | Size of the ring buffer used by the notifier (must be a power of 2) | 2048 | | ||
|
||
# Starting locally: | ||
```bash | ||
./gradlew run | ||
``` | ||
|
||
In debug mode, you can attach a debugger to the port 5005. | ||
```bash | ||
./gradlew run --debug-jvm | ||
``` | ||
|
||
Also you can run on docker locally: | ||
```bash | ||
./gradlew startDockerContainer | ||
``` | ||
|
||
# Running Tests | ||
1) ./gradlew build | ||
Please do not file a public ticket mentioning the vulnerability. Refer to the security policy defined in the [SECURITY.md](https://github.com/hashgraph/hedera-block-node/blob/main/SECURITY.md). | ||
|
||
## License | ||
|
||
### Code Coverage | ||
[![codecov](https://codecov.io/github/hashgraph/hedera-block-node/graph/badge.svg?token=OF6T6E8V7U)](https://codecov.io/github/hashgraph/hedera-block-node) | ||
[Apache License 2.0](LICENSE) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Hedera Block Node Documentation Overview | ||
|
||
This document will outline the structure and content of Block Node documentation. | ||
|
||
## Table of Contents | ||
|
||
1. [Projects](#projects) | ||
1. [Concepts](#concepts) | ||
1. [Release](#release) | ||
|
||
## Projects | ||
|
||
- [Hedera Block Node](../server/README.md): Provides an introduction to Hedera Block Node, its purpose and how it can be used. | ||
- [Simulator](../simulator/README.md): Offers instructions on how the Simulator can be utilized. | ||
- [Tools](../tools/README.md): Provides information on the command line tools available. | ||
|
||
## Concepts | ||
|
||
- [Hedera Block Node Protocol](Protocol/README.md): Overview of the Hedera Block Node Protocol | ||
|
||
## Release | ||
|
||
- [Release Process Documentation](release.md): Details the steps involved in creating a new release, tagging, and publishing artifacts. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# Block Node Application | ||
|
||
## Table of Contents | ||
|
||
1. [Overview](#overview) | ||
1. [Prerequisites](#prerequisites) | ||
1. [Configuration](#configuration) | ||
1. [Metrics](#metrics) | ||
1. [Design](#design) | ||
1. [Block Persistence](#block-persistence) | ||
1. [Bi-directional Producer/Consumer Streaming with gRPC](#bi-directional-producerconsumer-streaming-with-grpc) | ||
|
||
## Overview | ||
|
||
The Block Stream Application is designed handle the output of a Hedera Node, which would be in form of Block Stream. | ||
By handling we can understand verifying, storing and applying needed state changes. | ||
It uses various configuration sources and dependency injection to manage its components. | ||
|
||
## Configuration | ||
|
||
Refer to the [Configuration](docs/configuration.md) for configuration options. | ||
|
||
## Quickstart | ||
|
||
Refer to the [Quickstart](docs/quickstart.md) for a quick guide on how to get started with the application. | ||
|
||
## Metrics | ||
|
||
Refer to the [Metrics](docs/metrics.md) for metrics available in the system. | ||
|
||
## Design | ||
|
||
### Block Persistence | ||
|
||
Refer to the [Block Persistence](docs/design/block-persistence.md) for details on how blocks are persisted. | ||
|
||
### Bi-directional Producer/Consumer Streaming with gRPC | ||
|
||
Refer to the [Bi-directional Producer/Consumer Streaming with gRPC](docs/design/bidi-producer-consumers-streaming.md) for details on how the gRPC streaming is implemented. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Server Configuration | ||
|
||
The components of the Hedera Block Node all support loading configuration via the | ||
environment. | ||
|
||
## Default Values | ||
|
||
The default configuration allows users to quickly get up and running without having to configure anything. This provides | ||
ease of use at the trade-off of some insecure default configuration. Most configuration settings have appropriate | ||
defaults and can be left unchanged. It is recommended to browse the properties below and adjust to your needs. | ||
|
||
| Environment Variable | Description | Default Value | | ||
|:---|:---|---:| | ||
| PERSISTENCE_STORAGE_ROOT_PATH | The root path for the storage, if not provided will attempt to create a `data` on the working dir of the app. | | | ||
| CONSUMER_TIMEOUT_THRESHOLD_MILLIS | Time to wait for subscribers before disconnecting in milliseconds | 1500 | | ||
| SERVICE_DELAY_MILLIS | Service shutdown delay in milliseconds | 500 | | ||
| MEDIATOR_RING_BUFFER_SIZE | Size of the ring buffer used by the mediator (must be a power of 2) | 67108864 | | ||
| NOTIFIER_RING_BUFFER_SIZE | Size of the ring buffer used by the notifier (must be a power of 2) | 2048 | |
Oops, something went wrong.