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
bed7459a
Unverified
Commit
bed7459a
authored
Apr 17, 2023
by
Michael de Hoog
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Don't reuse compressor
parent
ba075423
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
90 additions
and
83 deletions
+90
-83
channel_builder.go
op-batcher/batcher/channel_builder.go
+11
-5
channel_builder_test.go
op-batcher/batcher/channel_builder_test.go
+42
-42
channel_manager_test.go
op-batcher/batcher/channel_manager_test.go
+18
-18
config.go
op-batcher/batcher/config.go
+14
-12
driver.go
op-batcher/batcher/driver.go
+1
-6
channel_out.go
op-node/rollup/derive/channel_out.go
+4
-0
No files found.
op-batcher/batcher/channel_builder.go
View file @
bed7459a
...
@@ -32,6 +32,8 @@ func (e *ChannelFullError) Unwrap() error {
...
@@ -32,6 +32,8 @@ func (e *ChannelFullError) Unwrap() error {
return
e
.
Err
return
e
.
Err
}
}
type
CompressorFactory
func
()
(
derive
.
Compressor
,
error
)
type
ChannelConfig
struct
{
type
ChannelConfig
struct
{
// Number of epochs (L1 blocks) per sequencing window, including the epoch
// Number of epochs (L1 blocks) per sequencing window, including the epoch
// L1 origin block itself
// L1 origin block itself
...
@@ -54,8 +56,8 @@ type ChannelConfig struct {
...
@@ -54,8 +56,8 @@ type ChannelConfig struct {
SubSafetyMargin
uint64
SubSafetyMargin
uint64
// The maximum byte-size a frame can have.
// The maximum byte-size a frame can have.
MaxFrameSize
uint64
MaxFrameSize
uint64
// Compressor to use to compress frame data.
// Compressor
Factory creates Compressors
to use to compress frame data.
Compressor
derive
.
Compressor
Compressor
Factory
CompressorFactory
}
}
// Check validates the [ChannelConfig] parameters.
// Check validates the [ChannelConfig] parameters.
...
@@ -82,7 +84,7 @@ func (cc *ChannelConfig) Check() error {
...
@@ -82,7 +84,7 @@ func (cc *ChannelConfig) Check() error {
}
}
// Compressor must be set
// Compressor must be set
if
cc
.
Compressor
==
nil
{
if
cc
.
Compressor
Factory
==
nil
{
return
errors
.
New
(
"compressor cannot be nil"
)
return
errors
.
New
(
"compressor cannot be nil"
)
}
}
...
@@ -129,7 +131,11 @@ type channelBuilder struct {
...
@@ -129,7 +131,11 @@ type channelBuilder struct {
// newChannelBuilder creates a new channel builder or returns an error if the
// newChannelBuilder creates a new channel builder or returns an error if the
// channel out could not be created.
// channel out could not be created.
func
newChannelBuilder
(
cfg
ChannelConfig
)
(
*
channelBuilder
,
error
)
{
func
newChannelBuilder
(
cfg
ChannelConfig
)
(
*
channelBuilder
,
error
)
{
co
,
err
:=
derive
.
NewChannelOut
(
cfg
.
Compressor
)
c
,
err
:=
cfg
.
CompressorFactory
()
if
err
!=
nil
{
return
nil
,
err
}
co
,
err
:=
derive
.
NewChannelOut
(
c
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
@@ -205,7 +211,7 @@ func (c *channelBuilder) AddBlock(block *types.Block) (derive.L1BlockInfo, error
...
@@ -205,7 +211,7 @@ func (c *channelBuilder) AddBlock(block *types.Block) (derive.L1BlockInfo, error
c
.
blocks
=
append
(
c
.
blocks
,
block
)
c
.
blocks
=
append
(
c
.
blocks
,
block
)
c
.
updateSwTimeout
(
batch
)
c
.
updateSwTimeout
(
batch
)
if
err
=
c
.
c
fg
.
Compressor
.
FullErr
();
err
!=
nil
{
if
err
=
c
.
c
o
.
FullErr
();
err
!=
nil
{
c
.
setFullErr
(
err
)
c
.
setFullErr
(
err
)
// Adding this block still worked, so don't return error, just mark as full
// Adding this block still worked, so don't return error, just mark as full
}
}
...
...
op-batcher/batcher/channel_builder_test.go
View file @
bed7459a
This diff is collapsed.
Click to expand it.
op-batcher/batcher/channel_manager_test.go
View file @
bed7459a
...
@@ -98,8 +98,8 @@ func TestChannelManagerReturnsErrReorgWhenDrained(t *testing.T) {
...
@@ -98,8 +98,8 @@ func TestChannelManagerReturnsErrReorgWhenDrained(t *testing.T) {
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
ChannelConfig
{
ChannelConfig
{
MaxFrameSize
:
120
_000
,
MaxFrameSize
:
120
_000
,
Compressor
:
newCompressor
(
t
,
1
,
1
,
1
),
Compressor
Factory
:
newCompressorFactory
(
1
,
1
,
1
),
})
})
a
:=
newMiniL2Block
(
0
)
a
:=
newMiniL2Block
(
0
)
...
@@ -169,8 +169,8 @@ func TestChannelManager_Clear(t *testing.T) {
...
@@ -169,8 +169,8 @@ func TestChannelManager_Clear(t *testing.T) {
ChannelTimeout
:
10
,
ChannelTimeout
:
10
,
// Have to set the max frame size here otherwise the channel builder would not
// Have to set the max frame size here otherwise the channel builder would not
// be able to output any frames
// be able to output any frames
MaxFrameSize
:
24
,
MaxFrameSize
:
24
,
Compressor
:
newCompressor
(
t
,
24
,
1
,
1
),
Compressor
Factory
:
newCompressorFactory
(
24
,
1
,
1
),
})
})
// Channel Manager state should be empty by default
// Channel Manager state should be empty by default
...
@@ -329,8 +329,8 @@ func TestChannelManager_TxResend(t *testing.T) {
...
@@ -329,8 +329,8 @@ func TestChannelManager_TxResend(t *testing.T) {
log
:=
testlog
.
Logger
(
t
,
log
.
LvlError
)
log
:=
testlog
.
Logger
(
t
,
log
.
LvlError
)
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
ChannelConfig
{
ChannelConfig
{
MaxFrameSize
:
120
_000
,
MaxFrameSize
:
120
_000
,
Compressor
:
newCompressor
(
t
,
1
,
1
,
1
),
Compressor
Factory
:
newCompressorFactory
(
1
,
1
,
1
),
})
})
a
,
_
:=
derivetest
.
RandomL2Block
(
rng
,
4
)
a
,
_
:=
derivetest
.
RandomL2Block
(
rng
,
4
)
...
@@ -369,9 +369,9 @@ func TestChannelManagerCloseBeforeFirstUse(t *testing.T) {
...
@@ -369,9 +369,9 @@ func TestChannelManagerCloseBeforeFirstUse(t *testing.T) {
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
ChannelConfig
{
ChannelConfig
{
MaxFrameSize
:
100
,
MaxFrameSize
:
100
,
Compressor
:
newCompressor
(
t
,
0
,
1
,
1
),
Compressor
Factory
:
newCompressorFactory
(
0
,
1
,
1
),
ChannelTimeout
:
1000
,
ChannelTimeout
:
1000
,
})
})
a
,
_
:=
derivetest
.
RandomL2Block
(
rng
,
4
)
a
,
_
:=
derivetest
.
RandomL2Block
(
rng
,
4
)
...
@@ -393,9 +393,9 @@ func TestChannelManagerCloseNoPendingChannel(t *testing.T) {
...
@@ -393,9 +393,9 @@ func TestChannelManagerCloseNoPendingChannel(t *testing.T) {
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
ChannelConfig
{
ChannelConfig
{
MaxFrameSize
:
1000
,
MaxFrameSize
:
1000
,
Compressor
:
newCompressor
(
t
,
1
,
1
,
1
),
Compressor
Factory
:
newCompressorFactory
(
1
,
1
,
1
),
ChannelTimeout
:
1000
,
ChannelTimeout
:
1000
,
})
})
a
:=
newMiniL2Block
(
0
)
a
:=
newMiniL2Block
(
0
)
b
:=
newMiniL2BlockWithNumberParent
(
0
,
big
.
NewInt
(
1
),
a
.
Hash
())
b
:=
newMiniL2BlockWithNumberParent
(
0
,
big
.
NewInt
(
1
),
a
.
Hash
())
...
@@ -428,9 +428,9 @@ func TestChannelManagerClosePendingChannel(t *testing.T) {
...
@@ -428,9 +428,9 @@ func TestChannelManagerClosePendingChannel(t *testing.T) {
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
ChannelConfig
{
ChannelConfig
{
MaxFrameSize
:
1000
,
MaxFrameSize
:
1000
,
Compressor
:
newCompressor
(
t
,
1000
,
100
,
1
),
Compressor
Factory
:
newCompressorFactory
(
1000
,
100
,
1
),
ChannelTimeout
:
1000
,
ChannelTimeout
:
1000
,
})
})
a
:=
newMiniL2Block
(
50
_000
)
a
:=
newMiniL2Block
(
50
_000
)
...
@@ -469,9 +469,9 @@ func TestChannelManagerCloseAllTxsFailed(t *testing.T) {
...
@@ -469,9 +469,9 @@ func TestChannelManagerCloseAllTxsFailed(t *testing.T) {
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
log
:=
testlog
.
Logger
(
t
,
log
.
LvlCrit
)
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
m
:=
NewChannelManager
(
log
,
metrics
.
NoopMetrics
,
ChannelConfig
{
ChannelConfig
{
MaxFrameSize
:
1000
,
MaxFrameSize
:
1000
,
Compressor
:
newCompressor
(
t
,
1000
,
100
,
1
),
Compressor
Factory
:
newCompressorFactory
(
1000
,
100
,
1
),
ChannelTimeout
:
1000
,
ChannelTimeout
:
1000
,
})
})
a
:=
newMiniL2Block
(
50
_000
)
a
:=
newMiniL2Block
(
50
_000
)
...
...
op-batcher/batcher/config.go
View file @
bed7459a
...
@@ -154,17 +154,19 @@ func NewConfig(ctx *cli.Context) CLIConfig {
...
@@ -154,17 +154,19 @@ func NewConfig(ctx *cli.Context) CLIConfig {
}
}
}
}
func
(
c
CLIConfig
)
NewCompressor
()
(
derive
.
Compressor
,
error
)
{
func
(
c
CLIConfig
)
NewCompressorFactory
()
CompressorFactory
{
switch
c
.
CompressorKind
{
return
func
()
(
derive
.
Compressor
,
error
)
{
case
flags
.
CompressorShadow
:
switch
c
.
CompressorKind
{
return
NewShadowCompressor
(
case
flags
.
CompressorShadow
:
c
.
MaxL1TxSize
-
1
,
// subtract 1 byte for version
return
NewShadowCompressor
(
)
c
.
MaxL1TxSize
-
1
,
// subtract 1 byte for version
default
:
)
return
NewTargetSizeCompressor
(
default
:
c
.
TargetL1TxSize
-
1
,
// subtract 1 byte for version
return
NewTargetSizeCompressor
(
c
.
TargetNumFrames
,
c
.
TargetL1TxSize
-
1
,
// subtract 1 byte for version
c
.
ApproxComprRatio
,
c
.
TargetNumFrames
,
)
c
.
ApproxComprRatio
,
)
}
}
}
}
}
op-batcher/batcher/driver.go
View file @
bed7459a
...
@@ -75,11 +75,6 @@ func NewBatchSubmitterFromCLIConfig(cfg CLIConfig, l log.Logger, m metrics.Metri
...
@@ -75,11 +75,6 @@ func NewBatchSubmitterFromCLIConfig(cfg CLIConfig, l log.Logger, m metrics.Metri
return
nil
,
err
return
nil
,
err
}
}
compressor
,
err
:=
cfg
.
NewCompressor
()
if
err
!=
nil
{
return
nil
,
err
}
batcherCfg
:=
Config
{
batcherCfg
:=
Config
{
L1Client
:
l1Client
,
L1Client
:
l1Client
,
L2Client
:
l2Client
,
L2Client
:
l2Client
,
...
@@ -95,7 +90,7 @@ func NewBatchSubmitterFromCLIConfig(cfg CLIConfig, l log.Logger, m metrics.Metri
...
@@ -95,7 +90,7 @@ func NewBatchSubmitterFromCLIConfig(cfg CLIConfig, l log.Logger, m metrics.Metri
MaxChannelDuration
:
cfg
.
MaxChannelDuration
,
MaxChannelDuration
:
cfg
.
MaxChannelDuration
,
SubSafetyMargin
:
cfg
.
SubSafetyMargin
,
SubSafetyMargin
:
cfg
.
SubSafetyMargin
,
MaxFrameSize
:
cfg
.
MaxL1TxSize
-
1
,
// subtract 1 byte for version
MaxFrameSize
:
cfg
.
MaxL1TxSize
-
1
,
// subtract 1 byte for version
Compressor
:
compressor
,
Compressor
Factory
:
cfg
.
NewCompressorFactory
()
,
},
},
}
}
...
...
op-node/rollup/derive/channel_out.go
View file @
bed7459a
...
@@ -154,6 +154,10 @@ func (co *ChannelOut) Flush() error {
...
@@ -154,6 +154,10 @@ func (co *ChannelOut) Flush() error {
return
co
.
compress
.
Flush
()
return
co
.
compress
.
Flush
()
}
}
func
(
co
*
ChannelOut
)
FullErr
()
error
{
return
co
.
compress
.
FullErr
()
}
func
(
co
*
ChannelOut
)
Close
()
error
{
func
(
co
*
ChannelOut
)
Close
()
error
{
if
co
.
closed
{
if
co
.
closed
{
return
errors
.
New
(
"already closed"
)
return
errors
.
New
(
"already closed"
)
...
...
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