Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
7e571097
Unverified
Commit
7e571097
authored
Dec 19, 2023
by
protolambda
Committed by
GitHub
Dec 19, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs(specs): clarify future extension of span-batch format (#8680)
parent
b2f6166a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
17 deletions
+22
-17
span-batches.md
specs/span-batches.md
+22
-17
No files found.
specs/span-batches.md
View file @
7e571097
...
...
@@ -9,6 +9,8 @@
-
[
Introduction
](
#introduction
)
-
[
Span batch format
](
#span-batch-format
)
-
[
Max span-batch size
](
#max-span-batch-size
)
-
[
Future batch-format extension
](
#future-batch-format-extension
)
-
[
Span batch Activation Rule
](
#span-batch-activation-rule
)
-
[
Optimization Strategies
](
#optimization-strategies
)
-
[
Truncating information and storing only necessary data
](
#truncating-information-and-storing-only-necessary-data
)
...
...
@@ -128,6 +130,26 @@ Where:
-
`protected_bits`
: standard bitlist of length of number of legacy transactions:
1 bit per L2 legacy transactions, indicating if transaction is protected(
[
EIP-155
]
) or not.
[
EIP-2718
]:
https://eips.ethereum.org/EIPS/eip-2718
[
EIP-2930
]:
https://eips.ethereum.org/EIPS/eip-2930
[
EIP-1559
]:
https://eips.ethereum.org/EIPS/eip-1559
[
EIP-155
]:
https://eips.ethereum.org/EIPS/eip-155
### Max span-batch size
Total size of encoded span batch is limited to
`MAX_SPAN_BATCH_SIZE`
(currently 10,000,000 bytes,
equal to
`MAX_RLP_BYTES_PER_CHANNEL`
). Therefore every field size of span batch will be implicitly limited to
`MAX_SPAN_BATCH_SIZE`
. There can be at least single span batch per channel, and channel size is limited
to
`MAX_RLP_BYTES_PER_CHANNEL`
and you may think that there is already an implicit limit. However, having an explicit
limit for span batch is helpful for several reasons. We may save computation costs by avoiding malicious input while
decoding. For example, let's say bad batcher wrote span batch which
`block_count = max.Uint64`
. We may early return
using the explicit limit, not trying to consume data until EOF is reached. We can also safely preallocate memory for
decoding because we know the upper limit of memory usage.
### Future batch-format extension
This is an experimental extension of the span-batch format, and not activated with the Delta upgrade yet.
Introduce version
`2`
to the
[
batch-format
](
./derivation.md#batch-format
)
table:
|
`batch_version`
|
`content`
|
...
...
@@ -147,23 +169,6 @@ Where:
-
`fee_recipients_idxs`
: for each block,
`uvarint`
number of index to decode fee recipients from
`fee_recipients_set`
.
[
EIP-2718
]:
https://eips.ethereum.org/EIPS/eip-2718
[
EIP-2930
]:
https://eips.ethereum.org/EIPS/eip-2930
[
EIP-1559
]:
https://eips.ethereum.org/EIPS/eip-1559
[
EIP-155
]:
https://eips.ethereum.org/EIPS/eip-155
Total size of encoded span batch is limited to
`MAX_SPAN_BATCH_SIZE`
(currently 10,000,000 bytes,
equal to
`MAX_RLP_BYTES_PER_CHANNEL`
). Therefore every field size of span batch will be implicitly limited to
`MAX_SPAN_BATCH_SIZE`
. There can be at least single span batch per channel, and channel size is limited
to
`MAX_RLP_BYTES_PER_CHANNEL`
and you may think that there is already an implicit limit. However, having an explicit
limit for span batch is helpful for several reasons. We may save computation costs by avoiding malicious input while
decoding. For example, let's say bad batcher wrote span batch which
`block_count = max.Uint64`
. We may early return
using the explicit limit, not trying to consume data until EOF is reached. We can also safely preallocate memory for
decoding because we know the upper limit of memory usage.
## Span batch Activation Rule
The span batch upgrade is activated based on timestamp.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment