diff --git a/Changelog.md b/Changelog.md index 86d86f590..c8a7ea257 100644 --- a/Changelog.md +++ b/Changelog.md @@ -12,7 +12,7 @@ 10. Minor changes of TVM which will be activated by `Config8.version >= 9` 11. Multiple minor improvements -Besides the work of the core team, this update is based on the efforts of @krigga (emulator), Arayz @ TonBit (LS security, TVM recursion). +Besides the work of the core team, this update is based on the efforts of @krigga (emulator), Arayz @ TonBit (LS security, TVM recursion), @ret2happy (UB in BLST). ## 2024.08 Update diff --git a/assembly/native/build-macos-portable.sh b/assembly/native/build-macos-portable.sh index fa4702abd..0e1003b56 100644 --- a/assembly/native/build-macos-portable.sh +++ b/assembly/native/build-macos-portable.sh @@ -24,7 +24,7 @@ else fi export NONINTERACTIVE=1 -brew install ninja pkg-config automake libtool autoconf +brew install ninja pkg-config automake libtool autoconf texinfo brew install llvm@16 diff --git a/assembly/nix/linux-arm64-tonlib.nix b/assembly/nix/linux-arm64-tonlib.nix index a051e34cd..9d251e020 100644 --- a/assembly/nix/linux-arm64-tonlib.nix +++ b/assembly/nix/linux-arm64-tonlib.nix @@ -42,10 +42,13 @@ pkgs.llvmPackages_16.stdenv.mkDerivation { ]; dontAddStaticConfigureFlags = false; + doCheck = false; + doInstallCheck = false; cmakeFlags = [ - "-DTON_USE_ABSEIL=OFF" + "-DTON_USE_ABSEIL=ON" "-DNIX=ON" + "-DTON_ONLY_TONLIB=ON" ]; LDFLAGS = [ diff --git a/assembly/nix/linux-x86-64-tonlib.nix b/assembly/nix/linux-x86-64-tonlib.nix index f961eea21..64ceaaea2 100644 --- a/assembly/nix/linux-x86-64-tonlib.nix +++ b/assembly/nix/linux-x86-64-tonlib.nix @@ -58,10 +58,13 @@ stdenv227.mkDerivation { ]; dontAddStaticConfigureFlags = false; + doCheck = false; + doInstallCheck = false; cmakeFlags = [ "-DTON_USE_ABSEIL=ON" "-DNIX=ON" + "-DTON_ONLY_TONLIB=ON" ]; LDFLAGS = [ diff --git a/overlay/overlay-peers.cpp b/overlay/overlay-peers.cpp index aba62eb15..00b508fd4 100644 --- a/overlay/overlay-peers.cpp +++ b/overlay/overlay-peers.cpp @@ -407,7 +407,8 @@ void OverlayImpl::update_neighbours(td::uint32 nodes_to_change) { continue; } - if (X->get_version() <= td::Clocks::system() - Overlays::overlay_peer_ttl()) { + if (overlay_type_ != OverlayType::FixedMemberList && X->get_version() <= td::Clocks::system() - + Overlays::overlay_peer_ttl()) { if (X->is_permanent_member()) { del_from_neighbour_list(X); } else { @@ -656,14 +657,9 @@ size_t OverlayImpl::neighbours_cnt() const { void OverlayImpl::update_root_member_list(std::vector ids, std::vector root_public_keys, OverlayMemberCertificate cert) { - td::uint32 expectd_size = + auto expected_size = (td::uint32)(ids.size() + root_public_keys.size() * opts_.max_slaves_in_semiprivate_overlay_); - if (expectd_size > opts_.max_peers_) { - opts_.max_peers_ = expectd_size; - } - if (expectd_size > opts_.max_neighbours_) { - opts_.max_neighbours_ = expectd_size; - } + opts_.max_peers_ = std::max(opts_.max_peers_, expected_size); std::sort(ids.begin(), ids.end()); auto old_root_public_keys = std::move(peer_list_.root_public_keys_); for (const auto &pub_key : root_public_keys) { diff --git a/overlay/overlay.h b/overlay/overlay.h index ce9f40d3f..bfab49877 100644 --- a/overlay/overlay.h +++ b/overlay/overlay.h @@ -78,7 +78,7 @@ class Overlay : public td::actor::Actor { bool is_response) = 0; virtual void update_peer_ip_str(adnl::AdnlNodeIdShort peer_id, td::string ip_str) = 0; virtual void update_member_certificate(OverlayMemberCertificate cert) = 0; - virtual void update_root_member_list(std::vector nodes, + virtual void update_root_member_list(std::vector ids, std::vector root_public_keys, OverlayMemberCertificate cert) = 0; //virtual void receive_broadcast(td::BufferSlice data) = 0; //virtual void subscribe(std::unique_ptr callback) = 0; diff --git a/overlay/overlay.hpp b/overlay/overlay.hpp index 43822c5a1..6476779ba 100644 --- a/overlay/overlay.hpp +++ b/overlay/overlay.hpp @@ -280,7 +280,7 @@ class OverlayImpl : public Overlay { void update_peer_ip_str(adnl::AdnlNodeIdShort peer_id, td::string ip_str) override; - void update_root_member_list(std::vector nodes, std::vector root_public_keys, + void update_root_member_list(std::vector ids, std::vector root_public_keys, OverlayMemberCertificate cert) override; bool is_valid_peer(const adnl::AdnlNodeIdShort &id, const ton_api::overlay_MemberCertificate *certificate); diff --git a/recent_changelog.md b/recent_changelog.md index 464e2b941..fb7433e5e 100644 --- a/recent_changelog.md +++ b/recent_changelog.md @@ -12,6 +12,6 @@ 10. Minor changes of TVM which will be activated by `Config8.version >= 9` 11. Multiple minor improvements -Besides the work of the core team, this update is based on the efforts of @krigga (emulator), Arayz @ TonBit (LS security, TVM recursion). +Besides the work of the core team, this update is based on the efforts of @krigga (emulator), Arayz @ TonBit (LS security, TVM recursion), @ret2happy (UB in BLST).