Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
8f1477e
feat(consensus): implement the scheduler
rodrodros Mar 21, 2026
95145c0
feat(consensus/propeller): implement reedsolomon fec
rodrodros May 13, 2026
45a5eb3
refactor(p2p): apply style correctness
rodrodros May 13, 2026
bf9b63d
[wip] feat(consensus/propeller): full and messy propeller impl
rodrodros Mar 25, 2026
d5475ca
refactor: rename processor to deprecated_processor
rodrodros Apr 1, 2026
e9fdc8f
chore: add proto units
rodrodros Apr 1, 2026
4e2fbb3
chore: add propeller unit type
rodrodros Apr 1, 2026
ca88d79
[wip]feat(propeller): introduce new message processing behaviour
rodrodros Apr 4, 2026
c27f995
chore(propeller): rename validator to deprecated validator
rodrodros Apr 4, 2026
9d114f0
chore: apply changes to deprecated packages
rodrodros Apr 5, 2026
acf3efd
feat: implement new validator logic
rodrodros Apr 5, 2026
22cdef0
chore(consensus/propeller): general continue cleanup of propeller
rodrodros Apr 5, 2026
a7aee53
chore: general sanitazing of the code
rodrodros Apr 5, 2026
66daa9f
chore: code healing for validator logic
rodrodros Apr 5, 2026
6e29701
chore: update propeller unit (including protobuf) to latest specs
rodrodros Apr 5, 2026
f8712d6
feat: implement data shard verification for validator
rodrodros Apr 5, 2026
8c548ac
feat: complete unit validator logic
rodrodros Apr 6, 2026
3982b8c
refactor: the entier processor and subprocessor making it more legible
rodrodros Apr 6, 2026
d4dd031
chore: remove deprecated validator and processor
rodrodros Apr 9, 2026
5f97c57
chore: move padding out of utils and delete utils
rodrodros Apr 9, 2026
9c73042
chore: remove unused pool impl
rodrodros Apr 9, 2026
61e872d
feat: add new (super fast) time cache
rodrodros Apr 10, 2026
db91595
chore: add bench tests to timecache
rodrodros Apr 10, 2026
9808f3a
chore: final touches to timecache
rodrodros Apr 10, 2026
72ff502
refactor: remove old timecache
rodrodros Apr 11, 2026
8a9584f
test: the reedsolomon pkg
rodrodros Apr 11, 2026
7241ce5
feat: optimize merkle tree ops
rodrodros Apr 11, 2026
945d4c8
test: for merkle tree implementation
rodrodros Apr 11, 2026
f07b7b1
chore: improve padding logic and tests
rodrodros Apr 11, 2026
8ac0f42
test: for signing and buf fix
rodrodros Apr 11, 2026
d5bc6a0
chore: remove all compilation issuess
rodrodros Apr 11, 2026
caf7ad9
refactor: scheduler.go tests
rodrodros Apr 11, 2026
a7549a3
refactor: update old consensus and p2p code to match current style
rodrodros Apr 14, 2026
44a4e8f
refactor: rename Validator to UnitValidator
rodrodros Apr 14, 2026
5ee8ae7
refactor: rename validator.go -> unit_validator.go
rodrodros Apr 14, 2026
88d6f59
refactor: improve propeller service design
rodrodros Apr 15, 2026
aafbc80
refactor: move things here and there
rodrodros Apr 23, 2026
c74d0a4
chore(consensus/propeller): minor improvements
rodrodros May 11, 2026
a10ad19
chore(starknet-p2p-spcs): update
rodrodros May 11, 2026
99a155a
fix(consensus, p2p): rebase
rodrodros May 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion buf.gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ plugins:
inputs:
- git_repo: https://github.com/starknet-io/starknet-p2p-specs.git
branch: bcfa353a169c859e4d5d97757caccbe76f75bc06 # Latest commit as of 2025 May 6th
depth: 1
depth: 1
4 changes: 3 additions & 1 deletion consensus/consensus.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ func Init(
}
currentHeight := types.Height(chainHeight + 1)

tendermintDB := consensusDB.NewTendermintDB[starknet.Value, starknet.Hash, starknet.Address](database)
tendermintDB := consensusDB.NewTendermintDB[
starknet.Value, starknet.Hash, starknet.Address,
](database)

executor := builder.NewExecutor(blockchain, vm, logger, false, false)
builder := builder.New(blockchain, executor)
Expand Down
6 changes: 4 additions & 2 deletions consensus/p2p/buffered/proto_broadcaster.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ func (b ProtoBroadcaster[M]) Loop(ctx context.Context, topic *pubsub.Topic) {
}

for {
if err := topic.Publish(ctx, msgBytes); err != nil && !errors.Is(err, context.Canceled) {
err := topic.Publish(ctx, msgBytes)
if err != nil && !errors.Is(err, context.Canceled) {
b.logger.Error("unable to send message", zap.Error(err))
time.Sleep(b.retryInterval)
continue
Expand All @@ -70,7 +71,8 @@ func (b ProtoBroadcaster[M]) Loop(ctx context.Context, topic *pubsub.Topic) {
}
case <-rebroadcasted.trigger:
for msgBytes := range rebroadcasted.messages {
if err := topic.Publish(ctx, msgBytes); err != nil && !errors.Is(err, context.Canceled) {
err := topic.Publish(ctx, msgBytes)
if err != nil && !errors.Is(err, context.Canceled) {
b.logger.Error("unable to rebroadcast message", zap.Error(err))
}
}
Expand Down
4 changes: 3 additions & 1 deletion consensus/p2p/validator/proposal_stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ func newSingleProposalStream(
}
}

func (s *proposalStream) start(ctx context.Context, firstMessage *consensus.StreamMessage) (types.Height, error) {
func (s *proposalStream) start(
ctx context.Context, firstMessage *consensus.StreamMessage,
) (types.Height, error) {
content := firstMessage.GetContent()
if content == nil {
return 0, fmt.Errorf("first message has empty content")
Expand Down
12 changes: 9 additions & 3 deletions consensus/p2p/vote/vote_broadcasters.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@ func NewVoteBroadcaster[H types.Hash, A types.Addr](
}
}

func (b *voteBroadcaster[H, A]) broadcast(ctx context.Context, message *types.Vote[H, A], voteType consensus.Vote_VoteType) {
func (b *voteBroadcaster[H, A]) broadcast(
ctx context.Context, message *types.Vote[H, A], voteType consensus.Vote_VoteType,
) {
msg, err := b.voteAdapter.FromVote(message, voteType)
if err != nil {
b.logger.Error("unable to convert vote", zap.Error(err))
Expand All @@ -60,6 +62,10 @@ func (b *prevoteBroadcaster[H, A]) Broadcast(ctx context.Context, message *types

type precommitBroadcaster[H types.Hash, A types.Addr] voteBroadcaster[H, A]

func (b *precommitBroadcaster[H, A]) Broadcast(ctx context.Context, message *types.Precommit[H, A]) {
(*voteBroadcaster[H, A])(b).broadcast(ctx, (*types.Vote[H, A])(message), consensus.Vote_Precommit)
func (b *precommitBroadcaster[H, A]) Broadcast(
ctx context.Context, message *types.Precommit[H, A],
) {
(*voteBroadcaster[H, A])(b).broadcast(
ctx, (*types.Vote[H, A])(message), consensus.Vote_Precommit,
)
}
Loading
Loading