@@ -41,16 +41,13 @@ td::Result<td::BufferSlice> serialize_block_broadcast(const BlockBroadcast& broa
4141
4242 TRY_RESULT (proof_root, vm::std_boc_deserialize (broadcast.proof ));
4343 TRY_RESULT (data_root, vm::std_boc_deserialize (broadcast.data ));
44- TRY_RESULT (boc, vm::std_boc_serialize_multi ({proof_root, data_root}, 2 ));
45- td::BufferSlice data =
46- create_serialize_tl_object<ton_api::tonNode_blockBroadcastCompressed_data>(std::move (sigs), std::move (boc));
47- td::BufferSlice compressed = td::lz4_compress (data);
44+ TRY_RESULT (compressed_boc, vm::boc_compress ({proof_root, data_root}, vm::CompressionAlgorithm::ImprovedStructureLZ4));
4845 VLOG (FULL_NODE_DEBUG) << " Compressing block broadcast: "
4946 << broadcast.data .size () + broadcast.proof .size () + broadcast.signatures .size () * 96 << " -> "
50- << compressed .size ();
51- return create_serialize_tl_object<ton_api::tonNode_blockBroadcastCompressed >(
52- create_tl_block_id (broadcast.block_id ), broadcast.catchain_seqno , broadcast.validator_set_hash , 0 ,
53- std::move (compressed ));
47+ << compressed_boc .size () + broadcast. signatures . size () * 96 ;
48+ return create_serialize_tl_object<ton_api::tonNode_blockBroadcastCompressedV2 >(
49+ create_tl_block_id (broadcast.block_id ), broadcast.catchain_seqno , broadcast.validator_set_hash , std::move (sigs) ,
50+ 0 , std::move (compressed_boc ));
5451}
5552
5653static td::Result<BlockBroadcast> deserialize_block_broadcast (ton_api::tonNode_blockBroadcast& f) {
@@ -135,10 +132,10 @@ td::Result<td::BufferSlice> serialize_block_full(const BlockIdExt& id, td::Slice
135132 }
136133 TRY_RESULT (proof_root, vm::std_boc_deserialize (proof));
137134 TRY_RESULT (data_root, vm::std_boc_deserialize (data));
138- TRY_RESULT (boc , vm::std_boc_serialize_multi ({proof_root, data_root}, 2 ));
139- td::BufferSlice compressed = td::lz4_compress (boc);
135+ TRY_RESULT (compressed , vm::boc_compress ({proof_root, data_root}, vm::CompressionAlgorithm::ImprovedStructureLZ4 ));
136+
140137 VLOG (FULL_NODE_DEBUG) << " Compressing block full: " << data.size () + proof.size () << " -> " << compressed.size ();
141- return create_serialize_tl_object<ton_api::tonNode_dataFullCompressed >(create_tl_block_id (id), 0 ,
138+ return create_serialize_tl_object<ton_api::tonNode_dataFullCompressedV2 >(create_tl_block_id (id), 0 ,
142139 std::move (compressed), is_proof_link);
143140}
144141
@@ -207,10 +204,9 @@ td::Result<td::BufferSlice> serialize_block_candidate_broadcast(BlockIdExt block
207204 create_tl_object<ton_api::tonNode_blockSignature>(Bits256::zero (), td::BufferSlice ()), td::BufferSlice (data));
208205 }
209206 TRY_RESULT (root, vm::std_boc_deserialize (data));
210- TRY_RESULT (data_new, vm::std_boc_serialize (root, 2 ));
211- td::BufferSlice compressed = td::lz4_compress (data_new);
207+ TRY_RESULT (compressed, vm::boc_compress ({root}, vm::CompressionAlgorithm::ImprovedStructureLZ4));
212208 VLOG (FULL_NODE_DEBUG) << " Compressing block candidate broadcast: " << data.size () << " -> " << compressed.size ();
213- return create_serialize_tl_object<ton_api::tonNode_newBlockCandidateBroadcastCompressed >(
209+ return create_serialize_tl_object<ton_api::tonNode_newBlockCandidateBroadcastCompressedV2 >(
214210 create_tl_block_id (block_id), cc_seqno, validator_set_hash,
215211 create_tl_object<ton_api::tonNode_blockSignature>(Bits256::zero (), td::BufferSlice ()), 0 , std::move (compressed));
216212}
0 commit comments