Skip to content

Commit d2bbc79

Browse files
authored
Write to ledger after sending messages (#1068)
1 parent 588b99a commit d2bbc79

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/consensus/pbft/libbyz/replica.cpp

+13-10
Original file line numberDiff line numberDiff line change
@@ -920,16 +920,18 @@ void Replica::send_pre_prepare(bool do_not_wait_for_batch_size)
920920
self->requests_per_batch.insert(
921921
{self->next_pp_seqno, ctx->requests_in_batch});
922922

923-
if (self->ledger_writer)
924-
{
925-
self->last_te_version = self->ledger_writer->write_pre_prepare(pp);
926-
}
927923
if (pbft::GlobalState::get_node().f() > 0)
928924
{
929925
self->send(pp, All_replicas);
930926
pp->cleanup_after_send();
931927
}
932-
else
928+
929+
if (self->ledger_writer)
930+
{
931+
self->last_te_version = self->ledger_writer->write_pre_prepare(pp);
932+
}
933+
934+
if (pbft::GlobalState::get_node().f() == 0)
933935
{
934936
self->send_prepare(self->next_pp_seqno, info);
935937
}
@@ -1104,11 +1106,6 @@ void Replica::send_prepare(Seqno seqno, std::optional<ByzInfo> byz_info)
11041106
{
11051107
self->gov_req_track.update(pp->seqno());
11061108
}
1107-
1108-
if (self->ledger_writer)
1109-
{
1110-
self->last_te_version = self->ledger_writer->write_pre_prepare(pp);
1111-
}
11121109
}
11131110

11141111
Prepare* p = new Prepare(
@@ -1121,6 +1118,12 @@ void Replica::send_prepare(Seqno seqno, std::optional<ByzInfo> byz_info)
11211118
int send_node_id =
11221119
(msg->send_only_to_self ? self->node_id : All_replicas);
11231120
self->send(p, send_node_id);
1121+
1122+
if (self->ledger_writer && !self->is_primary())
1123+
{
1124+
self->last_te_version = self->ledger_writer->write_pre_prepare(pp);
1125+
}
1126+
11241127
Prepared_cert& pc = self->plog.fetch(msg->seqno);
11251128
pc.add_mine(p);
11261129
LOG_DEBUG << "added to pc in prepare: " << pp->seqno() << std::endl;

0 commit comments

Comments
 (0)