Skip to content

Commit f15bf89

Browse files
committed
x
1 parent 27a6b02 commit f15bf89

25 files changed

+909
-750
lines changed

apps/evm/single/cmd/run.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919
rollcmd "github.com/evstack/ev-node/pkg/cmd"
2020
"github.com/evstack/ev-node/pkg/config"
2121
genesispkg "github.com/evstack/ev-node/pkg/genesis"
22-
"github.com/evstack/ev-node/pkg/p2p"
2322
"github.com/evstack/ev-node/pkg/p2p/key"
2423
"github.com/evstack/ev-node/pkg/store"
2524
)
@@ -95,12 +94,7 @@ var RunCmd = &cobra.Command{
9594
return err
9695
}
9796

98-
p2pClient, err := p2p.NewClient(nodeConfig.P2P, nodeKey.PrivKey, datastore, genesis.ChainID, logger, nil)
99-
if err != nil {
100-
return err
101-
}
102-
103-
return rollcmd.StartNode(logger, cmd, executor, sequencer, &daJrpc.DA, p2pClient, datastore, nodeConfig, genesis, node.NodeOptions{})
97+
return rollcmd.StartNode(logger, cmd, executor, sequencer, &daJrpc.DA, nodeKey, datastore, nodeConfig, genesis, node.NodeOptions{})
10498
},
10599
}
106100

apps/testapp/cmd/run.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
"github.com/evstack/ev-node/node"
1414
rollcmd "github.com/evstack/ev-node/pkg/cmd"
1515
genesispkg "github.com/evstack/ev-node/pkg/genesis"
16-
"github.com/evstack/ev-node/pkg/p2p"
1716
"github.com/evstack/ev-node/pkg/p2p/key"
1817
"github.com/evstack/ev-node/pkg/store"
1918
"github.com/evstack/ev-node/sequencers/single"
@@ -106,11 +105,6 @@ var RunCmd = &cobra.Command{
106105
return err
107106
}
108107

109-
p2pClient, err := p2p.NewClient(nodeConfig.P2P, nodeKey.PrivKey, datastore, genesis.ChainID, logger, p2p.NopMetrics())
110-
if err != nil {
111-
return err
112-
}
113-
114-
return rollcmd.StartNode(logger, cmd, executor, sequencer, &daJrpc.DA, p2pClient, datastore, nodeConfig, genesis, node.NodeOptions{})
108+
return rollcmd.StartNode(logger, cmd, executor, sequencer, &daJrpc.DA, nodeKey, datastore, nodeConfig, genesis, node.NodeOptions{})
115109
},
116110
}

block/internal/common/raft.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
package common
22

3-
import "context"
3+
import (
4+
"context"
5+
)
46

57
// RaftNode interface for raft consensus integration
68
type RaftNode interface {
79
IsLeader() bool
8-
ProposeBlock(ctx context.Context, state *RaftBlockState) error
10+
NodeID() string
911
GetState() *RaftBlockState
12+
13+
Broadcast(ctx context.Context, state *RaftBlockState) error
14+
1015
SetApplyCallback(ch chan<- RaftApplyMsg)
1116
Shutdown() error
17+
18+
AddPeer(nodeID, addr string) error
19+
RemovePeer(nodeID string) error
1220
}
1321

1422
// todo: refactor to use proto

block/internal/executing/executor.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,7 @@ func (e *Executor) produceBlock() error {
298298

299299
// Check raft leadership if raft is enabled
300300
if e.raftNode != nil && !e.raftNode.IsLeader() {
301-
e.logger.Debug().Msg("not raft leader, skipping block production")
302-
return nil
301+
return errors.New("not raft leader")
303302
}
304303

305304
currentState := e.GetLastState()
@@ -407,8 +406,7 @@ func (e *Executor) produceBlock() error {
407406
Header: headerBytes,
408407
Data: dataBytes,
409408
}
410-
411-
if err := e.raftNode.ProposeBlock(e.ctx, raftState); err != nil {
409+
if err := e.raftNode.Broadcast(e.ctx, raftState); err != nil {
412410
return fmt.Errorf("failed to propose block to raft: %w", err)
413411
}
414412
e.logger.Debug().Uint64("height", newHeight).Msg("proposed block to raft")

block/internal/syncing/raft_retriever.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func (r *raftRetriever) Start(ctx context.Context) error {
5555
return errors.New("syncer already started")
5656
}
5757
ctx, r.cancel = context.WithCancel(ctx)
58-
applyCh := make(chan common.RaftApplyMsg, 100)
58+
applyCh := make(chan common.RaftApplyMsg)
5959
r.raftNode.SetApplyCallback(applyCh)
6060

6161
r.wg.Add(1)

node/failover.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func newSyncMode(
6363
raftNode,
6464
)
6565
}
66-
return setupFailoverState(nodeConfig, nodeKey, database, genesis, logger, mainKV, rktStore, blockComponentsFn)
66+
return setupFailoverState(nodeConfig, nodeKey, database, genesis, logger, mainKV, rktStore, blockComponentsFn, raftNode)
6767
}
6868
func newAggregatorMode(
6969
nodeConfig config.Config,
@@ -100,7 +100,7 @@ func newAggregatorMode(
100100
)
101101
}
102102

103-
return setupFailoverState(nodeConfig, nodeKey, database, genesis, logger, mainKV, rktStore, blockComponentsFn)
103+
return setupFailoverState(nodeConfig, nodeKey, database, genesis, logger, mainKV, rktStore, blockComponentsFn, raftNode)
104104
}
105105

106106
func setupFailoverState(
@@ -112,6 +112,7 @@ func setupFailoverState(
112112
mainKV ds.Batching,
113113
rktStore store.Store,
114114
buildComponentsFn func(headerSyncService *evsync.HeaderSyncService, dataSyncService *evsync.DataSyncService) (*block.Components, error),
115+
raftNode block.RaftNode,
115116
) (*failoverState, error) {
116117
p2pClient, err := p2p.NewClient(nodeConfig.P2P, nodeKey.PrivKey, database, genesis.ChainID, logger, nil)
117118
if err != nil {
@@ -133,7 +134,7 @@ func setupFailoverState(
133134
dHeight := dataSyncService.Store().Height()
134135
return min(hHeight, dHeight)
135136
}
136-
handler, err := rpcserver.NewServiceHandler(rktStore, p2pClient, genesis.ProposerAddress, logger, nodeConfig, bestKnownHeightProvider)
137+
handler, err := rpcserver.NewServiceHandler(rktStore, p2pClient, genesis.ProposerAddress, logger, nodeConfig, bestKnownHeightProvider, raftNode)
137138
if err != nil {
138139
return nil, fmt.Errorf("error creating RPC handler: %w", err)
139140
}

0 commit comments

Comments
 (0)