Skip to content

Block Node #1081

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

Draft
wants to merge 31 commits into
base: main
Choose a base branch
from
Draft

Block Node #1081

wants to merge 31 commits into from

Conversation

Nana-EC
Copy link
Contributor

@Nana-EC Nana-EC commented Nov 17, 2024

Description:
Abstract
This HIP introduces and proposes the adoption of a new node type that is designed to parse the block stream, store
latest state and serve up additional network APIs such as state proofs and block retrieval that support decentralized
querying and verification of state.

A block node will primarily sit in between a consensus node and a mirror node to serve as a decentralized source of
verifiable network state and transaction information. As an emergent feature a block node will introduce a new node
economy through independent community operations. Anyone will be able to independently run a block node or block
stream parsing product that provides value added services to users e.g. aggregated data insights, data availability.

Block Nodes will have a rich API, allowing consumers to receive a subset of the stream, or the full stream. Block Nodes
can innovate on payment -- they can be commercial and have connectivity rules / rate limits / SLAs for customers.
They can require payment for serving blocks, or they can serve blocks for free.

Related issue(s):

Expands on #1055

Notes for reviewer:

Checklist

  • Documented (Code comments, README, etc.)
  • Tested (unit, integration, etc.)

@Nana-EC Nana-EC self-assigned this Nov 17, 2024
Copy link

netlify bot commented Nov 17, 2024

Deploy Preview for hedera-hips ready!

Name Link
🔨 Latest commit cc62608
🔍 Latest deploy log https://app.netlify.com/sites/hedera-hips/deploys/67d9853ca362470008a31ca3
😎 Deploy Preview https://deploy-preview-1081--hedera-hips.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@Nana-EC Nana-EC mentioned this pull request Dec 2, 2024
Copy link
Contributor

@jsync-swirlds jsync-swirlds left a comment

Choose a reason for hiding this comment

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

About half way through the hip document so far.

Copy link
Contributor

@jsync-swirlds jsync-swirlds left a comment

Choose a reason for hiding this comment

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

Finally reached the end of the document.

@mgarbs
Copy link
Contributor

mgarbs commented Feb 3, 2025

Hello everyone,

I hope this message finds you well!

I am reaching out just to give a gentle reminder regarding the open PR titled "Block Node". Currently, we still have 42 unresolved discussions which need your valuable input. It'd be really helpful if we could collaborate and get these discussions resolved to make further progress on this PR.

I appreciate your time, commitment, and collaboration thus far. Your thoughts and perspectives continue to be essential in making sure we're moving in the right direction.

Thank you again for your contributions to this project. Looking forward to concluding these discussions and achieving our overall goal together!

Best regards,
Michael
@jsync-swirlds
@Nana-EC

@Nana-EC
Copy link
Contributor Author

Nana-EC commented Feb 22, 2025

Hello everyone,

I hope this message finds you well!

I am reaching out just to give a gentle reminder regarding the open PR titled "Block Node". Currently, we still have 42 unresolved discussions which need your valuable input. It'd be really helpful if we could collaborate and get these discussions resolved to make further progress on this PR.

I appreciate your time, commitment, and collaboration thus far. Your thoughts and perspectives continue to be essential in making sure we're moving in the right direction.

Thank you again for your contributions to this project. Looking forward to concluding these discussions and achieving our overall goal together!

Best regards, Michael @jsync-swirlds @Nana-EC

Thanks @mgarbs
A few commits are coming through to address the comments and fill in some of the empty sections

@jsync-swirlds jsync-swirlds force-pushed the block-node branch 5 times, most recently from b358e97 to 04e11af Compare March 1, 2025 01:07
Nana-EC and others added 9 commits March 13, 2025 14:08
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
…nd service definitions

Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Joseph Sinclair <121976561+jsync-swirlds@users.noreply.github.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
* Added skip block message to block service `PublishStreamResponse`
* Added resend block message to block service `PublishStreamResponse`
* Renamed end of stream response to `end_of_stream` for clarity.
* Added persitence failed response
* Removed (unnecessary) item acknowledgement

Signed-off-by: Joseph Sinclair <121976561+jsync-swirlds@users.noreply.github.com>
mgarbs and others added 8 commits March 18, 2025 10:37
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
…section

Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
…atest

Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Nana-EC added 2 commits May 21, 2025 16:08
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
@Nana-EC
Copy link
Contributor Author

Nana-EC commented May 22, 2025

Abstract, Motivation and Rationale and User Story sections i.e. everything above Specification have been updated in readiness for further socialization on it's way to TSC Approval.
Specification section and below will see an update to reflect updates from design and early development of Block Nodes.

Nana-EC added 2 commits May 22, 2025 23:05
… for non-technical folks. Thanks mark@swirldslabs.com

Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Copy link
Contributor

@jsync-swirlds jsync-swirlds left a comment

Choose a reason for hiding this comment

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

Not done, but sending what's there so far.

…s from @jasperpotts @rbair and @atul-hedera

Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Copy link
Contributor

@jsync-swirlds jsync-swirlds left a comment

Choose a reason for hiding this comment

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

Still reading through, but have a few suggestions, corrections, and clarifications.

Nana-EC added 2 commits May 28, 2025 19:03
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
@Nana-EC
Copy link
Contributor Author

Nana-EC commented May 29, 2025

Need to circle back for another pass to update the protocol and response code descriptions with the latest from BN repo

Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
HIP/hip-1081.md Outdated
| **Verified Block** | A verified block is a block for which a Block Proof is received and for which the TSS signature of the network ledger ID is valid. |
| **Full History Block Node** | A Block Node that maintains block history from network streaming start. |
| **Archive Block Node** | A Block Node that maintains block history but does not expose consumer API services. |
| **Rolling History Block Node** | A Block Node that maintains blocks but prunes them after a configured period of time. |
Copy link
Member

@georgi-l95 georgi-l95 May 29, 2025

Choose a reason for hiding this comment

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

Light Node, maybe ? Similar to what other networks are calling nodes with similar behaviour.

Copy link
Contributor

Choose a reason for hiding this comment

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

Using names common in other networks, such as "Light Node", implies a lot of things not stated and not accurate about block nodes because the name is common in other networks (which don't have the hashgraph algorithm).
It's very hard to connect block nodes to node types in other networks without creating confusion, as they really don't properly match the setup used anywhere else.

Copy link
Member

Choose a reason for hiding this comment

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

I proposed Light Block Node as naming, because the other two already somewhat match the naming of nodes from other environments, like geth (for example). And it might be easier for folks from other networks, if we are consistent with the naming that they are familiar with.

However I agree with you, and in the future we might add additional template, which more closely match Light Nodes behaviour. So it's fine either way 👍

HIP/hip-1081.md Outdated
Comment on lines 166 to 167
12. As a Block Node Operator, I want to offer filtered block streams to external clients, so that consumers only
receive the data relevant to their use cases, reducing bandwidth and processing overhead
Copy link
Contributor

Choose a reason for hiding this comment

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

Might want to remove this and defer to a future "Fitlering" HIP.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure, filtering got bumped up so we need to define the API soon but the user story may be more timely.
Let's confirm though. If indeed a different HIP it can be removed

Nana-EC added 5 commits May 30, 2025 00:49
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
Signed-off-by: Nana Essilfie-Conduah <nana@swirldslabs.com>
* Address some review comments.
* Updated sequence diagrams with latest publisher protocol expectations.
* Fixed some grammar and spelling.
* Added a use case for snapshot format compatibility.

Signed-off-by: Joseph S <121976561+jsync-swirlds@users.noreply.github.com>
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.

5 participants