1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

liteclient signature check support

1. update liteclient/liteserver. Now liteserver sends signatures of
blocks and liteclient checks them. I.e. liteclient completely checks
received data.
2. validator-engine: more GC options
3. blockchain-explorer: show all block transactions (instead of 256)
4. some bugfixes
This commit is contained in:
ton 2019-09-14 18:14:55 +04:00
parent d8244eff53
commit 9d6853ef24
58 changed files with 1480 additions and 325 deletions

View file

@ -43,6 +43,7 @@
#include "block/block.h"
#include "td/utils/filesystem.h"
#include "td/utils/misc.h"
#include "td/utils/optional.h"
#include "td/utils/PathView.h"
#include "td/utils/port/thread.h"
@ -1037,7 +1038,7 @@ void interpret_tuple_index(vm::Stack& stack) {
if ((td::uint64)idx >= tuple->size()) {
throw vm::VmError{vm::Excno::range_chk, "array index out of range"};
}
stack.push((*tuple)[idx]);
stack.push((*tuple)[td::narrow_cast<size_t>(idx)]);
}
void interpret_tuple_set(vm::Stack& stack) {
@ -1047,7 +1048,7 @@ void interpret_tuple_set(vm::Stack& stack) {
if ((td::uint64)idx >= tuple->size()) {
throw vm::VmError{vm::Excno::range_chk, "array index out of range"};
}
tuple.write()[idx] = std::move(val);
tuple.write()[td::narrow_cast<size_t>(idx)] = std::move(val);
stack.push_tuple(std::move(tuple));
}
@ -1095,7 +1096,7 @@ void interpret_allot(vm::Stack& stack) {
auto n = stack.pop_long_range(0xffffffff);
Ref<vm::Tuple> ref{true};
auto& tuple = ref.unique_write();
tuple.reserve(n);
tuple.reserve(td::narrow_cast<size_t>(n));
while (n-- > 0) {
tuple.emplace_back(Ref<vm::Box>{true});
}