Skip to content

Commit 66c8600

Browse files
committed
Merge branch 'testnet' into archive-sync
2 parents e806ce0 + 0cc297b commit 66c8600

File tree

8 files changed

+42
-18
lines changed

8 files changed

+42
-18
lines changed

Changelog.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
## 2025.04 Update
2+
3+
1. Introduced substantial improvements of CellDB performance: celldb-v2, bloom filters.
4+
2. Accelerated a number of intrinsic node operations: SHA256, cell operations, large boc serialization, validator set checks.
5+
3. [TVM version v10](./doc/GlobalVersions.md)
6+
4. Overlay broadcast speed up and improved network stats.
7+
5. Fixed some issues in tonlib
8+
6. [Added normalized hash](https://github.com/ton-blockchain/TEPs/pull/467)
9+
7. Fix SDBEGINS(Q) in Asm.fif
10+
11+
Besides the work of the core team, this update is based on the efforts of @Stanislav-Povolotsky (tonlib fixes), @ice-charon (tonlib fixes), RSquad team (due payments improvements in v10), Arayz @ TonBit (improvements in RUNVM), @Skydev0h and @pyAndr3w (Asm.fif).
12+
113
## 2025.03 Update
214
1. New extracurrency behavior introduced, check [GlobalVersions.md](./doc/GlobalVersions.md#version-10)
315
2. Optmization of validation process, in particular CellStorageStat.

crypto/block/mc-config.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,11 @@ td::Result<std::shared_ptr<ValidatorSet>> Config::unpack_validator_set(Ref<vm::C
542542
if (vset_root.is_null()) {
543543
return td::Status::Error("validator set is absent");
544544
}
545+
TRY_RESULT(loaded_root, vset_root->load_cell());
546+
if (!loaded_root.tree_node.empty()) {
547+
// Do not use cache during Merkle proof generation
548+
use_cache = false;
549+
}
545550
static ValidatorSetCache cache;
546551
if (use_cache) {
547552
auto result = cache.get(vset_root->get_hash());

crypto/block/transaction.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3295,6 +3295,9 @@ bool Transaction::compute_state(const SerializeConfig& cfg) {
32953295
acc_status = Account::acc_nonexist;
32963296
was_created = false;
32973297
}
3298+
if (acc_status == Account::acc_deleted && !balance.is_zero()) {
3299+
acc_status = Account::acc_uninit;
3300+
}
32983301
if (acc_status == Account::acc_nonexist || acc_status == Account::acc_deleted) {
32993302
CHECK(balance.is_zero());
33003303
vm::CellBuilder cb;

crypto/vm/vm.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,10 @@ void VmState::run_child_vm(VmState&& new_state, bool return_data, bool return_ac
729729
new_state.chksgn_counter = chksgn_counter;
730730
new_state.free_gas_consumed = free_gas_consumed;
731731
new_state.get_extra_balance_counter = get_extra_balance_counter;
732+
if (global_version >= 10) {
733+
new_state.gas = GasLimits{std::min(new_state.gas.gas_limit, gas.gas_remaining),
734+
std::min(new_state.gas.gas_max, gas.gas_remaining)};
735+
}
732736

733737
auto new_parent = std::make_unique<ParentVmState>();
734738
new_parent->return_data = return_data;

doc/GlobalVersions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ Reserve modes `+1`, `+4` and `+8` ("reserve all except", "add original balance"
188188
- With "isolate gas" mode, in the beginning of `RUNVM` the parent VM spends full gas for all already executed `GETEXTRABALANCE` and resets the counter.
189189
- `LDMSGADDR(Q)`, `PARSEMSGADDR(Q)`, `REWRITESTDADDR(Q)`, `REWRITEVARADDR(Q)` no more support anycast addresses and `addr_var`.
190190
- Fixed bug in `RUNVM` caused by throwing out-of-gas exception with "isolate gas" enabled.
191+
- Fixed setting gas limits in `RUNVM` after consuming "free gas" (e.g. after `CHKSIGN` instructions).
191192

192193
### Other changes
193194
- Exceeding state limits in transaction now reverts `end_lt` back to `start_lt + 1` and collects action fines.

recent_changelog.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
## 2025.03 Update
2-
1. New extracurrency behavior introduced, check [GlobalVersions.md](./doc/GlobalVersions.md#version-10)
3-
2. Optmization of validation process, in particular CellStorageStat.
4-
3. Flag for speeding up broadcasts in various overlays.
5-
4. Fixes for static builds for emulator and tonlibjson
6-
5. Improving getstats output: add
7-
* Liteserver queries count
8-
* Collated/validated blocks count, number of active sessions
9-
* Persistent state sizes
10-
* Initial sync progress
11-
6. Fixes in logging, TON Storage, external message checking, persistent state downloading, UB in tonlib
1+
## 2025.04 Update
2+
3+
1. Introduced substantial improvements of CellDB performance: celldb-v2, bloom filters.
4+
2. Accelerated a number of intrinsic node operations: SHA256, cell operations, large boc serialization, validator set checks.
5+
3. [TVM version v10](./doc/GlobalVersions.md)
6+
4. Overlay broadcast speed up and improved network stats.
7+
5. Fixed some issues in tonlib
8+
6. [Added normalized hash](https://github.com/ton-blockchain/TEPs/pull/467)
9+
7. Fix SDBEGINS(Q) in Asm.fif
10+
11+
Besides the work of the core team, this update is based on the efforts of @Stanislav-Povolotsky (tonlib fixes), @ice-charon (tonlib fixes), RSquad team (due payments improvements in v10), Arayz @ TonBit (improvements in RUNVM), @Skydev0h and @pyAndr3w (Asm.fif).
1212

13-
Besides the work of the core team, this update is based on the efforts of @Sild from StonFi(UB in tonlib).

validator-engine/validator-engine.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4597,7 +4597,7 @@ int main(int argc, char *argv[]) {
45974597
});
45984598
p.add_checked_option(
45994599
'\0', "broadcast-speed-catchain",
4600-
"multiplier for broadcast speed in catchain overlays (experimental, default is 1.0, which is ~300 KB/s)",
4600+
"multiplier for broadcast speed in catchain overlays (experimental, default is 3.33, which is ~1 MB/s)",
46014601
[&](td::Slice s) -> td::Status {
46024602
auto v = td::to_double(s);
46034603
if (v <= 0.0) {
@@ -4609,7 +4609,7 @@ int main(int argc, char *argv[]) {
46094609
});
46104610
p.add_checked_option(
46114611
'\0', "broadcast-speed-public",
4612-
"multiplier for broadcast speed in public shard overlays (experimental, default is 1.0, which is ~300 KB/s)",
4612+
"multiplier for broadcast speed in public shard overlays (experimental, default is 3.33, which is ~1 MB/s)",
46134613
[&](td::Slice s) -> td::Status {
46144614
auto v = td::to_double(s);
46154615
if (v <= 0.0) {
@@ -4621,7 +4621,7 @@ int main(int argc, char *argv[]) {
46214621
});
46224622
p.add_checked_option(
46234623
'\0', "broadcast-speed-private",
4624-
"multiplier for broadcast speed in private block overlays (experimental, default is 1.0, which is ~300 KB/s)",
4624+
"multiplier for broadcast speed in private block overlays (experimental, default is 3.33, which is ~1 MB/s)",
46254625
[&](td::Slice s) -> td::Status {
46264626
auto v = td::to_double(s);
46274627
if (v <= 0.0) {

validator-engine/validator-engine.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,9 +231,9 @@ class ValidatorEngine : public td::actor::Actor {
231231
bool not_all_shards_ = false;
232232
std::vector<ton::ShardIdFull> add_shard_cmds_;
233233
bool state_serializer_disabled_flag_ = false;
234-
double broadcast_speed_multiplier_catchain_ = 1.0;
235-
double broadcast_speed_multiplier_public_ = 1.0;
236-
double broadcast_speed_multiplier_private_ = 1.0;
234+
double broadcast_speed_multiplier_catchain_ = 3.33;
235+
double broadcast_speed_multiplier_public_ = 3.33;
236+
double broadcast_speed_multiplier_private_ = 3.33;
237237
bool permanent_celldb_ = false;
238238
bool skip_key_sync_ = false;
239239
td::optional<ton::BlockSeqno> sync_shards_upto_;

0 commit comments

Comments
 (0)