You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<!--
Please read and fill out this form before submitting your PR.
Please make sure you have reviewed our contributors guide before
submitting your
first PR.
-->
## Overview
<!--
Please provide an explanation of the PR, including the appropriate
context,
background, goal, and rationale. If there is an issue with this
information,
please provide a tl;dr and link the issue.
-->
## Checklist
<!--
Please complete the checklist to ensure that the PR is ready to be
reviewed.
IMPORTANT:
PRs should be left in Draft until the below checklist is completed.
-->
- [ ] New and updated code has appropriate documentation
- [ ] New and updated code has new and/or updated testing
- [ ] Required CI checks are passing
- [ ] Visual proof for any user facing features like CLI or
documentation updates
- [ ] Linked issues closed with keywords
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Documentation**
- Updated the mempool module documentation with the correct URL
reference.
- Replaced `state.md` with `block-executor.md` to reflect the current
system structure.
- Removed outdated assumption from Full Node documentation and updated
service references.
- Introduced `DAClient` wrapper in DA documentation for improved
interaction with data availability systems.
- **New Features**
- Implemented new methods in `BlockExecutor` for enhanced block
management.
- Added `ProcessProposal` function to `BlockExecutor` for processing
proposals.
- Added `CheckBounds` function for boundary checking in event queries.
- **Bug Fixes**
- Improved error handling in `block/manager.go` with context
cancellation checks.
- Updated transaction validation logic in `FullNode` to handle context
completion.
- Enhanced `FullClient` functions with context cancellation handling.
- **Refactor**
- Removed the `ResultCheckBlock` type from the DA layer client
interface.
- Updated test assertions from `assert` to `require` for stricter error
checking in `ws_test.go`.
- **Chores**
- Updated CI pipeline to use Go version 1.21.
- Modified `protoc.sh` script to reflect changes in protobuf generation
for new modules.
- **Style**
- No visible style changes to end-users.
- **Tests**
- No direct changes to end-user testing.
- **Revert**
- No reverts in this release.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Rollkit provides a wrapper for [go-da][go-da], a generic data availability interface for modular blockchains, called `DAClient` with wrapper functionalities like `SubmitBlocks` and `RetrieveBlocks` to help block manager interact with DA more easily.
4
+
5
+
## Details
6
+
7
+
`DAClient` under the hood uses a GRPC implementation of the [go-da][go-da] DA interface. Using the `DAAddress` specified in the node's config, node creates a GRPC connection to it using go-da's gprc implementation [grpc-proxy][grpc-proxy] which is then used under the hood of `DAClient` to communicated with the underlying DA.
8
+
9
+
Given a set of blocks to be submitted to DA by the block manager, the `SubmitBlocks` first encodes the blocks using protobuf (the encoded data are called blobs) and invokes the `Submit` method on the underlying DA implementation. On successful submission (`StatusSuccess`), the DA block height which included in the rollup blocks is returned.
10
+
11
+
The `Submit` call may result in an error (`StatusError`) based on the underlying DA implementations on following scenarios:
12
+
13
+
* the total blobs size exceeds the underlying DA's limits (includes empty blobs)
14
+
* the implementation specific failures, e.g., for [celestia-da][celestia-da], invalid namespace, unable to create the commitment or proof, setting low gas price, etc, could return error.
15
+
16
+
The `RetrieveBlocks` retrieves the rollup blocks for a given DA height using [go-da][go-da]`GetIDs` and `Get` methods. If there are no blocks available for a given DA height, `StatusNotFound` is returned (which is not an error case). The retrieved blobs are converted back to rollup blocks and returned on successful retrieval.
17
+
18
+
Both `SubmitBlocks` and `RetrieveBlocks` may be unsuccessful if the DA node and the DA blockchain that the DA implementation is using have failures. For example, failures such as, DA mempool is full, DA submit transaction is nonce clashing with other transaction from the DA submitter account, DA node is not synced, etc.
Copy file name to clipboardExpand all lines: mempool/mempool.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## Abstract
4
4
5
-
The mempool module stores transactions which have not yet been included in a block, and provides an interface to check the validity of incoming transactions. It's defined by an interface [here](https://github.com/rollkit/rollkit/blob/main/mempool/mempool.go#L16), with an implementation [here](https://github.com/rollkit/rollkit/blob/main/mempool/v1/mempool.go).
5
+
The mempool module stores transactions which have not yet been included in a block, and provides an interface to check the validity of incoming transactions. It's defined by an interface [here](https://github.com/rollkit/rollkit/blob/main/mempool/mempool.go#L16), with an implementation [here](https://github.com/rollkit/rollkit/blob/main/mempool/mempool.go).
Copy file name to clipboardExpand all lines: node/full_node.md
+3-6Lines changed: 3 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ The Full Node communicates with other nodes in the network using the P2P client.
60
60
61
61
## Assumptions and Considerations
62
62
63
-
The Full Node assumes that the configuration, private keys, client creator, genesis document, and logger are correctly passed in by the Cosmos SDK. It also assumes that the P2P client, data availability layer client, mempool, block manager, and other services can be started and stopped without errors. The DA layer specified in the node configuration should be in the list of registered clients in the [DA registry].
63
+
The Full Node assumes that the configuration, private keys, client creator, genesis document, and logger are correctly passed in by the Cosmos SDK. It also assumes that the P2P client, data availability layer client, mempool, block manager, and other services can be started and stopped without errors.
0 commit comments