@@ -40,16 +40,13 @@ td::Result<td::BufferSlice> serialize_block_broadcast(const BlockBroadcast& broa
4040
4141 TRY_RESULT (proof_root, vm::std_boc_deserialize (broadcast.proof ));
4242 TRY_RESULT (data_root, vm::std_boc_deserialize (broadcast.data ));
43- TRY_RESULT (boc, vm::std_boc_serialize_multi ({proof_root, data_root}, 2 ));
44- td::BufferSlice data =
45- create_serialize_tl_object<ton_api::tonNode_blockBroadcastCompressed_data>(std::move (sigs), std::move (boc));
46- td::BufferSlice compressed = td::lz4_compress (data);
43+ TRY_RESULT (compressed_boc, vm::boc_compress ({proof_root, data_root}, vm::CompressionAlgorithm::ImprovedStructureLZ4));
4744 VLOG (FULL_NODE_DEBUG) << " Compressing block broadcast: "
4845 << broadcast.data .size () + broadcast.proof .size () + broadcast.signatures .size () * 96 << " -> "
49- << compressed .size ();
50- return create_serialize_tl_object<ton_api::tonNode_blockBroadcastCompressed >(
51- create_tl_block_id (broadcast.block_id ), broadcast.catchain_seqno , broadcast.validator_set_hash , 0 ,
52- std::move (compressed ));
46+ << compressed_boc .size () + broadcast. signatures . size () * 96 ;
47+ return create_serialize_tl_object<ton_api::tonNode_blockBroadcastCompressedV2 >(
48+ create_tl_block_id (broadcast.block_id ), broadcast.catchain_seqno , broadcast.validator_set_hash , std::move (sigs) ,
49+ 0 , std::move (compressed_boc ));
5350}
5451
5552static td::Result<BlockBroadcast> deserialize_block_broadcast (ton_api::tonNode_blockBroadcast& f) {
@@ -134,10 +131,10 @@ td::Result<td::BufferSlice> serialize_block_full(const BlockIdExt& id, td::Slice
134131 }
135132 TRY_RESULT (proof_root, vm::std_boc_deserialize (proof));
136133 TRY_RESULT (data_root, vm::std_boc_deserialize (data));
137- TRY_RESULT (boc , vm::std_boc_serialize_multi ({proof_root, data_root}, 2 ));
138- td::BufferSlice compressed = td::lz4_compress (boc);
134+ TRY_RESULT (compressed , vm::boc_compress ({proof_root, data_root}, vm::CompressionAlgorithm::ImprovedStructureLZ4 ));
135+
139136 VLOG (FULL_NODE_DEBUG) << " Compressing block full: " << data.size () + proof.size () << " -> " << compressed.size ();
140- return create_serialize_tl_object<ton_api::tonNode_dataFullCompressed >(create_tl_block_id (id), 0 ,
137+ return create_serialize_tl_object<ton_api::tonNode_dataFullCompressedV2 >(create_tl_block_id (id), 0 ,
141138 std::move (compressed), is_proof_link);
142139}
143140
@@ -204,10 +201,9 @@ td::Result<td::BufferSlice> serialize_block_candidate_broadcast(BlockIdExt block
204201 create_tl_object<ton_api::tonNode_blockSignature>(Bits256::zero (), td::BufferSlice ()), td::BufferSlice (data));
205202 }
206203 TRY_RESULT (root, vm::std_boc_deserialize (data));
207- TRY_RESULT (data_new, vm::std_boc_serialize (root, 2 ));
208- td::BufferSlice compressed = td::lz4_compress (data_new);
204+ TRY_RESULT (compressed, vm::boc_compress ({root}, vm::CompressionAlgorithm::ImprovedStructureLZ4));
209205 VLOG (FULL_NODE_DEBUG) << " Compressing block candidate broadcast: " << data.size () << " -> " << compressed.size ();
210- return create_serialize_tl_object<ton_api::tonNode_newBlockCandidateBroadcastCompressed >(
206+ return create_serialize_tl_object<ton_api::tonNode_newBlockCandidateBroadcastCompressedV2 >(
211207 create_tl_block_id (block_id), cc_seqno, validator_set_hash,
212208 create_tl_object<ton_api::tonNode_blockSignature>(Bits256::zero (), td::BufferSlice ()), 0 , std::move (compressed));
213209}
0 commit comments